青霄 发表于 2016-4-29 17:47

(一)常规PUSH窗体失效,换个思路破解飘零窗体

本帖最后由 青霄 于 2016-4-29 17:53 编辑

小白文,大牛请飘过。。。
今天研究飘零破解,突然想起某大神的通过修改push 窗体ID弹出功能窗体的方法,但是经修改后程序崩溃,于是便有了下文(方法是借鉴的大神的方法,优点:破解后有功能。缺点:是要比直接修改窗口ID麻烦点。)
第一步。CTRL+F搜PUSH 10001,发现只有两个窗口
00415D1E|.68 01020152   push 0x52010201
与00401112|.68 01000152   push 0x52010001
经比较,结合E的结构可知52010201为功能窗口,我用这个窗口替换52010001,程序崩溃
于是我想能不能通过推出按钮直接定位到功能窗体呢
第二步。说干就干,用FF 55 FC 5F 5E(嗯?你是问这是啥?这是E的按钮特征)定位到按钮位置,点退出按钮,断下后F7进入CALL可以看到如下代码
00401015/.55            push ebp
00401016|.8BEC          mov ebp,esp
00401018|.E8 D5000000   call 飘零网络.004010F2
0040101D|.6A 00         push 0x0
0040101F|.E8 06660100   call 飘零网络.0041762A
00401024|.83C4 04       add esp,0x4
00401027|.8BE5          mov esp,ebp
00401029|.5D            pop ebp                                  ;飘零网络.00438F30
0040102A\.C3            retn//该部分是退出按钮事件
第三步。接下来将第一步中找到的窗体位置代码一整块复制到一边,后面备用
00415D02|.68 02000080   push 0x80000002
00415D07|.6A 00         push 0x0
00415D09|.68 00000000   push 0x0
00415D0E|.6A 00         push 0x0
00415D10|.6A 00         push 0x0
00415D12|.6A 00         push 0x0
00415D14|.68 01000100   push 0x10001
00415D19|.68 00020106   push 0x6010200
00415D1E|.68 01020152   push 0x52010201
00415D23|.68 03000000   push 0x3
00415D28|.BB A07A4100   mov ebx,2.00417AA0
00415D2D|.E8 F2180000   call 2.00417624
00415D32|.83C4 28       add esp,0x28//窗体
第四步。经过仔细对比第三步与第二步代码发现,第二步代码行数太少,因为需要将第三步的窗体代码复制进去,行数不够是不行的(担心没有功能或者崩溃)
于是 随便找到一个空白处004940D1,记下地址后并将第三步代码的特征码通过二进制代码粘贴过去,就是这行代码
68 02 00 00 80 6A 00 68 00 00 00 00 6A 00 6A 00 6A 00 68 01 00 01 00 68 00 02 01 06 68 01 02 01
52 68 03 00 00 00 BB A0 7A 41 00 E8 F2 18 00 00 83 C4 28

注意事项:一行都不能少,粘过去后00415D2D |. E8 F2180000 call 2.00417624会变化,需要手动修改回去(这里原因不明)
粘贴完毕后在代码后面加上JMP 00401027,先保存
第五步。找到第二步中00401018 |. E8 D5000000 call这个位置替换成JMP 004940D1(刚才粘贴代码的空白地指处),保存
教程结束,有什么不懂可以问我,快升级了,只求热心,不求CB压缩文件我不知道怎么免费,所以也整个练习文件屌丝通道链接:http://pan.baidu.com/s/1kV92vyR 密码:nry2






青霄 发表于 2016-4-29 20:03

榻榻米 发表于 2016-4-29 19:36
很简单常规PUSH后   00416F14为retn即可。

除了字符串和暂停法,还有没有办法找到内部错误这个地址呢?

慕容影 发表于 2016-4-29 19:23

榻榻米 发表于 2016-4-29 19:36

很简单常规PUSH后   00416F14为retn即可。

chenxiansen307 发表于 2016-4-29 19:49

感谢楼主的分享 已经收藏

LightSylcanus 发表于 2016-4-29 19:55

對小白來說 破網絡驗證都好牛逼

青霄 发表于 2016-4-29 20:02

慕容影 发表于 2016-4-29 19:23
文章不错加精鼓励

写出来有意义就好。。。。。。。。。

爆爆 发表于 2016-4-29 20:11

abx 发表于 2016-4-29 22:31

不错,有用!!!

lflflala 发表于 2016-10-25 13:41

这个思路比较好, 空白处新建, call 位置强跳。。。赞!

这种方法 push窗体 就没问题吗???
页: [1] 2
查看完整版本: (一)常规PUSH窗体失效,换个思路破解飘零窗体