首页
社区
课程
招聘
[原创]自己写的一个压缩壳
发表于: 2012-6-9 20:26 7492

[原创]自己写的一个压缩壳

2012-6-9 20:26
7492

    一年前写的一个压缩壳,请各位大牛多多指教。支持对exe/dll文件压缩、IAT重建、dll重定位、tls回调、资源压缩、反内存dump等特性。由于压缩算法是自己实现的,所以在压缩率和解压速度方面都还有待提高。
    目前用这个壳压缩的程序只能在XP下正常运行,在WIN7下会Crash,具体原因还没来得及分析。

在这里顺便打个广告:
目前本人正打算更换工作。
期望工作地点:深圳
期望从事:逆向、驱动开发、病毒分析、客户端安全相关工作
联系QQ:282074009


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 6
支持
分享
最新回复 (5)
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
2
mark,祝楼主跳个好操
2012-6-9 21:09
0
雪    币: 220
活跃值: (721)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
兼容性解决不了,就没法用啊
2012-6-9 21:31
0
雪    币: 967
活跃值: (1138)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
是的啊 作为一个商用东西 兼容性必须保证的
2012-6-9 22:10
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
5
00425950    FF15 50614200   call    dword ptr [<&KERNEL32.GetTickCount>]  ; kernel32.GetTickCount
00425956    8D0D 66594200   lea     ecx, dword ptr [425966]
0042595C    8B5424 04       mov     edx, dword ptr [esp+4]
00425960    85D2            test    edx, edx
00425962    74 02           je      short 00425966
00425964    8902            mov     dword ptr [edx], eax
00425966    8BD0            mov     edx, eax
00425968    8B41 EC         mov     eax, dword ptr [ecx-14]
0042596B    8B00            mov     eax, dword ptr [eax]
0042596D    25 0000F0FF     and     eax, FFF00000    //问题在这里
00425972    33C2            xor     eax, edx
00425974    C2 0400         retn    4

问题解释:这里你的意思是通过GetTickCount的地址来获取kernel32.dll的基址。

在WinXP上
GetTickCount=7C80934A
Kernel32的基址=7C80000
你这样做是没有问题的。

在Win7上:
GetTickCount=74AD110C
Kernel32的基址=74AC0000
你这么做的话,你得到的Kernel32基址就变成了74A0000,这时候你再用这个基址去索引导出表肯定会内存访问异常的。

其它部分没有问题。
2012-6-10 12:45
0
雪    币: 163
活跃值: (41)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=无聊的菜鸟;1079012]00425950    FF15 50614200   call    dword ptr [<&KERNEL32.GetTickCount>]  ; kernel32.GetTickCount
00425956    8D0D 66594200   lea     ecx, dword ptr ...[/QUOTE]

由于我的笔记本是XP系统,所以一直没在Win7下仔细研究这个问题。不过看了你的回复,问题应该就出在这里了。。
2012-6-10 12:55
0
游客
登录 | 注册 方可回帖
返回
//