想把汇编代码转成类c的代码,有经验的给点建议
本来一直在上层游荡,突的就来了个这么低层的活:把汇编代码转化成类c代码的格式。没弄过,求高手大侠不吝赐教,谢谢啦
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
本来一直在上层游荡,突的就来了个这么低层的活:把汇编代码转化成类c代码的格式。没弄过,求高手大侠不吝赐教,谢谢啦
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
这个可以试试,呵呵
看来乃们的破解知识不行嘛 :)
IDA HEX-RAYS
.text:0061B000
.text:0061B000 push 0FFFFFFFFh
.text:0061B002 ; 18: v4 = sub_40AAC0((unsigned int)&v15 ^ dword_A3982C);
.text:0061B002 push offset loc_67ED59
.text:0061B007 mov eax, large fs:0
.text:0061B00D push eax
.text:0061B00E push ebx
.text:0061B00F push esi
.text:0061B010 push edi
.text:0061B011 mov eax, dword_A3982C
.text:0061B016 xor eax, esp
.text:0061B018 push eax
.text:0061B019 ; 10: v3 = this;
.text:0061B019 lea eax, [esp+1Ch+var_C]
.text:0061B01D mov large fs:0, eax
.text:0061B023 mov esi, ecx
.text:0061B025 ; 11: v2 = a2;
.text:0061B025 mov edi, [esp+1Ch+arg_0]
.text:0061B029 mov eax, [edi]
.text:0061B02B xor ebx, ebx
.text:0061B02D ; 12: if ( *(_DWORD *)a2 )
.text:0061B02D cmp eax, ebx
.text:0061B02F jnz loc_61B0BF
.text:0061B035 call sub_40AAC0
.text:0061B03A ; 19: if ( (unsigned __int8)QString__operator__(v2 + 1028, v4) )
.text:0061B03A push eax
.text:0061B03B lea ecx, [edi+404h]
.text:0061B041 call ds:??8QString@@QBE_NPBD@Z ; QString::operator==(char const *)
.text:0061B047 test al, al
.text:0061B049 jz short loc_61B07D
.text:0061B04B ; 21: if ( (unsigned __int8)sub_63F3A0(v2) )
.text:0061B04B push edi
.text:0061B04C mov ecx, esi
.text:0061B04E call sub_63F3A0
.text:0061B053 test al, al
.text:0061B055 mov ecx, esi
.text:0061B057 jz short loc_61B076
.text:0061B059 ; 23: sub_61ACD0(v3, v2);
.text:0061B059 push edi
.text:0061B05A call sub_61ACD0
.text:0061B05F ; 24: return 1;
.text:0061B05F mov al, 1
.text:0061B061 mov ecx, [esp+1Ch+var_C]
.text:0061B065 mov large fs:0, ecx
.text:0061B06C pop ecx
.text:0061B06D pop edi
.text:0061B06E pop esi
.text:0061B06F pop ebx
.text:0061B070 add esp, 0Ch
.text:0061B073 retn 4
F5后转成
char __thiscall sub_61B000(void *this, int a2)
{
int v2; // edi@1
void *v3; // esi@1
int v4; // eax@2
int v6; // eax@6
int v7; // ST04_4@6
char v15; // [sp+0h] [bp-18h]@2
int v16; // [sp+14h] [bp-4h]@6
v3 = this;
v2 = a2;
if ( *(_DWORD *)a2 )
{
sub_61A940(*(_DWORD *)a2);
}
else
{
v4 = sub_40AAC0((unsigned int)&v15 ^ dword_A3982C);
if ( (unsigned __int8)QString__operator__(v2 + 1028, v4) )
{
if ( (unsigned __int8)sub_63F3A0(v2) )
{
sub_61ACD0(v3, v2);
return 1;
}
sub_61AF80(v3);
}
else
{
v6 = sub_61A710(&a2, "The key is not for this product.", 0);
v16 = 0;
sub_61E070(v6, v7);
_ECX = a2;
v16 = -1;
_EDX = -1;
__asm { lock xadd [ecx], edx }
if ( _ZF )
QString__free(a2);
}
}
return 0;
}
我现在正研究某某的那啥,你们懂的
头大死了 没头绪了
上头的任务,不转不行啊
这个最好还是手工转吧,汇编转C并不麻烦啊
哦,好的,谢谢啊
好像 有个什么工具 能将汇编转换为C代码,但是里面很多goto语句,看起来很蛋疼,
软件名字我忘了 ,你可以去看雪问问~
这个没有