首页
社区
课程
招聘
[求助]几条汇编语句,求大神帮我看看怎么转换成C代码。。。
2017-6-25 07:49 2964

[求助]几条汇编语句,求大神帮我看看怎么转换成C代码。。。

2017-6-25 07:49
2964

.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: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


下面的代码是我还原出来的。。。但是不对啊。。



这段汇编的意思大概是判断两个字符串指针是否为0(NULL),如果其中有一个为0那么就不会跳转。

很好奇怎么写才会编译出这种代码。。。


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 80
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
CptPrice 2017-6-25 10:08
2
0

if(arg_pBuf==0)
       var_eax=0;
if(arg_pszFileName==0)
       var_esi=0;
if(var_eax&&var_esi)
{
       //loc_15033D06
}

//两个指针均不指向NULL,跳转到15033D06

雪    币: 5954
活跃值: (46)
能力值: ( LV4,RANK:140 )
在线值:
发帖
回帖
粉丝
Lnairan 1 2017-6-25 11:41
3
0
if( !ecx == !edx )
{
    printf("");
}
    printf("def\n");

我觉得可能是这样写的吧

雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ntDownload 2017-6-25 12:55
4
0
雪    币: 112
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xietao 2017-6-26 16:24
5
0

if (arg_pBuf && arg_pszFileName)
{
	//判断两个参数都不为NULL,才执行这里
	...
}
else
{
	goto loc_15033D06
}


游客
登录 | 注册 方可回帖
返回