学破解论坛

 ★找回密码★
 ★免费注册★

QQ登录

绑定QQ,免密登录

查看: 1535|回复: 54

[其他原创图文] 芒果教你写壳之代码虚拟化(一)

  [复制链接] |关注本帖

  离线 

签到天数: 18

该用户今日未签到




{:5_116:}

大家好。我是芒果,今天给大家带来一个代码虚拟化技术的入门。
所谓代码虚拟化,就是反逆向的一种技术,将正常的汇编代码将被替换成只有壳可以识别的字节码。
然后移交到壳的虚拟机来解析执行。由于壳内部解析指令的过程比较复杂。如果被分析的时间成本比较高,也比较烧脑、
从而达到程序关键算法和逻辑难以逆向的目的。

这一期我们来自己动手来创造一个属于自己的代码虚拟机,自己写一款代码虚拟化的壳!!!!
由于教程嘛。我们就先实现让自己写的壳VM掉 push ebp这个指令。
后面大家可以自己发挥,来支持VM更多的指令(丰富虚拟机的指令集)。
毕竟我也是小菜,如果有写的不对的地方还请指正。

我们这只是一个入门教程嘛。所以全程不涉及高级语言的代码实现,只是一些简单的汇编和lordpe的操作,顺便讲解一下原理。
【PS:如果后面我有时间,将出一期教程,使用易语言来实现写壳】
1.下面是普通的易语言程序,od载入,默认是断到oep这里,我选中了一个push ebp 指令。今天我们这个简单教程就先让自己的壳来VM掉这个push ebp指令
QQ截图20210210162044.png


2.给原来程序添加壳代码段。我设计了两个区段,一个是vmcode,一个是vmdata,vmcode是主要存放虚拟机代码;vmdata主要是存放虚拟机要解析的指令集(就是自定义的虚拟机字节码存放的地方)【加区段的话,可以使用lordpe来加区段】
注意:区段属性的问题:vmdata区段一定是C0000040(表示可读写) vmcode区段属性一定是60000020(表示可执行代码)
QQ截图20210210162314.png
然后我们来划分一下vmdata区段内存空间,由于x86下面8个常见寄存器(EAX,EBX,ECX....)每个是8字节的长度,所以我们这个vmdata的前64个字节就分别来存放这8个寄存器的值。
QQ截图20210210162948.png
然后是自定义字节码。我随便定义了个,FF EE EE EE EE EE FF这个8个字节代表指令push ebp。(FFEEEEEEEEEEEEFF就属于我们自定义的字节码啦,od是不能解析的,只有我们的虚拟机知道他是push ebp)然后我们把它放到哪里呢?就放到8个虚拟机寄存器的后面吧!【其实我还耍了个小聪明:FFEEEEEEEEEEEEFF无论正着读还是倒着读都一样,就不用考虑取出的时候高位还是低位的问题了。】
QQ图片20210210164926.png
游客,当前主题有一部分内容已经设置隐藏,需要回复才能查看全部内容。

评分


每日系统赠送“免费评分”
评分不仅是免费的,还能提升你自己账号的活跃度。既感谢了楼主,又提升了自己。可谓一箭双雕!何乐而不为?评分安排上!

参与人数 5威望 +1 HB +107 THX +4 收起 理由
我是墨白!! + 3 + 1 芒果表哥牛逼
飘零未忍 + 1 + 1 [快捷评语]--吃水不忘打井人,给个评分懂感恩!
jiangfuran + 1
hysmy17 + 2 + 1 [快捷评语]--你将受到所有人的崇拜!
Shark恒 + 1 + 100 + 1 [快捷评语]--你将受到所有人的崇拜!

查看评分详情

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 109

该用户今日未签到




谢谢分享教学
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 81

该用户今日未签到




学习下,估计难度大呀
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 436

今日第3个签到





谢谢分享教学
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 222

该用户今日未签到

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 31

该用户今日未签到




芒果教你写壳之代码虚拟化(一
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  在线 

签到天数: 75

今日第164个签到




谢谢分享教学
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  在线 

签到天数: 325

今日第224个签到




谢谢分享教学
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 4

该用户今日未签到




吃水不忘打井人
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 752

该用户今日未签到




感谢楼主分享我拿走了
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
您需要登录后才可以回帖 登录 | 立即注册

获得更多积分,阅读本版加分规则

免责声明

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者其他任何非法用途!否则,一切后果请用户自负!如有侵权请使用邮件或微信联系站长处理。

站长邮箱:SharkHeng@iCloud.com


站长微信号:SharkHeng|站长邮箱:SharkHeng@iCloud.com|鲨鱼逆向|无图版|手机版|小黑屋|FAQ|VIP破解教程|学破解论坛 ( 京公网安备 11011502002737号 | 京ICP备20003498号-3 )

GMT+8, 2021-4-21 10:47

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