Desire 发表于 2015-4-19 01:57

午夜调戏刚出生不久的CM

{:6_221:}本来准备睡觉的,正巧看到CM区有人发了个新鲜的CM就下来玩了玩....然后了好久发现CM太牛逼的,最后只好用类似修改字符串的方法来自慰一下
CM地址:https://www.52hb.com/thread-9040-1-1.html

拉进F9运行后按ALT+M,然后在内存窗口选中地址是00401000的那一行,接着按Ctrl+B,ASCII里输入未注册,然后选中未注册这三个字右键→断点→内存访问

然后在CM里注册码随便输,输完点注册,OD会断在下图这界面
先在CPU窗口右键→断点→删除内存断点

上图中箭头指的那一行,右键→反汇编窗口中跟随,完成后会到下图这样的界面

我们在call上面的第三个push上下断,就是push 0X0的那句选中后按下F2,然后F9让程序跑起来
,再次点CM上的注册,然后会OD会断下来,经过我自己的测试发现这边下断后OD会断两次,我们要修改第二次的数据,所以OD第一次断下来后再按一次F9
过几秒又会断下来,应是到下图那样的界面

我们按一次F8,然后注意寄存器EBX

这个EBX是存储的字符串的长度,一个中文字的长度是2,英文字母是长度是1,标点的长度也是1
因为 CM注册成功后会提示 恭喜你注册成功
这是7个字所以长度是14,我们在那个修改EBX的小窗口里找到无符号或者有符号两个编辑框,随便选一个把里面的10改成14,然后按确定
接着OD窗口中按一次F8,注意寄存器EDI的值,我们在寄存器里选中EDI然后右键→数据窗口中跟随,然后注意数据窗口,看下图

注意地址和HEX数据,我们要的数据从上图中选中的B9 A7里开始的,那一整行开始的地址是00486FB9,然后我们开始数B9 A7前面到这一行开头一共有几组数据(2个数字为一组,),图中有10组,接着我们打开系统的计算器切换成16进制的,算下00486FB9+A是多少(因为16进制里的10就是A),可以得到486FC3
现在我们按照按照改ebx的方法修改EDI,双击寄存器里的EDI中的地址

然后在OD里按一次F9后看CM界面


凌晨2点了...太困..,睡觉去了,这种分析方法只能自慰一下下而已,如果实战逆向软件的话这样子应该不会有功能

Desire 发表于 2015-4-19 21:20

晚上研究了一下正确的调戏姿势:https://www.52hb.com/forum.php?mod=redirect&goto=findpost&ptid=9040&pid=194317

江总 发表于 2015-4-19 03:07

沙发我的 人生中第一次沙发

幼稚园杀手 发表于 2015-4-19 04:37


闪耀 发表于 2015-4-19 07:46

楼上图解{:5_187:}

cfc0699 发表于 2015-4-19 08:09

凌晨2点,老大精神可嘉。

有何不可 发表于 2015-4-19 11:55

学习学习   

逢场作戏 发表于 2015-8-16 02:18

大神为何我的OD下面不会出现地址HEX数据啊
页: [1]
查看完整版本: 午夜调戏刚出生不久的CM