elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Parchear un ejecutable,posible en asm?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Parchear un ejecutable,posible en asm?  (Leído 10,116 veces)
Monica_Barcelona

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Parchear un ejecutable,posible en asm?
« Respuesta #10 en: 22 Abril 2010, 13:57 pm »

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 línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Parchear un ejecutable,posible en asm?
« Respuesta #11 en: 22 Abril 2010, 14:04 pm »

en masm32 en los ejemplos se usan archivos de recursos.


En línea

tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: Parchear un ejecutable,posible en asm?
« Respuesta #12 en: 22 Abril 2010, 16:57 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
« Última modificación: 22 Abril 2010, 19:51 pm por Eternal Idol » En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Parchear un ejecutable,posible en asm?
« Respuesta #13 en: 22 Abril 2010, 18:34 pm »

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
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Parchear un ejecutable,posible en asm?
« Respuesta #14 en: 22 Abril 2010, 19:53 pm »

Monica_Barcelona: ya te dejaron muchos enlaces, por favor leelos con detenimiento.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Auto-eliminarse un ejecutable o bloquearlo, es posible?
Programación C/C++
Erres 1 2,225 Último mensaje 27 Octubre 2012, 06:45 am
por $Edu$
Parchear ejecutable y direcciones de memoria
Ingeniería Inversa
jmpesp 4 2,902 Último mensaje 27 Junio 2019, 17:42 pm
por jmpesp
Problema al parchear ejecutable para DOS con dosbox-x e ida
Ingeniería Inversa
principito 2 2,888 Último mensaje 23 Marzo 2023, 00:51 am
por principito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines