对于noob问题抱歉。
所以我给了这个代码。根据我的理解,它添加了两个值,但是我被抛弃了mov [ebp-1], al
指令。当前在堆栈上的地址是ecx的先前值是未知的,因此该指令是否更改了ecx之前值的低字节?
push 0ffffff80h
push 0ffffffffh
call Secretfunc
add esp, 8
mov [ebp - 1], al
nop
Secretfunc
push ebp
mov ebp, esp
movsx eax, [ebp+8]
movsx ecx, [ebp+12]
add eax, ecx
mov [ebp-1], al
mov al, [ebp-1] ; declare a char in c for this
mov esp, ebp
pop ebp
retn
我还想知道是否有人知道在visual studio上进行内联汇编的好教程/手册?我发现的大部分都是使用gcc而不是VS,而微软的手册并不是很有帮助
我的教授希望我将此代码转换为VS上的内联汇编代码。是否有任何基本规则可以将内联汇编与上面给出的代码区分开来?
我尝试将secretfunc转换为带有-1的C函数,并将-128作为参数,我将Secretfunc
下面的所有代码放入我在C中创建的Secretfunc函数中的__asm{...}
,但这让我不知道我们从调用Secretfunc返回后如何处理代码
任何信息都表示赞赏
谢谢