首页
社区
课程
招聘
[求助]学习脱壳,求大神指点一下
发表于: 2013-4-26 14:40 3159

[求助]学习脱壳,求大神指点一下

2013-4-26 14:40
3159
有一段反汇编的函数 我是新手 实在想不懂这个函数怎么回事 求大神指点 程序的入口不是正常的c++的那些 初始化 什么 getvertion什么的 而是一个 通过好几个时间api  以及进程id 线程id等做异或得出一个随机值 (全局)。下面是紧接着这个函数的一段代码 我不懂这个功能是啥
push 60h
push offset 00417420
call  00402e08
and dowrd ptr ss:[ebp-4],00000000
lea eax,[ebp-70]
push eax
call kernel32.getstartupinfoA
.........

00402e08:
push 00402ea0
push dword ptr fs:[0]         ;fs 指向 7ffde000 这个地址内存值为 0032ffe0
mov eax ,[esp +8+8]  ;指向60h
mov [esp+8+8], ebp
lea ebp,[esp+8+8]
sub esp,eax
push ebx
push esi
push edi
mov eax ,dword ptr ds:[419a68]  ;这个地址存了一个利用几个时间api与进程id线程id异或出的值,这个值随机的每次不同
xor [ebp-4],eax
xor eax,ebp
push eax
mov [ebp-18h],esp
push dword ptr [ebp-8]
mov eax,[ebp-4]
mov dword ptr [ebp-4], 0fffffffeh
mov [ebp-8] ,eax
lea eax,[ebp-10h]
mov large fs:0,eax
retn

就是上面这个函数 我想不懂这个函数是在干什么,为什么没有基本的c语言平衡栈的过程,与程序内其他函数的栈处理明显不同。
求大神指点

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

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