Melt

Iniciado por nhaalclkiemr, 31 Enero 2008, 23:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Chefito

#20
Mmmmm...otros archivos que se puedes destruir a si mismo son los .vbs. Tambien se podria crear un fichero .vbs con el vb6 como ha dicho LeandroA parecido a esto:
On Error resume next
dim objfso
dim ExisteFichero
set objfso=createobject("Scripting.Filesystemobject")
do
ExisteFichero=objfso.fileexists ("c:\proyecto1.exe")
wscript.sleep 250
if ExisteFichero then objfso.deletefile "c:\proyecto1.exe",true   'Proyecto de vb que ejecuta este script
loop until ExisteFichero=false
objfso.deletefile "c:\fso.vbs"    'El fichero donde esta contenido este codigo.

Esto funciona, comprobado. Se puede meter en la carga o descarga del programa (ejem. form1_load o form1_terminate). Si se mete al principio el proyecto vb se eliminiria aun saliendose de formas raras :) (No he probado ctrl+alt+supr....supongo que será cuestion de qué proceso mata el sistema primero....el del proyecto.exe vb o el archivo WScript.exe (otro problema para la detención por el AV del script), que es el que carga el Script cuando se ejecuta). Se podría hacer también introduciendo en el fichero vbs shell´s llamando al cmd /c erase para que los borrase (No se utilizaria Scripting). Incluso se podria hacer en javascript (.js).
Pero pienso que un .vbs va a alertar a los AV´s a lo bestia....y mas si utilizan filesystemobject.
Se tiene que cargar el archivo .vbs con la api shellexecute.
Saludos.
P.D. Supongo que se podría hacer algo parecido con los bateria no?.....casi no recuerdo nada de ellos, pero creo recordar que se podían utilizar instrucciones como if,goto....e incluso algo de detección de errores no?.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

nhaalclkiemr

Los vbs aun son mas cantosos que los BAT :xD :xD

De momento me kedo con el BAT que es lo mas funcional y menos detectable...aunke menos profesional que lo del thread en el explorer...pero si es detectado por los AVs no se...aun asi investigaré para saber como se hace bien...

saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

Tughack

E0N, lo has conseguido hacer desde vb?

Bah, estoy sin ideas, solo lo consigo hacer con delphi. Al usar LoadLibrary y GetProcAddress consigo sacar el address de una API, pero no consigo usarla.

Necesitava un puntero de funcion, y no estoy seguro k se pueda hacer en vb.

lHandle = LoadLibrary("kernel32.dll")
lProc = GetProcAddress(lHandle, "WriteProcessMemory")

Ahora necesitava k el lProc fuera un function pointer para llamar la api con sus parametros.

Alguna idea?

nhaalclkiemr

No soy muy experto en esto de punteros pero en VB hay tres funciones no documentadas relacionadas con punteros llamadas VarPtr, StrPtr, y ObjPtr

StrPtr pienso que es para Strings, ObjPtr debe ser para objetos y VarPtr para las variables normales...a lo mejor si usas:

VarPtr(lProc) o VarPtr(ByVal lProc)

a ver si te sirve...

Pero weno no se...ya me dirás...

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

Tughack

Cita de: nhaalclkiemr en  8 Febrero 2008, 16:54 PM
No soy muy experto en esto de punteros pero en VB hay tres funciones no documentadas relacionadas con punteros llamadas VarPtr, StrPtr, y ObjPtr

StrPtr pienso que es para Strings, ObjPtr debe ser para objetos y VarPtr para las variables normales...a lo mejor si usas:

VarPtr(lProc) o VarPtr(ByVal lProc)

a ver si te sirve...

Pero weno no se...ya me dirás...

Saludos ;)

jeje, si, el problema es: Como pasas los parametros de la api?

saludos

~~

VB no vale para estas cosas, necesitas algo mas potente, yo lo e hecho en c  :P

Bah, estoy sin ideas, solo lo consigo hacer con delphi. Al usar LoadLibrary y GetProcAddress consigo sacar el address de una API, pero no consigo usarla.

Aunke la llames con un puntero a funcion te la va a seguir detectando, no es a eso a lo q yo me refiero ;)

Tughack

Cita de: E0N en  8 Febrero 2008, 17:48 PM
VB no vale para estas cosas, necesitas algo mas potente, yo lo e hecho en c  :P

Bah, estoy sin ideas, solo lo consigo hacer con delphi. Al usar LoadLibrary y GetProcAddress consigo sacar el address de una API, pero no consigo usarla.

Aunke la llames con un puntero a funcion te la va a seguir detectando, no es a eso a lo q yo me refiero ;)

Nah, no se trata de deteccion, solo keria probar esto de cargar una api dinamicamente en vb. Como ejemplo dije WriteProcessMemory pero podria ser kualkier otra.

Y ya me dejiste de k hablavas, o ya no te acuerdas? xD

Saludos

nhaalclkiemr

#27
Como...si kieres pasar lProc como parametro como tu dices pork no pones VarPtr??

O weno prueva creando una funcion asi:

Código (vb) [Seleccionar]
Private Functoin LongToPoint (ByRef lResul As Long) As Long
LongToPoint = VarPtr(lResul)
End Function


o no se si sería pasando ByVal no estoy seguro...

Código (vb) [Seleccionar]
Private Functoin LongToPoint (ByVal lResul As Long) As Long
LongToPoint = VarPtr(lResul)
End Function


Y después la llamas

resul = APIquesea(parametro1, parametro2, AddressOf LongToPoint)

No se si esta bien lo que digo, seguramente me equivoque en algo...además no se muy bien lo que quieres...

Si te refieres a cargar una API sabiendo su direccion (a lo mejor es eso lo que dices) pienso que en VB no se puede hacer...

Mira aki hai algo de info (al final de todo trata algo sobre las Hidden APIs pero no tengo ni idea de que trata pork no se nada de inglés :xD): http://www.thevbzone.com/secrets.htm

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

Tughack

Aver esto en vb esta mal, pero solo para k entiendas:

lHandle = LoadLibrary("kernel32.dll")
lProc = GetProcAddress(lHandle, "WriteProcessMemory")

call lProc(ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long)

Entiendes? pero el lProc tendria k ser un function pointer.

saludos

nhaalclkiemr

A vale ahora pienso que te entendí...pues eso en VB pienso que nada :xD

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%