我那个例子,是硬写的
对于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 ,手头上没那块数据结构的资料