吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 6073|回复: 27

[原创逆向图文] P-Code引发的爆破惨案

  [复制链接]
李沉舟 发表于 2018-3-21 23:29 | 显示全部楼层 |阅读模式

以前草草跑了两圈VB6运行库的PCODE解释引擎,很EASY+TYPICAL的一个基于堆栈的虚拟机结构。没有仔细看。今天微机课的时候一同班同学DOWDNLOAD了一个CM下来,问我如何干掉。我扫了一下DEDE,大汗,PCODE程序……今天是注定要亲密接触了。嗯,写完这篇文章之后我发现是160个CrackMe里面第38号CrackMe的……真TM的是无处不在。
2.png


1.png

3.png

[Visual Basic] 纯文本查看 复制代码
Private Sub Form_Initialize() '40DC38
  'Data Table: 402AEC
  loc_40DC34: global_76 = &H45A0
  loc_40DC37: Exit Sub
End Sub




&H表示十六进制(和0x前缀,H后缀一个道理)。

-----------分割线-------------
首先尝试无脑爆破之。但是PCODE的机器码我没有研究过,嗯,网上也找不到资料。PASS掉。不能改机器码。然后,本人想到了改Handler。我真的要为我的机智点10086个赞了。
把运行库从系统目录里面抠出来,修改后扔到CM的目录下。
4.png
VB5运行库在此。

[Visual Basic] 纯文本查看 复制代码
  loc_40E4DE: If ((CVar(Me.txtkey.Text) - var_94) = CVar(Len(Me.txtname.Text))) Then
  loc_40E502:   MsgBox("Wow, you have found a correct key!", &H40, "Correct key", var_FC, var_11C)
  loc_40E533:   MsgBox("Mail me, how you got it: [email]CyberBlade@gmx.net[/email] ", &H40, "Correct key!", var_FC, var_11C)
  loc_40E550:   Me.Command2.Caption = "Exit"
  loc_40E55B: Else


大兄弟可还记得我们开头的时候贴出的代码?0x40E4DE,这里就是PCODE的机器码地址了。在上面下一个内存访问断点,中断在VB5运行库的FFree1Str Handler上。(实际爆破的时候不能直接改成无条件跳转,堆栈会不平衡)

[Asm] 纯文本查看 复制代码
7411E712    8A06            mov     al, byte ptr [esi]
7411E714    46              inc     esi
7411E715    FF2485 94ED1174 jmp     dword ptr [eax*4+7411ED94]

取操作码,指令流递增,从Handler表里面取地址。跳转之,没什么好解释的。凡Handler末尾必定是这段代码。接下来单步会走到BranchF Handler上。
[Asm] 纯文本查看 复制代码
7411D545    59              pop     ecx
7411D546    66:0BC9         or      cx, cx
7411D549  ^ 74 D9           je      short 7411D524

这里这个or cx,cx是什么意思呢?一般来说,只有0 or 自己才结果为0(ZF为0,JE跳转),其它数都是非0。
意思是说,这条指令的意思是,栈顶的数为False,我就跳,True就不跳。
步过Pop ecx后,把ecx修改为1,之后提示成功。

此时记录ESI的地址,0x40E4DF。

然后把VB5运行库扒拉出来。
WTF?居然还有绑定输入?直接全部清0,否则没有空间加区块头。
5.png

6.png

点上面菜单栏的保存图标,一路SAVE即可(上一个界面里的0x240和0x90记得改0)。然后加个区块。

换studype这个工具,LordPE只负责加区块头,我们要自己往后面补数据。很麻烦。

7.png

0x14D000是RVA地址。OllyDbg载入运行库。

刚刚因为我调试CM时看到运行库被装载到了推荐基址,就直接记了VA地址。在LOADDLL里面不出意外也会被装载到推荐基址,直接转到0x7411D546即可。
以下是补丁数据:
9.png
8.png

保存补丁即可。

保存后运行库扔到程序目录。提示成功。


评分

参与人数 16威望 +1 HB +49 THX +8 收起 理由
虚心学习 + 1
一路走来不容易 + 1
消逝的过去 + 2
冷亦飞 + 1
无刘公子 + 1
temp + 1 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
thunderiser + 1
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
lies + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
拿着雪糕 + 1 + 1
海天一色001 + 1 + 1 [快捷评语] - 2018,狗年发发发,狗年旺旺旺!
海东 + 5 + 1 看不懂!但评分是一种礼貌!
syzh802618 + 2 + 1 [快捷评语] - 2018,狗年发发发,狗年旺旺旺!
Shark恒 + 1 + 30 + 1 [快捷评语] - 2018,狗年发发发,狗年旺旺旺!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2018-3-22 08:25 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
syzh802618 发表于 2018-3-22 08:29 | 显示全部楼层

看花眼
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
973204 发表于 2018-3-22 09:36 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
caodaye 发表于 2018-3-25 00:47 | 显示全部楼层

看不懂 不过只有说6666666
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
caodaye 发表于 2018-3-25 00:47 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
kanxue2018 发表于 2018-3-25 13:04 来自手机端 | 显示全部楼层

非常好的教程,图文并茂,慢慢研究必有所收获
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
暴走哥 发表于 2018-3-25 16:59 | 显示全部楼层

以后慢慢来学习吧!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
海天一色001 发表于 2018-3-26 14:14 | 显示全部楼层

虽然有些不太明白,还是感觉楼主真牛!!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
十文的十 发表于 2018-3-29 04:23 来自手机端 | 显示全部楼层

兄dei  666
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表