linux 下如何反编译一个二进制程序

发布于 2022-09-22 11:14:06 字数 67 浏览 11 评论 0

linux 下如何反编译一个二进制程序? 这个程序启动时需要指定一个license文件!

请教各位编程高手!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

前事休说 2022-09-29 11:14:07

原帖由 myfreeke 于 2008-9-21 13:14 发表
我使用-d参数后找到一段:

080d94d8 :
80d94d8:        55                           push   %ebp
80d94d9:        89 e5                        mov    %esp,%ebp
80d94db:        57                           push   %edi
80d94dc:        56     ...

偶将你的汇编代码反翻译为 C 代码,大概是以下这种逻辑,你自己去分析一下:

int check_registrantion(_T **arg)
{
        _T **p = arg;
        int x = 0;

        var1 = noisy_getcanonicalhostname();

        g_var_860ae10 = var1;

        if (var1 == 0)
                error($0x8477f69,0x8477ec0);
       
        if (p && *p && *(p+1)) {
                s_p = strstr(*p, g_var_8477f7c);

                if (s_p == *p) {
                        x = registration_valid_file(p);

                } else
                        fwrite($0x8477e60,1,0x30,ptr_0x8609f88 );

                if (x > 0) {
                        free(ptr_0x86ae10);
                        ptr_0x86ae10 = NULL;
                        return 0;
                } else {
                        fwrite($0x8477ea0,1,0x1f,ptr_0x8609f88 );
                        return -1;
                }
       
        }

        error(g_var_8477f69, g_var_8477f4c);
       
        return -1;
}

浪漫之都 2022-09-29 11:14:06

用objdump命令

猫瑾少女 2022-09-29 11:14:06

感谢,好像不怎么会使用:

#objdump -x filename

得到下面一条,但不会如何修改
080cf058 g     F .text  00000025              _ZN10SIPLibrary12CheckLicenseEPKcS1_

她说她爱他 2022-09-29 11:14:06

............反编译后,然后自己想办法改,crack哪有那么直截了当

任谁 2022-09-29 11:14:06

呵呵,版主教训得是!

主要是因为一个程序对于我非常有用,但有license限制.

隔纱相望 2022-09-29 11:14:06

破解估计没那么容易,还是找lic吧。

objdump -sd   文件

无名指的心愿 2022-09-29 11:14:06

我使用-d参数后找到一段:

080d94d8 <check_registration>:
80d94d8:        55                           push   %ebp
80d94d9:        89 e5                        mov    %esp,%ebp
80d94db:        57                           push   %edi
80d94dc:        56                           push   %esi
80d94dd:        53                           push   %ebx
80d94de:        83 ec 0c                     sub    $0xc,%esp
80d94e1:        8b 75 08                     mov    0x8(%ebp),%esi
80d94e4:        e8 9b f9 ff ff               call   80d8e84 <noisy_getcanonicalhostname>
80d94e9:        31 ff                        xor    %edi,%edi
80d94eb:        85 c0                        test   %eax,%eax
80d94ed:        a3 10 ae 60 08               mov    %eax,0x860ae10
80d94f2:        0f 84 a0 00 00 00            je     80d9598 <check_registration+0xc0>
80d94f8:        85 f6                        test   %esi,%esi
80d94fa:        74 0d                        je     80d9509 <check_registration+0x31>
80d94fc:        8b 1e                        mov    (%esi),%ebx
80d94fe:        85 db                        test   %ebx,%ebx
80d9500:        74 07                        je     80d9509 <check_registration+0x31>
80d9502:        8b 46 08                     mov    0x8(%esi),%eax
80d9505:        85 c0                        test   %eax,%eax
80d9507:        75 1f                        jne    80d9528 <check_registration+0x50>
80d9509:        83 ec 08                     sub    $0x8,%esp
80d950c:        68 4c 7f 47 08               push   $0x8477f4c
80d9511:        68 69 7f 47 08               push   $0x8477f69
80d9516:        e8 d5 af 00 00               call   80e44f0 <error>
80d951b:        b8 ff ff ff ff               mov    $0xffffffff,%eax
80d9520:        8d 65 f4                     lea    0xfffffff4(%ebp),%esp
80d9523:        5b                           pop    %ebx
80d9524:        5e                           pop    %esi
80d9525:        5f                           pop    %edi
80d9526:        c9                           leave  
80d9527:        c3                           ret   
80d9528:        83 ec 08                     sub    $0x8,%esp
80d952b:        68 7c 7f 47 08               push   $0x8477f7c
80d9530:        53                           push   %ebx
80d9531:        e8 6e a5 f7 ff               call   8053aa4 <strstr@plt>
80d9536:        83 c4 10                     add    $0x10,%esp
80d9539:        39 d8                        cmp    %ebx,%eax
80d953b:        74 4d                        je     80d958a <check_registration+0xb2>
80d953d:        ff 35 88 9f 60 08            pushl  0x8609f88
80d9543:        6a 30                        push   $0x30
80d9545:        6a 01                        push   $0x1
80d9547:        68 60 7e 47 08               push   $0x8477e60
80d954c:        e8 83 b0 f7 ff               call   80545d4 <fwrite@plt>
80d9551:        83 c4 10                     add    $0x10,%esp
80d9554:        85 ff                        test   %edi,%edi
80d9556:        7e 1c                        jle    80d9574 <check_registration+0x9c>
80d9558:        83 ec 0c                     sub    $0xc,%esp
80d955b:        ff 35 10 ae 60 08            pushl  0x860ae10
80d9561:        e8 6e ad f7 ff               call   80542d4 <free@plt>
80d9566:        c7 05 10 ae 60 08 00         movl   $0x0,0x860ae10
80d956d:        00 00 00
80d9570:        31 c0                        xor    %eax,%eax
80d9572:        eb ac                        jmp    80d9520 <check_registration+0x48>
80d9574:        ff 35 88 9f 60 08            pushl  0x8609f88
80d957a:        6a 1f                        push   $0x1f
80d957c:        6a 01                        push   $0x1
80d957e:        68 a0 7e 47 08               push   $0x8477ea0
80d9583:        e8 4c b0 f7 ff               call   80545d4 <fwrite@plt>
80d9588:        eb 91                        jmp    80d951b <check_registration+0x43>
80d958a:        83 ec 0c                     sub    $0xc,%esp
80d958d:        56                           push   %esi
80d958e:        e8 5d fe ff ff               call   80d93f0 <registration_valid_file>
80d9593:        89 c7                        mov    %eax,%edi
80d9595:        eb ba                        jmp    80d9551 <check_registration+0x79>
80d9597:        90                           nop   
80d9598:        83 ec 08                     sub    $0x8,%esp
80d959b:        68 c0 7e 47 08               push   $0x8477ec0
80d95a0:        68 69 7f 47 08               push   $0x8477f69
80d95a5:        e8 46 af 00 00               call   80e44f0 <error>
80d95aa:        83 c4 10                     add    $0x10,%esp
80d95ad:        e9 46 ff ff ff               jmp    80d94f8 <check_registration+0x20>
80d95b2:        90                           nop   
80d95b3:        90                           nop

不完全明白上面的意思,修改不知如何下手!

☆獨立☆ 2022-09-29 11:14:06

看汇编还是很头疼的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文