-
-
[求助]堆栈无法回溯的时候,应该如何继续
-
发表于:
2021-4-25 18:52
3020
-
跟数据加密,跟踪数据到某一层的函数头,没有找到跳转,堆栈也无法回溯调用.
应该是
mov eax,address
jmp eax 这种直接跳转的方法
这种情况有没有什么继续追踪.
感谢下各位的回帖
说下分析后续:
程序是ASProtect 1.2x - 1.3x [Registered] 脱壳后能运行,不过功能不太正常,所以带壳调试.其中被保护的代码,脱壳前后没什么变化.
倒着追的时候因为无法回溯,所以只好正着追.
未加密数据被拷贝一份后,弹出一个字节到[esp]里,之后就会进入被保护的代码,其中有进入锁
lock cmpxchg dword ptr ds:[edi+0x30],ecx
后续会有非常多运算代码 及交叉跳转,对堆栈的修改操作 比如下面代码
sub al,cl
pop cx
sub al,0xAF
add al,bl
add al,0xAF
pop edx
push ebx
push dword ptr ss:[esp]
jmp 32350956
mov cx,word ptr ss:[esp]
push ebx
jmp 32352AAD
push dword ptr ss:[esp]
pop ecx
push edx
push esp
pop edx
add edx,0x4
add edx,0x4
xchg dword ptr ss:[esp],edx
jmp 323533B6
直接自动后会一直到弹出异常. 猜测这里是靠异常返回,然后其他线程进入锁.
不知道是什么原因 ,对锁里面访问的内存地址下断,一直断到附近的数据段,程序又会异常,后续还需要继续分析.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-4-26 14:12
被ffggddss编辑
,原因: 后续分析