.text:15033CE0 mov ecx, [esp+arg_pBuf]
.text:15033CE4 mov edx, [esp+arg_pszFileName]
.text:15033CE8 push esi
.text:15033CE9 mov eax, ecx
.text:15033CEB neg eax
.text:15033CED sbb eax, eax
.text:15033CEF mov esi, edx
.text:15033CF1 neg esi
.text:15033CF3 sbb esi, esi
.text:15033CF5 test esi, eax
.text:15033CF7 jnz
short
loc_15033D06
我试了半天也没法生成这样的语句。求大神帮我看看。在线坐等啊。。谢谢。
主要是这几句实在是不懂
.text:15033CF5
test
esi, eax
下面的代码是我还原出来的。。。但是不对啊。。
这段汇编的意思大概是判断两个字符串指针是否为0(NULL),如果其中有一个为0那么就不会跳转。
很好奇怎么写才会编译出这种代码。。。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
if(arg_pBuf==0) var_eax=0;if(arg_pszFileName==0) var_esi=0;if(var_eax&&var_esi){ //loc_15033D06}
//两个指针均不指向NULL,跳转到15033D06
if
( !ecx == !edx )
{
printf
(
""
);
}
"def\n"
我觉得可能是这样写的吧
http://www.cnblogs.com/zhangdongsheng/archive/2012/06/03/2532477.html
(arg_pBuf && arg_pszFileName)
//判断两个参数都不为NULL,才执行这里
...
else
goto