首页
社区
课程
招聘
[原创]x86指令集的扭曲加密小工具
发表于: 2019-5-21 22:22 5204

[原创]x86指令集的扭曲加密小工具

2019-5-21 22:22
5204

这是一个32位windows下x86指令集的扭曲加密小工具,这个小工具是2008年做的,当时因为需要给开发的windows驱动进行一些防护,防止其他人逆向,当时能给驱动加壳的软件还不是很多,比较厉害的就是刘涛涛的扭曲加密,不过因为各种原因最后在高人的指点下自己弄了个简单的代码扭曲加密小工具用于驱动代码的保护,虽然远远谈不上完美,但是勉强也能用,呵呵。 


因为年代久远有些细节也记不清楚了,基本思路就是比如将jmp会替成 jnz xxx jz xxx, call变成push xxx,jmp target这种代码,然后可以通过多次循环变换将生成的代码进一步进行分解变换以提高代码扭曲的程度。需要扭曲加密的代码块在编译前用宏  START_MUTATE() 和 END_MUTATE() 包裹住。比如:


START_MUTATE()

some code....

END_MUTATE()


执行 Dotfuscator.exe 输出如下:

Dotfuscator 1.0

---------------

Usage:

        Dotfuscator exefile [-m{n}] [-o{outfile}]

        -m      Mutate times

        -o      Output file

比如 Dotfuscator.exe test.exe -m3 -o1.exe 将test.exe扭曲加密后输出到新的1.exe,-m3代表循环处理3次,默认是2次,这里如果处理次数太多,代码会急剧膨胀,并且处理时间会变的很长。


这是扭曲之前的代码:



很顺利的F5成伪代码:



扭曲之后的代码:



最后测试的开发环境是vs2010 源码已经上传到github 地址:https://github.com/phonegapX/Dotfuscator_x86


[课程]Android-CTF解题方法汇总!

收藏
免费 2
支持
分享
打赏 + 2.00雪花
打赏次数 1 雪花 + 2.00
 
赞赏  kanxue   +2.00 2019/05/22
最新回复 (8)
雪    币: 18
活跃值: (1009)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
支持技术分享,本地来一份方便伸手党。
上传的附件:
2019-5-22 00:02
0
雪    币: 12848
活跃值: (9108)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
big hands:不是x64版本的没用
2019-5-22 08:02
0
雪    币: 21449
活跃值: (62288)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
4
感谢分享~
2019-5-22 09:21
0
雪    币: 165
活跃值: (1431)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享!
2019-5-22 09:29
1
雪    币: 725
活跃值: (2103)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
感谢分享,思路和方法才是关键吧,X64的自己撸也是OK的
2019-5-22 14:47
0
雪    币: 94
活跃值: (544)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
@ hzqst
不是x64版本的没用(手动狗头
最后于 2019-5-23 13:32 被GJHSQGD编辑 ,原因:
2019-5-23 13:32
0
雪    币: 6
活跃值: (3185)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
支持 swich case 吗
2019-5-23 18:35
0
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
高明的手段。。类似另一种VM
2019-5-27 10:38
0
游客
登录 | 注册 方可回帖
返回
//