首页
论坛
课程
招聘
[原创]PECompact2变形工具
2010-8-11 16:45 6070

[原创]PECompact2变形工具

2010-8-11 16:45
6070
标 题: 【原创】PECompact2变形工具
作 者: jgaoabc
时 间: 2010-08-11,15:35

    我采用纯汇编语言做了一个PECompact2的变形工具,适合PECompact2压缩后的变形处理。PECompact2是一个比较优秀的压缩软件,适合DLL和EXE文件的压缩处理,压缩后的文件入口处采用一段经典异常。知道它的原理脱壳是非常方便的。

    改壳处理:我在它的基础上在第一段代码中增加了1k字节的空间,在第一个异常中又增加了一段反调试代码,这段反调试代码出自《软件保护壳技术专题 - 反调试器技术》(http://bbs.pediy.com/showthread.php?t=71113),同时在反调试中又增加了另外一段异常,这段异常代码同样出自《反调试器技术》,编号是FV_VMWare_VMX,大家可以看下说明,注意,在虚拟机里程序是不能执行的。这样就形成了在异常中有反调试,而反调试中又有异常,增加脱壳的难度。

    实现方法:通过CreateFileMappingA和MapViewOfFile函数,把要修改的文件直接映射到内存中进行修改。

    使用方法:该工具在DOS下使用,把要处理的文件放在和工具同一个目录下,命令为:bian.exe EXE/DLL文件名称。PECompact2压缩选项最好采用默认。

    同时附上通过该工具处理过的记事本程序,由于水平有限,难免会出现错误,请大家指教。

    经测试,该工具在Windows 07不能运行,在XP的SP2、SP3以及2003上是可以运行的。

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 204
活跃值: 活跃值 (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
FetalError 活跃值 2010-8-12 16:04
2
0
Windows 7 ~~>_<~~伤心地路过
雪    币: 34
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
红红番茄 活跃值 2010-8-13 10:06
3
0
纯汇编语言 很想看看了
雪    币: 314
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
柳痕 活跃值 2010-8-13 10:46
4
0
还是可以比较轻松地脱掉的,毕竟pec只是一个压缩壳,没什么代码保护功能。
进入SEH handler后,直接向下查找jmp eax,下断后再单步就能到OEP了,跳过了lz的反调试代码。

不过学习楼主的PEDiy方法,有时间仔细跟踪一下~

另外,在windows 7系统中,不能获得通过命令行输入的文件名,repne   scas byte ptr es:[edi]这一句似乎没有效果……
雪    币: 350
活跃值: 活跃值 (11)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
jgaoabc 活跃值 1 2010-8-20 10:38
5
0
WINDOWS 7系统中,repne   scas byte ptr es:[edi]是不能得到文件名。
前面几行修改:
00401000 PEC01.<ModuleEntryPo>  FF15 B9B04000         call dword ptr ds:[<&KERNEL32.GetCommandLineA>]        ; kernel32.GetCommandLineA
00401006                        8BF8                  mov edi,eax
00401008                        83C7 01               add edi,1
0040100B                        33C9                  xor ecx,ecx
0040100D                        803F 22               cmp byte ptr ds:[edi],22
00401010                        75 05                 jnz short PEC01.00401017
00401012                        83C7 02               add edi,2
00401015                        EB 03                 jmp short PEC01.0040101A
00401017                        47                    inc edi
00401018                      ^ EB F3                 jmp short PEC01.0040100D
0040101A                        57                    push edi
0040101B                        E8 08000000           call PEC01.00401028
00401020                        6A 01                 push 1
00401022                        FF15 B5B04000         call dword ptr ds:[<&KERNEL32.ExitProcess>]            ; kernel32.ExitProcess
00401028                        55                    push ebp
00401029                        8BEC                  mov ebp,esp
雪    币: 1203
活跃值: 活跃值 (257)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
zhujian 活跃值 2 2010-8-20 13:55
6
0
免杀吗?你好坏  
游客
登录 | 注册 方可回帖
返回