当前位置: 移动技术网 > 网络运营>安全>加解密 > 破解外挂系列No.1(后来者居上)

破解外挂系列No.1(后来者居上)

2018年02月11日  | 移动技术网网络运营  | 我要评论

\

文章作者:NetKi1l[ESST]
信息来源:中国联盟[Evil-Soul Security Team]()
本文发表在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 也可以达到同样的效果

本文只是起到抛砖引玉的作用 其实破解的方法还有许多

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网