|
411
|
Programación / ASM / Re: Funcion WriteFile (ASM)
|
en: 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
|
Programación / ASM / Re: Funcion WriteFile (ASM)
|
en: 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
|
Programación / ASM / Re: Funcion WriteFile (ASM)
|
en: 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
|
Programación / ASM / Re: Funcion WriteFile (ASM)
|
en: 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
|
Programación / ASM / Re: Funcion WriteFile (ASM)
|
en: 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
|
Programación / ASM / Funcion WriteFile (ASM)
|
en: 3 Enero 2010, 18:37 pm
|
Hola que tal???
estoi investigando sobre las funciones CreateFile y WriteFile,necesito saver 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
|
Programación / ASM / Re: Cojer texto de un control edit API (MASM)
|
en: 1 Enero 2010, 19:33 pm
|
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!!!!
|
|
|
420
|
Programación / ASM / Re: Cojer texto de un control edit API (MASM)
|
en: 1 Enero 2010, 18:07 pm
|
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
|
|
|
|
|
|
|