hombre, herramientas ya me imagino que habrá, el mismo ollydbg te deja escribir en esas partes, pero me refiero .... programaticamente, o sea, desde nuestro propio programa.
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ú
0048D773 . 52 PUSH EDX
0048D774 . 50 PUSH EAX
0048D775 . E9 CD220200 JMP 004AFA47
0048D77A . FF15 90038700 CALL NEAR DWORD PTR DS:[<&GDI32.StretchBlt>] \GDI32.StretchBlt
ahí podéis ver el salto incondicional, en su lugar estaba el comando Push EAX.
004AFA46 . 00 DB 00
004AFA47 > 50 PUSH EAX
004AFA48 . A0 46FA4A00 MOV AL,BYTE PTR DS:[4AFA46]
004AFA4D . FEC0 INC AL
004AFA4F . 3C 03 CMP AL,3
004AFA51 . 74 1C JE SHORT 004AFA6F
004AFA53 . 3C 04 CMP AL,4
004AFA55 . 74 18 JE SHORT 004AFA6F
004AFA57 . 3C 05 CMP AL,5
004AFA59 . 74 14 JE SHORT 004AFA6F
004AFA5B . 3C 06 CMP AL,6
004AFA5D . 74 10 JE SHORT 004AFA6F
004AFA5F . A2 46FA4A00 MOV BYTE PTR DS:[4AFA46],AL
004AFA64 . 58 POP EAX
004AFA65 . 6A 00 PUSH 0
004AFA67 . 6A 00 PUSH 0
004AFA69 > 51 PUSH ECX
004AFA6A .^ E9 F6DCFDFF JMP 0048D765
004AFA6F > A2 46FA4A00 MOV BYTE PTR DS:[4AFA46],AL
004AFA74 . 58 POP EAX
004AFA75 . 68 80000000 PUSH 80
004AFA7A . 68 80000000 PUSH 80
004AFA7F .^ EB E8 JMP SHORT 004AFA69
Declare Function WriteProcessSingle Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any,
ByRef lpBuffer As Single, ByVal nSize As Long, ByRef lpNumberOfBytesWritten As Long) As Boolean
dim datos as single
ret = ReadProcessMemory(handle, offset, datos, 4, written)
datos = datos * 2 / 0,0025683
ret = WriteProcessMemorySingle(handle, offset, datos, 4, written)
Debug.Print ret, written
buffer = Space(200)
Debug.Print FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&, GetLastError, SUBLANG_DEFAULT, buffer, 200, 0&)
CreateProcess vbNullString, app.path & "\test.exe " & Command & commandline, _
ByVal 0&, ByVal 0&, 1&, CREATE_SUSPENDED, ByVal 0&, revolt, sInfo, pInfo
OpenProcess(PROCESS_ALL_ACCESS, False, pid)