飞龙使者 发表于 2013-9-4 19:57

一个入门级别的破解教程。。。

本帖最后由 飞龙使者 于 2013-9-4 20:08 编辑

来吾爱有一段时间了 一直想给大家做个教程
这次是个入门级的破解教程 大牛请绕。。
要破解的程序是苍海帖子搬运机。。

首先我们打开程序,点击登录。。。咦。。怎么没有反应

好吧 peid确定无壳后 直接拖进OD 点击插件-》中文搜索引擎-》搜索ascll
然后滚动到最上面 找到了我们希望看到的东西(红框内)



我们发现有个“登录成功” 还有个“扣除成功”
按照程序执行流程应该是这样。。。

所以我们分别定位到字符串出现的地方 向上找到关键跳
这是“登录成功”的地方:


这个是“扣除成功”:


理论上把两个跳转抹掉就好
但是呢我们发现这个函数上面有个网络验证
不解决掉它 执行起来非常卡

那么我们记下扣除成功的地址:0x00401c1a

然后往上滚动找到网络验证的地方
找到最开始组合post字符串的地方
把第一个字节按空格 然后改成“jmp 00401c1a”


然后保存 运行 是不是快多了

之后还有个问题 就是每次运行都要带个登录窗体 多不美观。。
恕我不了解易语言窗体的初始化流程 我能想到的办法
就是使form_load事件向button_click事件跳转

那怎么找消息循环呢。。
由于我们可以确定 整个登录验证是在按钮里进行的
我们在后面的retn处下断点
之后f8多走几步大约两次就返回到了这里


这个就是消息循环了 中间的那个call就是回调 果断下个断点


然后重启OD 运行 我们可以发现在登录窗体出现前有且仅有一次断在了那里
按f7进去 这个就是form_load回调了


等窗体加载完毕 按下登录按钮 又一次断下 按f7进去
这个就是按钮的回调


那个form_load不是特别重要 那么就直接在开头跳到按钮的回调函数去



如果form_load里的东西有用可以把最后一句retn改成跳走
如果没有多余的地方就把form_load的函数二进制复制 然后在代码尾找个多余的地方粘贴再改


保存 然后运行 大功告成了

关掉程序的时候有个打开网址的动作 同样可以通过消息循环定位 然后函数首retn



byeb 发表于 2013-9-4 20:00

我是来抢沙发滴·~嘎嘎

Ntasa 发表于 2013-9-4 20:02

板凳吗~   感谢分享~

专卖小七 发表于 2013-9-4 20:02

求大牛垂钓,网络验证牛。

LoongKing 发表于 2013-9-4 20:03

只能膜拜!

amulin 发表于 2013-9-4 20:33

还不错
不过貌似不是入门级的
看来楼主的入门门槛很高啊

zeromaggot 发表于 2013-9-4 20:36

学习了{:1_918:}

方丹龙 发表于 2013-9-4 20:45

学习了。

zhangguojun 发表于 2013-9-4 20:53

楼主的入门门槛较高,我等膜拜一下

小瑶 发表于 2013-9-4 21:05

学习了。。。。
页: [1] 2
查看完整版本: 一个入门级别的破解教程。。。