首页
社区
课程
招聘
[旧帖] [讨论]一个番墙软件中利用tls模糊入口点的壳 0.00雪花
发表于: 2015-11-18 14:30 2045

[旧帖] [讨论]一个番墙软件中利用tls模糊入口点的壳 0.00雪花

2015-11-18 14:30
2045
发现一个用VB写的番墙软件
超过1MB只能用网盘了,样本下载地址:http://pan.baidu.com/s/1dDltv9n
PS: 这个软件能用的,简单看了下行为好像也没有什么恶意行为.. 但是最好还是在虚拟机里分析吧,主要想试试能不能把壳脱下来。。

查了下壳,PEID显示“什么也没有发现”

但是发现有两个名为.kijuhy0 \ .kijuhy1的节,而且是通过注册.tls来实现外壳代码的执行的,但是由于水平原因,不能正确地找到OEP和真实IAT,完全没有思路。。

想请大家指导一下脱这个壳的大致思路,实在不懂了= =。。先谢谢了

下面说一下我自己尝试后失败的思路吧:

TLS表如下:
->TLS Table
   StartAddressOfRawData:  0x004FE000
   EndAddressOfRawData:    0x004FE014
   AddressOfIndex:         0x004FE018
   AddressOfCallBacks:     0x00500790
   SizeOfZeroFill:         0x00000000
   Characteristics:        0x00000000

0x00500790处: 4D 97 50 00        

查看PE头知道入口点RVA被修改成 10D493,ImageBase是400000,载入exe后,在  50D493处下内存访问断点(壳中有对cc断点的判断),来到50D493后把堆栈和寄存器记录保存下来作参考。
首先用esp法尝试失败,用二次断点法先在.data节下内存 写入断点,这时观察到.text节已经还原,在.text节下内存访问断点(不是F2),F9,中间有多次在外壳代码中中断,然后来到004078C8E,这时来到.text节(1000-79000)中了

00478C8E    27                          daa
00478C8F  - 0F8C 5D6D0000    jl  v{过}p{滤}nclien.0047F9F2

单步跟进,发现到00478C8F又 跳转到0047F9F0,这个地址是外壳中.kijuhy0节的地址。继续F9,来到004012A5
004012A5    0FB6C1          movzx eax,cl
004012A8    A9 E35AA8F3     test eax,0xF3A85AE3
004012AD    8D47 50         lea eax,dword ptr ds:[edi+0x50]

但是怎么看这里也不像OEP。。Dump下来后将.tls目录清空,修改入口点为12A5,就可以使程序从4012A5开始了,但是找不到IAT,所以修复不了导入表,也就没办法验证OEP是不是12A5了。。

想用最后一次异常法,但是只用这个方法脱过几次,这个软件的异常只有一个int3,下内存访问断点来到异常处理函数后,就不知道怎么做了,单步肯定是跑不到的- -

求各位指点一下,求思路....

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//