Autor
|
Tema: Melt (Leído 9,819 veces)
|
Chefito
|
|
Re: Melt
« Respuesta #20 en: 1 Febrero 2008, 17:41 pm » |
|
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?.
|
|
« Última modificación: 1 Febrero 2008, 18:21 pm por Chefito »
|
En línea
|
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
Desconectado
Mensajes: 1.678
Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
|
|
Re: Melt
« Respuesta #21 en: 1 Febrero 2008, 20:21 pm » |
|
Los vbs aun son mas cantosos que los BAT 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
|
|
|
En línea
|
StasFodidoCrypter 1.0 - 100% (old) | StasFodidoCrypter 2.0 - 85% (deserted) | Fire AV/FW-Killer - 97% (deserted) | R-WlanXDecrypter 1.0- 100% |
|
|
|
Tughack
Desconectado
Mensajes: 490
|
|
Re: Melt
« Respuesta #22 en: 8 Febrero 2008, 15:03 pm » |
|
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?
|
|
|
En línea
|
|
|
|
nhaalclkiemr
Desconectado
Mensajes: 1.678
Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
|
|
Re: Melt
« Respuesta #23 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 ObjPtrStrPtr 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
|
|
|
En línea
|
StasFodidoCrypter 1.0 - 100% (old) | StasFodidoCrypter 2.0 - 85% (deserted) | Fire AV/FW-Killer - 97% (deserted) | R-WlanXDecrypter 1.0- 100% |
|
|
|
Tughack
Desconectado
Mensajes: 490
|
|
Re: Melt
« Respuesta #24 en: 8 Febrero 2008, 17:01 pm » |
|
No soy muy experto en esto de punteros pero en VB hay tres funciones no documentadas relacionadas con punteros llamadas VarPtr, StrPtr, y ObjPtrStrPtr 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
|
|
|
En línea
|
|
|
|
~~
|
|
Re: Melt
« Respuesta #25 en: 8 Febrero 2008, 17:48 pm » |
|
VB no vale para estas cosas, necesitas algo mas potente, yo lo e hecho en c 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
|
|
|
En línea
|
|
|
|
Tughack
Desconectado
Mensajes: 490
|
|
Re: Melt
« Respuesta #26 en: 8 Febrero 2008, 18:01 pm » |
|
VB no vale para estas cosas, necesitas algo mas potente, yo lo e hecho en c 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
|
|
|
En línea
|
|
|
|
nhaalclkiemr
Desconectado
Mensajes: 1.678
Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
|
|
Re: Melt
« Respuesta #27 en: 8 Febrero 2008, 18:25 pm » |
|
Como...si kieres pasar lProc como parametro como tu dices pork no pones VarPtr?? O weno prueva creando una funcion asi: 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... 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 ): http://www.thevbzone.com/secrets.htmSaludos
|
|
« Última modificación: 8 Febrero 2008, 18:27 pm por nhaalclkiemr »
|
En línea
|
StasFodidoCrypter 1.0 - 100% (old) | StasFodidoCrypter 2.0 - 85% (deserted) | Fire AV/FW-Killer - 97% (deserted) | R-WlanXDecrypter 1.0- 100% |
|
|
|
Tughack
Desconectado
Mensajes: 490
|
|
Re: Melt
« Respuesta #28 en: 8 Febrero 2008, 18:33 pm » |
|
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
|
|
|
En línea
|
|
|
|
nhaalclkiemr
Desconectado
Mensajes: 1.678
Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
|
|
Re: Melt
« Respuesta #29 en: 8 Febrero 2008, 23:14 pm » |
|
A vale ahora pienso que te entendí...pues eso en VB pienso que nada Saludos
|
|
|
En línea
|
StasFodidoCrypter 1.0 - 100% (old) | StasFodidoCrypter 2.0 - 85% (deserted) | Fire AV/FW-Killer - 97% (deserted) | R-WlanXDecrypter 1.0- 100% |
|
|
|
|
|