-
-
[求助]学习脱壳,求大神指点一下
-
发表于: 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语言平衡栈的过程,与程序内其他函数的栈处理明显不同。
求大神指点
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语言平衡栈的过程,与程序内其他函数的栈处理明显不同。
求大神指点
赞赏
他的文章
- [求助]w32.almanahe.b inf病毒有人手动杀过么,杀不干净求指导 6388
- [原创]WIN寻找异常发生代码技巧,高手勿入 10985
- [求助]windows 禁止线程切换 3478
- 说说一年学习感受 90471
- [求助]关于dll加载失败 4540
赞赏
雪币:
留言: