hktkzyz 发表于 2015-3-11 19:57

易语言用F12和00401000两种方法解密及相关心得分享

本帖最后由 hktkzyz 于 2015-3-11 21:12 编辑

看了恒大最后一讲“秒杀易语言”后,颇有心得,找到一个实例,与大家分享:
(大家搜索“00401000方法逆向”,即能在某论坛找到该帖子,软件也在帖子里,为了不引起麻烦,链接我就不贴了。)
一、00401000
1、运行,ctrl+g:00401000。
2、ctrl+f:test edx,3
3、
在这个命令处下断,输入假码,注册,断下。。。。。至此,与恒大教程完全相同。可是寄存器里没有真码呀!!!

其实这个就是某论坛帖子中楼主所提的问题,下面我们来想办法解决.....
(目测不存在真码,或者很难算出,所以,这里来爆破)其实走到这步,我也很没头绪,那就硬着头皮F8吧,,,,感觉乱七八糟的,也看不懂,不管了,按住F8不撒手了。。。

阿欧,程序终于停下来了,让这个call搞出一个错误弹窗,哈哈,找的就是你。
从图上可以看出来,马上接近段尾了,按我的习惯,从下往上找 “跳入”。
不好意思,截图箭头标错了,这个“跳入”应该是上面jmp那行00461493。

好吧,找到了“跳入”我们就找“跳转”,右键,转到,最下面,有两个,明显不是那个je,因为je在刚才弹窗call的下面,所以选那个jmp。

那位说,jmp不是硬跳吗?当你看到jmp这行下面那个“跳入”右箭头时,你应该明白怎么回事了吧....
00461409由004613D2跳转。。。。。004613D2是jnz。。。。。
相信我不用再说什么了。。。。

二、暂停法
其实我始终觉得我刚才那样按F8很笨。我想到了F12,下面我们来试试:删除udd,删除所有断点。重载。运行,输入假码,注册,弹出错误窗口。暂停,ALT+K。
看到 对话框。双击找到调用:

额,,看起来有些麻烦呀。。。下断,重载,假码,注册,OK,断下来了。

老规矩,堆栈窗口,反汇编跟随。

额,怎么还是系统中。。。不管了,段首下断,重载,假码,注册,OK,断下来了。

老规矩,堆栈窗口,反汇编跟随。

终于进入程序了呀。赶紧在这来一个断。,重载,假码,注册,因为之前有断,所以会断掉,所以遇到之前系统领空中的断,直接F9,弹出弹窗后,按确定按钮,成功断在程序领空下。往下观察了一下,也接近段尾,而且下面的“跳入”没有一个能包括断点上面那个call(就是那个 错误对话框的call,我们就是从这个call跳出来的),所以目测现在在一个子call下,我们直接F8走完这段。。。。我们被retn两次后,来到了这里:

哦,mygod,和之前一样了,剩下的就和第一种方法里最后一样了。。

三、一字节

这是人家的答案,将1改成0,又是汇编,小白我讲解不了了。

全部完毕。
擦一下汗,纯属小白啰嗦,老师们略过。
各种问题,还希望大家指出,也能促进学习。
谢谢。


499081102 发表于 2015-3-11 20:05

{:5_116:}难道是沙发

Scar-疤痕 发表于 2015-3-11 20:27

来晚了,抢个板凳吧!

闪耀 发表于 2015-3-11 20:27

有可能真码 加密{:5_124:}

Desire 发表于 2015-3-11 20:30

不知道是不是网络验证啊,如果是网络验证没有真码不是很正常么

Shark恒 发表于 2015-3-11 20:39

不错,期待完成,加油!
虽然网络验证这种方式不实用,但是可以当作一个思路学习。

timethinking 发表于 2015-3-11 21:36

现在就使需要思路的时候,希望楼主能创新

appst100 发表于 2015-3-11 22:49

谢谢分享恒大的易语言教学心得~又多学一种思路了~

vigers 发表于 2015-3-11 23:01

楼主很厉害嘛

635998007 发表于 2015-3-12 10:38

老兄怎么跳过对话框?
页: [1] 2 3
查看完整版本: 易语言用F12和00401000两种方法解密及相关心得分享