破解外挂系列No.1(后来者居上)
文章作者:NetKi1l[ESST]
信息来源:中国破解联盟[Evil-Soul Security Team](http://www.cncracker.com)
本文发表在黑客X档案09年5月分杂志
转载请著名
刚才群里面的小狼同学发来一个脱机外挂让我看看!正好这会有时间就拿来分析了一下!
拿过程序先用PEID 0.95扫了一下 Microsoft Visual C++ v6.0 区段也很整洁 一阵暗喜!就喜欢分析无壳的程序!运行一下界面 弹出一个登陆界面 如图1
有试用?点了试用后没有反应 - - # 是不是不给试用了?不管它的 我们登陆看一下 随便输入一个用户名 "Netki1l" 密码 "123456" 点击确认,弹出 "失败","用户名或密码错误!" 太好了 有弹出提示 不用说了直接用OD载入下 MessageBoxA断点 堆栈返回如下内容:
0012EE20 00C02C86 /CALL 到 MessageBoxA 来自 krnln.00C02C80
0012EE24 00000000 |hOwner = NULL
0012EE28 004268CA |Text = "用户名或密码错误!"
0012EE2C 0040C068 |Title = "失败"
0012EE30 00002030 Style = MB_OK|MB_ICONEXCLAMATION|MB_TASKMODAL
接着ALT + F9 两次 可是在第一次 alt +f9 返回的时候发现到了 krnln 的领空了 反汇编窗口又有一系列的 jnz ... retn 如图2
原来是E语言的外挂 那我们一直F8步过 一直到反回程序领空为止 (在这里说明一下 很多朋友都说找不到字符窜 其实是没有找到程序的领空时机 像这时候返回的 我们就可以试着找ASCII字窜了) 我在这里总共找到了 5635 个字窜 - - # 如图3
红色小框圈起来的地方就是刚才我们返回时中断的地方 红框上面一行就是提示 密码错误的地方了 我们在红圈圈起中断的地方 双击鼠标 或者 右键点跟入 再或者直接按键盘上的 Enter 按键 来到了 反汇编窗口了 如图4
此时大家注意 0054A1A9 地址处 为黑色 表示 程序中断至此 而上面的第一个CALL 就是CALL Msgbox 函数了 右边有显示注释提示 是因为刚才我们搜索过一次字窜了 如果没有搜索过的话 一般情况下是为空的 特别是在加壳的情况下 都是为空的 在0054A153 处 就是关键跳了 我们双击此处 将 je 改成 jne 这时候我们就复制保存 运行的时候会提示 "MD5文件不存在或文件(Blcx.exe)被改名" 只好关闭OD 修改程序名字 再次运行 这次又提示 "文件(Blcx.exe)被修改,可能带木马程序" 真烦人的自效验 先不管自效验了 先随便找个补丁试试吧 我就用国产的 KeyMake 1.73 制作了一个补丁 (为了节省篇幅 我就不细说过程了 只截张图) 如图 5
请大家与第4张图 结合 观看 接着我们来运行补丁 又提示如图 6的提示
还样子还是不行 真让人恼火 又运行了一次又提示了用户名或密码错误 难道关键地址是变动的?这一下怎么办?真是麻烦了 难道就这样放弃?
[后来者居上]
以上所述的就是一般的破解思路了 下面我们来试试我这种新的方法 重新运行程序 大家看看完整界面 如图 7
除了出现了登陆界面之外 在登陆界面后面还显示了外挂的主窗体 而且还全部是加载完毕的 直接点击后面的外挂是不行的 因为焦点一直是在 前面的登陆窗口之上的 这样的话 我们让登陆界面失去焦点不就行了吗?说干就干 重新整理一下思路 我们先用 findwindow 函数 获取标题 然后用 enablewindow 函数 让外挂主窗体获取焦点 若干分钟后写好了程序 试了下效果还行 但是登陆窗口一直在那显示也不好看 我们再用 showwindow 函数 让其隐藏起来 就可以了 如图 8
里面的按钮什么的也都可以使用了 将补丁发给小狼同学 没过多久小狼就反应了 程序没有完美破解 还有功能限制 当点击 [军事]->[加入武将] 的时候会弹出提示 如图 9
这个就好办了 再用OD载入后 直接运行 然后运行我写的补丁 再下MessageBoxA断点 点击[加入武将] 返回程序领空 来到这里 如图 10
0055E065 833D B40C3501 0>CMP DWORD PTR DS:[1350CB4],2
这一句 cmp 是做比较判断 将地址 135CB4 处的值 与 2 做比较 我们可以将 2修改为0 或者将 135CB4处的值改成 2 都一样的
0055E06C 0F8D 3B000000 JGE Blcx.0055E0AD ; 功能限制处
或者将 jge 修改成 jmp 也可以达到同样的效果
本文只是起到抛砖引玉的作用 其实破解的方法还有许多
上一篇: iOS客户端与JAVA服务器之间的RSA加密解密怎么实现
下一篇: 组播排错的命令
推荐阅读