吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 609|回复: 8
收起左侧

[求助] 求助: 汇编还原为C代码

[复制链接]
蓝色芒果 发表于 2024-6-23 23:23
萌新一个, 各位大佬麻烦看看
mov     rdi, rax        ; s
mov     [rbp+var_740], r8
mov     [rbp+stream], rax
call    _strlen
mov     rdi, [rbp+stream]
mov     ecx, 20h ; ' '
mov     rdx, r12
mov     rsi, rax
call    sub_2CB0
movzx   eax, byte ptr [r12]
movzx   ecx, byte ptr [r12+1]
lea     r10, [rbp+var_420]
mov     r8, [rbp+var_740]
lea     r9, [rbp+var_4E0+4]
mov     edx, eax
and     eax, 0Fh
movzx   r11d, byte ptr [rbx+rax]
mov     eax, ecx
shr     dl, 4
and     ecx, 0Fh
shr     al, 4
and     edx, 0Fh
and     eax, 0Fh
movzx   edi, byte ptr [rbx+rdx]
movzx   edx, byte ptr [rbx+rcx]
movzx   esi, byte ptr [rbx+rax]
mov     [r8], dil
mov     byte ptr [rbp+var_4E0+2], sil
mov     byte ptr [rbp+var_4E0+3], dl
mov     byte ptr [rbp+var_4E0+1], r11b
lea     r11, [r12+2]

loc_1BF2:
movzx   ecx, byte ptr [r11]
movzx   edx, byte ptr [r11+1]
add     r9, 0Ah
add     r11, 5
mov     edi, ecx
and     ecx, 0Fh
movzx   esi, byte ptr [rbx+rcx]
shr     dil, 4
mov     ecx, edx
and     edx, 0Fh
and     edi, 0Fh
shr     cl, 4
movzx   eax, byte ptr [rbx+rdi]
mov     [r9-9], sil
and     ecx, 0Fh
movzx   esi, byte ptr [r11-3]
movzx   edi, byte ptr [rbx+rcx]
mov     [r9-0Ah], al
movzx   eax, byte ptr [rbx+rdx]
mov     edx, esi
and     esi, 0Fh
mov     [r9-8], dil
shr     dl, 4
mov     [r9-7], al
movzx   eax, byte ptr [r11-2]
and     edx, 0Fh
movzx   edi, byte ptr [rbx+rsi]
movzx   ecx, byte ptr [rbx+rdx]
mov     esi, eax
and     eax, 0Fh
mov     [r9-5], dil
shr     sil, 4
mov     [r9-6], cl
movzx   ecx, byte ptr [rbx+rax]
and     esi, 0Fh
movzx   eax, byte ptr [r11-1]
movzx   edx, byte ptr [rbx+rsi]
mov     [r9-3], cl
mov     edi, eax
mov     [r9-4], dl
and     eax, 0Fh
shr     dil, 4
movzx   edx, byte ptr [rbx+rax]
and     edi, 0Fh
movzx   esi, byte ptr [rbx+rdi]
mov     [r9-2], sil
mov     [r9-1], dl
cmp     r11, r10
jnz     loc_1BF2



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

爱飞的猫 发表于 2024-6-24 04:57
… 都用 IDA 了,在 IDA 按 F5 生成 C 伪码
lal978112 发表于 2024-6-24 08:28
void convert_string(char *str) {
    int len = strlen(str);
    for (int i = 0; i < len; i += 2) {
        unsigned char high = str[i];
        unsigned char low = str[i + 1];
        unsigned char result[4];
        result[0] = (high & 0x0F) | ((low & 0x0F) << 4);
        result[1] = ((high & 0xF0) >> 4) | ((low & 0xF0) >> 4);
        result[2] = ((high & 0xF0) >> 4) | ((low & 0xF0) >> 4);
        result[3] = ((high & 0xF0) >> 4) | ((low & 0xF0) >> 4);
        printf("%c%c%c%c", result[0], result[1], result[2], result[3]);
    }
}  AI转的,不知道对不对
 楼主| 蓝色芒果 发表于 2024-6-23 23:23
完全不知道如何下手, 看来基础知识还是太欠缺了
我的爱是你 发表于 2024-6-24 09:37
从控制台计算输入长度,随后调用 sub_2CB0看传参方式这是64位程序  字符串 字符串长度 还有个缓冲区,后面那一大坨在做位操作进行某种计算。
不用担心不知道如何下手,前面的都是汇编简单指令,涉及到加解密谁来都头疼。
会飞的丑小鸭 发表于 2024-6-24 11:36
void function_name() {
    char *stream = (char *)rax;
    char *var_740 = (char *)r8;
    char *var_420 = rbp + 0x420;
    char *var_4E0 = rbp + 0x4E0;
   
    size_t length = strlen(stream);
   
    for (int i = 0; i < length; i += 2) {
        char byte1 = stream[i];
        char byte2 = stream[i + 1];
        
        int nibble1 = byte1 & 0x0F;
        int nibble2 = byte1 >> 4;
        int nibble3 = byte2 & 0x0F;
        int nibble4 = byte2 >> 4;
        
        char value1 = (rbx + nibble1) & 0xFF;
        char value2 = (rbx + nibble2) & 0xFF;
        char value3 = (rbx + nibble3) & 0xFF;
        char value4 = (rbx + nibble4) & 0xFF;
        
        var_740[i/2] = value1;
        var_4E0[i*2] = value3;
        var_4E0[i*2 + 1] = value4;
        var_4E0[i*2 + 2] = value2;
    }
}
 楼主| 蓝色芒果 发表于 2024-6-24 22:01
会飞的丑小鸭 发表于 2024-6-24 11:36
void function_name() {
    char *stream = (char *)rax;
    char *var_740 = (char *)r8;

感谢大佬出手
arfersiorfik 发表于 2024-7-6 16:12
会飞的丑小鸭 发表于 2024-6-24 11:36
void function_name() {
    char *stream = (char *)rax;
    char *var_740 = (char *)r8;

这是用IDA生成的?
arfersiorfik 发表于 2024-7-9 09:14

应该不是,IDA生成的,IDA生成的可不是这样的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表