fengshangren 发表于 2016-5-24 04:49

OD里用汇编修改寄存器里的字任串应该怎么写啊,弄了一个多小时也不会!

我想修改掉他的MD5加密,改成我自己的MD5,我不知道汇编指令应该怎么写,请教一下。
这里是字符串地址

这里是要修改的字符串

我用MOV 来传。也传不了。请教一下写法

Like 发表于 2016-5-24 04:49

fengshangren 发表于 2016-5-24 06:44
那个是ESP的地址,我刚像你这样试过,不行。能写个例子吗

不要管esp你要看ebp然后在看看这个地址是ebp+多少的偏移,再改就OK了

Cser2 发表于 2016-5-24 06:19

堆栈里右键 相对于ESP或者EBP显示地址然后mov ,新地址 新地址上写上MD5数值

520Kelly 发表于 2016-5-24 06:21

这个实在是太简单了,看图一的话应该是在堆栈位置,那么肯定是有一行代码为push eax之类的,这行代码直接jmp补码 把需要修改的MD5补到空位置 假设md5的位置为00401000 那么mov eax,00401000, push eax,这样就行了

fengshangren 发表于 2016-5-24 06:44

520Kelly 发表于 2016-5-24 06:21
这个实在是太简单了,看图一的话应该是在堆栈位置,那么肯定是有一行代码为push eax之类的,这行代码直接jm ...

那个是ESP地寄存器 还是不知道怎么弄

fengshangren 发表于 2016-5-24 06:44

Cser2 发表于 2016-5-24 06:19
堆栈里右键 相对于ESP或者EBP显示地址然后mov ,新地址 新地址上写上MD5数值

那个是ESP的地址,我刚像你这样试过,不行。能写个例子吗

520Kelly 发表于 2016-5-24 06:59

fengshangren 发表于 2016-5-24 06:44
那个是ESP的地址,我刚像你这样试过,不行。能写个例子吗

软件+MD5出现的位置+你下断的位置 传上来 说不明白

Cser2 发表于 2016-5-24 07:17

fengshangren 发表于 2016-5-24 06:44
那个是ESP的地址,我刚像你这样试过,不行。能写个例子吗

最好用相对于EBP去显示 如果修改地址不可以的话 说明还有其他地方会用到这个指针 这样的话最好就修改这个地址上的数据 也就是MD5可以这样 跳到空白地方 然后先
pusheax【保存一下数据】
mov eax,【md5指针地址】
mov dword,xxxx
mov dword,xxxx[修改MD5]
...
...
pop eax
jmp 原来代码的地址
也就是HOOK一下

fengshangren 发表于 2016-5-24 07:27

Cser2 发表于 2016-5-24 07:17
最好用相对于EBP去显示 如果修改地址不可以的话 说明还有其他地方会用到这个指针 这样的话最好就修改这个 ...

你的第三句和第四句 最后的指针地址是写哪个的

Cser2 发表于 2016-5-24 07:36

fengshangren 发表于 2016-5-24 07:27
你的第三句和第四句 最后的指针地址是写哪个的

就是先保存EAX的数据 然后把存放MD5的指针地址放到EAX上 然后修改EAX地址上的数据 也就是修改MD5数据 然后还原EAX的数据 然后跳回去
页: [1] 2
查看完整版本: OD里用汇编修改寄存器里的字任串应该怎么写啊,弄了一个多小时也不会!