午夜调戏刚出生不久的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点了...太困..,睡觉去了,这种分析方法只能自慰一下下而已,如果实战逆向软件的话这样子应该不会有功能
晚上研究了一下正确的调戏姿势:https://www.52hb.com/forum.php?mod=redirect&goto=findpost&ptid=9040&pid=194317 沙发我的 人生中第一次沙发
楼上图解{:5_187:} 凌晨2点,老大精神可嘉。 学习学习 大神为何我的OD下面不会出现地址HEX数据啊
页:
[1]