首页
社区
课程
招聘
[求助]tls表里的东西一定先于EP的代码运行吗?
发表于: 2005-10-29 11:50 4839

[求助]tls表里的东西一定先于EP的代码运行吗?

2005-10-29 11:50
4839
包里的文件是原来的某位大大发的,我加壳做实验,发现了一个问题,就是有的tls好像不是先于外壳代码运行.
1是用ASP2。12加壳的,tls先于外壳运行。
2是用HYING0.46加壳的,好象是先运行的外壳代码,用LordPE看又有tls表,但tls的部分好象没用。
谁知道为什么?而且加壳后程序就会出错。 附件:1.rar

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
可能hying的TLS处理有问题吧
2005-10-29 20:11
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
3

我那个例子,是硬写的
对于1.exe
最开始4020E0指向的TlsCallBackTable为0, 因此从ep开始,等aspack把数据解码还原后,oep那里是空的所以异常了, 退出进程的时候,因为TlsCallBackTable被aspack解码有值

,因此那里执行一次

对于2.exe
让我郁闷了好久
它有TlsCallBackTable,就是没进去,没啥特别啊,为啥就是不进呢?
后来自己又写了个3.exe, 只有一个kernel32指针的输入表,就因为下面这个
7C9369AB          64:A1 1800000>mov eax,dword ptr fs:[18]
7C9369B1          8B40 30       mov eax,dword ptr ds:[eax+30]
7C9369B4          8B48 0C       mov ecx,dword ptr ds:[eax+C]
7C9369B7          83C1 1C       add ecx,1C
7C9369BA          8B11          mov edx,dword ptr ds:[ecx]
7C9369BC          33C0          xor eax,eax
7C9369BE          3BD1          cmp edx,ecx
7C9369C0          74 12         je short ntdll.7C9369D4
7C9369C2          8062 25 EF    and byte ptr ds:[edx+25],0EF
7C9369C6          F642 25 40    test byte ptr ds:[edx+25],40        //不知道这是检测啥啊,郁闷
7C9369CA          0F84 505F0000 je ntdll.7C93C920
7C9369D0          8B12          mov edx,dword ptr ds:[edx]
7C9369D2        ^ EB EA         jmp short ntdll.7C9369BE
7C9369D4          C3            retn

通过一个链表枚举所有的dll模块并检测
检测什么东西呢?
kernel32.dll和Shimeng.dll没有进TlsCallBack的门票
再加一个user32.dll就有门票了
别的dll也都有门票, 只要有一张门票就会进TlsCallBack
那些检测的链表, OD截入停在系统断点就存在了,不知道怎么来的
郁闷!世界真奇妙,哎!

附件:3.rar

那个链表是PEB的FastPebLock ,手头上没那块数据结构的资料
2005-10-30 00:45
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
真是深了啊
2005-10-30 15:21
0
游客
登录 | 注册 方可回帖
返回
//