Я использую OllyDbg для изменения приложения, но я совсем новичок в языке ассемблера, мне нужно поместить хэш MD5 в адрес памяти, адрес памяти назначения хранится в EAX
. Как мне это сделать?
Хэш, который мне нужно вставить, это dba2d8bf7063faf1275e693661bc9651
. Я пробовал следующим образом:
MOV DWORD PTR DS:[EAX],32616264
MOV DWORD PTR DS:[EAX+4],66623864
MOV DWORD PTR DS:[EAX+8],33363037
MOV DWORD PTR DS:[EAX+12],31666166
MOV DWORD PTR DS:[EAX+16],65353732
MOV DWORD PTR DS:[EAX+20],36333936
MOV DWORD PTR DS:[EAX+24],63623136
MOV DWORD PTR DS:[EAX+28],31353639
Но это очень долго и очень неэффективно, на мой взгляд. Я также пытался сохранить хэш по другому адресу и переместить его туда, где он мне нужен, с помощью инструкции MOV
, но я не могу заставить его работать:
MOV DWORD PTR DS:[EAX], 012B2C60
Где 012B2C60
— хеш-адрес.
Другая проблема, которая возникает у меня, заключается в том, что желтые подчеркнутые байты изменяются при запуске программы (я думаю, это должны быть динамические адреса), поэтому то, что я пишу в этом адресе, изменяется при запуске программы, как я могу предотвратить это?