phishy 发表于 2022-4-21 14:52

关于分析时遇到的关于栈变量的问题

近期在分析L3n0v0的一个软件里自带的dll(exe和dll均未加壳,均为64位),其内有一函数,exe调用该函数,而该函数通过DeviceIoControl控制风扇达到除尘的目的(虽然很怀疑是否能真的除尘= =)
函数中有用到储存于RSP+90的变量,并用其进行if判断:
mov ebx, dword ptr ss:
mov rbp, qword ptr ss:   ;这一行应该是无关的,反正离得近,顺便附上来吧
test ebx, ebx
jne 0x00007FFB745441FB
在这几行代码前有一两个if判断,判断内有给RSP+90赋值过,但从函数入口到if判断,再从if判断到这几行代码中都没有RSP+90的相关操作。
另外,函数只有开头有压栈和栈指针的操作:
push rsi   ;函数入口
push r14
sub rsp, 0x68
我也在调用这个函数处(由exe调用)附近看了一下,这个函数应该只有两个参数,也没看到对r8和r9的赋值,对的赋值也没看到。
想问下这里的RSP+90是怎么回事?如果前面的if判断条件未满足,那运行到这几行的时候RSP+90处的值应该是未知的。
页: [1]
查看完整版本: 关于分析时遇到的关于栈变量的问题