Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Riki_89D

#411
ASM / Re: Funcion WriteFile (ASM)
4 Enero 2010, 13:46 PM
Hola gracias pro contestar,algfinal el code queda asin:

.386
.model flat,stdcall
.stack 100h
option casemap:none
include Tot.inc

.data

Fil db 'men.exe',0

.data?

lpBuffer dd ?
dwBytes dd ?


.code
start:

invoke CreateFile,offset Fil,GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0
push eax
invoke GetFileSize,eax,0
pop ebx ;ebx=Handle Archivo
push ebx
push eax
invoke ReadFile,ebx,addr lpBuffer,eax,addr dwBytes,0
mov eax,lpBuffer
mov dword ptr ds:[eax+2048h],"Bye"
pop ecx ;ecx=Tamaño archivo
pop ebx ;ebx=Handle Archivo
push ebx
invoke WriteFile,ebx,addr lpBuffer,ecx,addr dwBytes,0
pop ebx
invoke CloseHandle,ebx

invoke ExitProcess,0

end start


no me da eeror al ensamblarlo peor cuando lo ejecuto me sale un eeror de windows de esos que dice Windows detecto un problema i debe cerrarse,por lo que no me modifica aun el ejecutable men.exe ppffff esto parece imposible,no pensava k fuera tan dificil,alomeujor no uso bien el editor Hexa para ver el offset donde esta la cadena que quiero modificar,uso el WinHex,con el abro el ejecutable men.exe,busco la cadena que quiero modificar i al lado me sale el  offset: 0002048

que puedo hacer???

gracias de antemano
#412
ASM / Re: Funcion WriteFile (ASM)
3 Enero 2010, 20:45 PM
Finalmente resolvi el error pero no se modifica el otor archivoo :S:S



este es el code ahroaa

.386
.model flat,stdcall
.stack 100h
option casemap:none
include Tot.inc

.data

Fil db 'A.exe',0

.data?

lpBuffer dd ?
dwBytes dd ?


.code
start:

invoke CreateFile,offset Fil,GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0
push eax
invoke GetFileSize,eax,0
pop ebx ;ebx=Handle Archivo
push ebx
push eax
invoke ReadFile,eax,addr lpBuffer,eax,addr dwBytes,0
mov eax,lpBuffer
mov dword ptr ds:[eax+800h],"Bye"
pop ecx ;ecx=Tamaño archivo
pop ebx ;ebx=Handle Archivo
push ebx
invoke WriteFile,ebx,addr lpBuffer,ecx,addr dwBytes,0
pop ebx
invoke CloseHandle,ebx

invoke ExitProcess,0

end start


solo cambia la parte esta:


mov dword ptr ds:[eax+800h],"Bye"


si lo pongo asin no me da eeror pero el archivo A.exe no es modificado :(

#413
ASM / Re: Funcion WriteFile (ASM)
3 Enero 2010, 19:47 PM
Hola gracias pro el code tengo estto:

.386
.model flat,stdcall
.stack 100h
option casemap:none
include Tot.inc

.data

Fil db 'C:\A.exe',0

.data?

lpBuffer dd ?
dwBytes dd ?


.code
start:

invoke CreateFileA,offset Fil,GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0
push eax
invoke GetFileSize,eax,0
pop ebx ;ebx=Handle Archivo
push ebx
push eax
invoke ReadFile,ebx,addr lpBuffer,eax,addr dwBytes,0
mov eax,lpBuffer
mov dword ptr ds:[eax+0x220],"Bye"
pop ecx ;ecx=Tamaño archivo
pop ebx ;ebx=Handle Archivo
push ebx
invoke WriteFile,ebx,addr lpBuffer,ecx,addr dwBytes,0
pop ebx
invoke CloseHandle,ebx

invoke ExitProcess,0

end start


Eveidentemente con la direccion de memoria correspondiente i no esa,me sale un unico error,en la linea 28 en donde "mov dword ptr ds:[eax+0x220],"Bye" "

me dice esto:  missing operator in expression

#414
ASM / Re: Funcion WriteFile (ASM)
3 Enero 2010, 19:27 PM
Hola YESET


Quieres decir que con un editor Hexa puedo ver la posicion de memoria en donde esta la AVriable?? eso kieres decir?? i despues escribo en esa posicion cno Write File te refeires a eso???


perdonad mi ignoracnia
#415
ASM / Re: Funcion WriteFile (ASM)
3 Enero 2010, 19:11 PM
Perdona por no explicarme,

imaginate yo tengo esta "variable" definida:


Mensaje db 'Hola',0


pues desde otro exe quiero modificar ese mmm Bit xd o llamamosle variable,me podrias enseñar un pequeño ejemplo de como jhacerlo es que me vuelvo loco buscando i no encontre nada :(
#416
ASM / Funcion WriteFile (ASM)
3 Enero 2010, 18:37 PM
Hola que tal???


estoi investigando sobre las funciones CreateFile y WriteFile,necesito saber como puedo escribir (mejor dicho substituir) la variable de un exe desde otro exe con Write File?? el valor de esa variable,no encontre nad por ai solo enseñan como funciona esa funcion pero no como para modificar la variable de un exe (un exe que seria echo pro mi en MASM tmb)



salu2
#417
Ok muchas gracias a todo,se me ocurrio ahcer esto:


invoke FindWindow,0,offset Capt
invoke FindWindowEx,eax,0,offset Control1,0
invoke GetWindowText,eax,offset Buffer,32



offset Capt = Cabecera de la ventana principal
offset Control1 = Control1 db 'EDIT',0

me fue muy bien,me soluciono el problema ^^

por fin recorde como lo hice,muchas gracias por averme ayudado gracias a todos de verdad i un feliz año!!!!
#418
Hola iker,como ago para hacer la variable Hand como Global en vez de Local???



salu2 y gracias de antemano
#419
Hola YST,gracias por contestar,en vez de 90 puse 25,desgraciadamente sigue sin funcionar,el mensaje no me mnuestra lo que escribo en el edit,no lo entiendo,se que una vez lo logre pero no me acuerdo:(
#420
osea que aisn estaria bien:

....

.data?
Buffer db 32 dup(?)
..
..

...

WndProc proc han:HWND,msg2:UINT,wParam:WPARAM,lParam:LPARAM
Local hand:HWND
.IF msg2 == WM_DESTROY
invoke PostQuitMessage,0
.ELSEIF msg2 == WM_CREATE

invoke CreateWindowEx,NULL,offset Control1,NULL,\
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_MULTILINE,\
100,100,100,100,han,0,NULL,NULL
mov hand,eax

invoke CreateWindowEx,NULL,offset Control2,offset TxtBot,\
WS_CHILD or BS_DEFPUSHBUTTON or WS_VISIBLE,\
100,30,100,40,han,IDM_BOT,NULL,NULL


.ELSEIF msg2 == WM_COMMAND
.IF wParam == IDM_BOT

invoke GetWindowText,hand,offset Buffer,90    ;Pongo 90 por poner nu num

PUSH 0
PUSH 0
PUSH offset Buffer
PUSH han
CALL [MessageBox]
.ENDIF

.ELSE

invoke DefWindowProc,han,msg2,wParam,lParam
RET
.ENDIF
xor eax,eax
ret

WndProc endp

end start




estaria bien asin ????


por que no me funciona :S