Hola chicos como estais??¿¿ bueno espero que muy bien,primero querria agradeceros todo lo qu haceis pro mi
pues bueno busco en google pero no encuenrto nada,lo mas que encontre e sun post que hablaba de parchera una dll peor no es exactamente lo que quiero,yo solo quiero saber si es posible parchear un exe (programado por mi misma) i poderle agregar funciones tales como un MessageBox, etc etc dede otro ejecutable que tambien programare yo previamente,i ya que estoi preguntanto esto para no abrir otro hilo aprovecho y pregunto si es posible mandar i/o recibir datos por el puerto USB 2.0
un saludo chicos!
Queres hacer un loader?
Para pachar un exe?
Aqui tienes un tute, salteate la parte del asprotect y fijate como usa Radasma para crear el loader.
http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/701-800/770-ASProtect%201.22%20+%20LoaderDebuger%20+%20RadASM.zip (http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/701-800/770-ASProtect%201.22%20+%20LoaderDebuger%20+%20RadASM.zip)
Otra de como crear un parche con Radasm.
http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION/TEORIAS%20SOBRE%20PROGRAMACION%20EN%20ASSEMBLER/40-Creando%20un%20parche%20en%20RadAsm%202.rar (http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION/TEORIAS%20SOBRE%20PROGRAMACION%20EN%20ASSEMBLER/40-Creando%20un%20parche%20en%20RadAsm%202.rar)
Ejemplo de MessageBox con Radasm
http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION/TEORIAS%20SOBRE%20PROGRAMACION%20EN%20ASSEMBLER/Ejemplo_MessageBox_de_color_en_RadAsm.zip (http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION/TEORIAS%20SOBRE%20PROGRAMACION%20EN%20ASSEMBLER/Ejemplo_MessageBox_de_color_en_RadAsm.zip)
Tutes varios uso de Radasm
http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION/TEORIAS%20SOBRE%20PROGRAMACION%20EN%20ASSEMBLER/ (http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION/TEORIAS%20SOBRE%20PROGRAMACION%20EN%20ASSEMBLER/)
Tambien tenes estos otros:
349-COMO HACER UN LOADER DEBUGGER PARTE 1.rar
350-COMO HACER UN LOADER DEBUGGER PARTE 2.rar
351-COMO HACER UN LOADER DEBUGGER PARTE 3.rar
352-COMO HACER UN LOADER DEBUGGER PARTE 4.rar
353-COMO HACER UN LOADER DEBUGGER PARTE 5 y final.rar
Los descargas de aqui por numero de teoria:
http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/301-400/ (http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/301-400/)
espero te sirva
slds
tena
Hola tena (K) gracias por tu enlaces,pero aun asin no lo entiendo muy bien,necesitaria de un code claro i sencillo de añadir una instruccion tipo MessageBox a otro exe desde otro ejecutable ,vaya un poco lioso todo ee ^^
algo como esto quiero hacer pero sin usar el OlllyDbg
http://foro.latinohack.com/f395/inline-patching-notepad-asm-ollydbg-23401/
(http://foro.latinohack.com/f395/inline-patching-notepad-asm-ollydbg-23401/)
un saludo y gracias igualmente de verdad (K)
Bueno para hacer eso por codigo vas a tener que leer un poquito y llegar al punto de entender los tutoriales que te pusieron o minimo entender el formato de los ejecutables. pero yo me pregunto, si los 2 programas los haces tu ¿pq no cargas una dll directamente?. si no es asi, no encuentro la logica a querer meter codigo "embutido" en un programa el cual estas haciendo tu.
Te refieres a que ponga las funciones a un dll i que el exe que programo yo pueda utilizar dichas funciones??? osea hacer una libreria dinamica normlal i corriente i que ambox Programas puedan usarlas???
un saludo ctlon
si, eso exactamente.
Hola chiko,veras no es mala idea lo que dices,pero es que no me gustaria que el ejecutable que quiero aprchear (o modificar) dependa de una dll,ya saves si se pierde esa dll el exe deja de funcionar,y nose me gustria apredner a hacer eso,he visto ttoriales donde escriben con al api WriteProcessMemory,eos ya sabia hacerlo cuando hacia Cheats,pero bueno,estoi buscando info pero lo mas que encuentro es genteque lo hace con el OllyDbg,o que hace eso,escribir en la memoria del Processo :(
un saludo ctlon (K)! y gracias por atender a esta pesada :P
No tiene porque perderse la dll o depender de ella, no linkes el ejecutable a la dll. metela como recurso en el ejecutable y la sacas al disco cuando este se ejecute, luego cargas la dll y obtienes las direcciones de las funciones que necesites. Otra opcion es como dices con WriteProcessMemory, pero eso implica que tendras que leer un poquito mas.
Anda me lles el pensamiento? xD mientras escribira la respuesta anteriorpensava en eso del recurso,de inscrustar la dll en el ejecutable pero no se hacerlo,antes cuando programaba en Delphi 7 si savia hacaerlo,pero en ASM no tengo ni idea,nose que apis hay que utilizar para incsrutar un archivo! en delphi almenos tenias que crear con el bloc de notas algo como RCDATA "NOMBRE ARCHIVO" i algo mas creo peor no recuerdo,saves la forma tu?
gracias ctlon! (K)
que ensamblador utilizas? comente lo del archivo de recursos por decir algo no necesariamente tiene que estar en uno.
Utilizo MASM32,imagino que debo crear un RC,depues compilarlo para que me quede un RES i de alli ya nse pero nose como hacer todo eso,si hay algun tuto te lo agradecere un saludo ctlon (K)
en masm32 en los ejemplos se usan archivos de recursos.
Cita de: Monica_Barcelona en 22 Abril 2010, 13:50 PM
Anda me lles el pensamiento? xD mientras escribira la respuesta anteriorpensava en eso del recurso,de inscrustar la dll en el ejecutable pero no se hacerlo,antes cuando programaba en Delphi 7 si savia hacaerlo,pero en ASM no tengo ni idea,nose que apis hay que utilizar para incsrutar un archivo! en delphi almenos tenias que crear con el bloc de notas algo como RCDATA "NOMBRE ARCHIVO" i algo mas creo peor no recuerdo,saves la forma tu?
gracias ctlon! (K)
Para meter una dll dentro de un exe puedes usar Molebox
http://www.molebox.com/
slds
EI: juntando mensajes.
Este es para hacer el parche, pero no en ejecucion.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute()) // Mostramos el dialogo abrir
{
LblPath->Caption=OpenDialog1->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//VARIABLES//
HANDLE exe;
unsigned long BytesRead,BytesWrite;
Byte buf;
// HACEMOS UN BACKUP//
if (CheckBox1->Checked==true)
{
int sizePath=LblPath->Caption.Length()+7;
char * newExe=new char[sizePath];
StrCopy(newExe,LblPath->Caption.c_str()); // copio el path
StrCat(newExe,".backup");
CopyFile(LblPath->Caption.c_str(),newExe,1); // guardo en disco
delete [] newExe; // libero el buffer
}
// Abro el exe y le doy permisos de esritura y lectura
exe=CreateFile(LblPath->Caption.c_str(),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if(exe!=INVALID_HANDLE_VALUE)
{
int offset=0x105AAC;
Byte parche[]={0x50,0xB8,0xEF,0x21,0x43,0x00,0xC7,0x00,0x90,0x90,0x90,0x90,0x83,0xC0,0x04,0x3D,0xFB,0x21,0x43,0x00,0x75,0xF0,0x66,0xC7,0x00,0x90,0x90,0x58,0xE9,0x3B,0xF3,0xF7,0xFF};
SetFilePointer(exe,offset,0,FILE_BEGIN); //seteo el offset
WriteFile(exe,parche,21,&BytesWrite,0);
}
}
Si quieres hacerlo con WriteProcessMemory, sera en ejecuion entonces, y debes crear un Loader que lo parche en ejecucion.
Sobre lo de meter la dll dentro del exe, para que la dll muestre por ejemplo un MessageBox no le veo mucho sentido, tendrias que hacer un injerto en el exe para poder invocar a la dll y cargar sus funciones. En vez de eso podrias hacer un injerto en el exe para invocar a MessageBox de la User32.
Osea, podria funcionar, si lo que quieres es parchar el exe con la dll, deberias tener en cuenta en que punto del exe en ejecucion los vas a parchear, y para saber la direccion en que lo vas a parchear tenes que usar el ollydbg
Otra cosa, en un exe sin ninguna proteccion, es sencillo, pero ya si esta empacado es mas dificil.
Todo eso si el exe no es tuyo.
slds
EI: juntando mensajes.
Aqui tienes un tutorial sobre como hacer un Loader Simple en Assembler (MASM)
http://ricardonarvaja.info/WEB/OTROS/COLABORACIONES/COLABORACIONES/Como%20construir%20un%20loader%20simple%20-%20por%20marciano.rar
Viene con el codigo del esqueleto del Loader.
slds
EI: juntando mensajes, el proximo lo borro.
Una buena pagina con tutoriales de assembler
http://win32assembly.online.fr/tutorials.html
mira esto...
los tutos de zeropad, seguramente te serviran
http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION%20DE%20VIRUS/
trata sobre la estructura PE y seguramente lo que tu buscas... en el tuto 6 si no me equivoco o mayor trata como obtener la dll Kernel32.DLL asi obtener la funcion getprocaddress
y con eso obtienes el manejador de instancia de si tu deseas User32.DLL y obtener la funcion MessageBoxA :D
PD: si me Equivoco corriganme u.u
PD2: mira aqui tambien postee el tuto http://foro.elhacker.net/ingenieria_inversa/inyeccion_notepad_asm_ollydbg-t270582.0.html;msg1326753#msg1326753
Monica_Barcelona: ya te dejaron muchos enlaces, por favor leelos con detenimiento.