-
-
[求助]visual studio 2005编译(x64)的windows API函数--showwindow()只有一个参数?(已修正上传的附件)
-
发表于:
2022-6-18 16:03
5214
-
[求助]visual studio 2005编译(x64)的windows API函数--showwindow()只有一个参数?(已修正上传的附件)
模仿网上资料自己编写的MFC小程序,运行后弹出2个广告:
第一个是调用CreateProcessA创建IE进程访问网页,
第二个是调用showwindow显示窗口。
使用vs2005,静态编译为64位程序,showwindow处只出现一个参数,本来应该是2个。
(x64DBG,插件Api Break, user32.dll--showwindow下的断点)
1 2 3 | ShowWindow(
__in HWND hWnd,
__in int nCmdShow);
|
这里少了一行代码,mov edx,5 不过,在寄存器窗口中发现,rdx的值已经是5了。
将以上2行反汇编代码NOP之后,也能起到屏蔽去弹窗的效果。
使用VS2010编译后在上一行会有mov edx,5代码,将第2个参数值传到寄存器edx中。
1 2 3 | mov edx, 5 | Arg2 = 5
mov rcx,qword ptr ds:[rbx + 120 ] | Arg1
call popad64_vs2010. 7FF61B9AC454 | sub_<popad64_vs2010. 7FF61B9AC454 >
|
不知道为什么在VS2005里会缺少mov edx,5这一行,传递第2个参数的代码?
我用的插件是xanalyzer
抱歉,第一次传成32位的程序了。
现在已经换成64位的了。
链接:
https://pan.baidu.com/s/1waL8Rfn5HUMrU_-LaJy-Xg?pwd=96at
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-6-19 09:21
被qintel编辑
,原因: