飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5662|回复: 14

[原创] 某取名软件爆破 新手入

[复制链接]
  • TA的每日心情
    开心
    昨天 09:26
  • 签到天数: 961 天

    [LV.10]以坛为家III

    发表于 2015-7-21 19:46:24 | 显示全部楼层 |阅读模式
    本帖最后由 gujin162 于 2015-7-21 19:52 编辑

    这类软件误导你的地方很多,有些时候不知道该怎么分析,其实,只要仔细看就可以看出点眉目了。

    一般惯例,先查壳,Microsoft Visual C++ 6.0

    1

    1

    1


    我们把软件拖入od,其实呢,这类取名字软件都是易语言写的,只不过是静态编译,查壳显示是Microsoft Visual C++ 6.0而已,尤其这个软件最明显,呵呵,看图。

    2

    2

    2


    3

    3

    3


    3.1

    3.1

    3.1


    这个软件打开的时候,会提示注册,提示框显示(试用版),我们刚才在翻找字符串的时候,已经看到很多个“(已注册)”的字符串了,但是没看到“(试用版)”字符串,我们可以从这里入手。

    发现,未注册的提示都是在0054C3E9,而已注册都是在0055029A

    4

    4

    4


    4.1

    4.1

    4.1


    4.2

    4.2

    4.2


    我们慢慢往下找,在(已注册)上面,我们都进去看看,在这个(已注册)上面,我们可以看到,如图:由于不知道什么是重要的,先全部下断。

    5

    5

    5


    5.1

    5.1

    5.1


    再看另一个(已注册),因为再往上没看就是刚才的那些了,没有什么关键或可疑的字符串提示了,所以我们这里就下2个断。

    5.2

    5.2

    5.2


    F9运行,我们看,程序会断在哪里.。如图,发现je跳转已经实现了。

    6

    6

    6


    我们看到,test测试指令,是eax,同时eax的值是0,如图

    7

    7

    7


    说明,软件在刚开始还没有注册的时候,会检测时候是注册版,如果不是软件窗体应该提示为(试用版),如果是已注册的,那窗口应该是(已注册)。

    8

    8

    8


    9

    9

    9


    我们F8往下,先不管那些call,我们先看那些跳转会实现。

    10

    10

    10


    11

    11

    11


    好了,在我们观察跳转是否实现的时候,我们看到,如果eax是值为0,那么00411517   . /0F84 DF000000 je 宝宝取名.004115FC                         ;  【这里跳过注册了】

    这个跳转就会实现,而这时,我们发现00411513   > \33C0          xor eax,eax,来自2个je跳转,看下面加粗红色跳转

    004114E7   . /74 09         je X宝宝取名.004114F2
    004114E9   . |53            push ebx
    004114EA   . |E8 DD830500   call 宝宝取名.004698CC
    004114EF   . |83C4 04       add esp,0x4
    004114F2   > \E8 2519FFFF   call 宝宝取名.00402E1C
    004114F7   .  85C0          test eax,eax
    004114F9   .  0F84 14000000 je 宝宝取名.00411513                         ;  跳到00411513
    004114FF   .  E8 D846FFFF   call 宝宝取名.00405BDC
    00411504   .  85C0          test eax,eax
    00411506   .  0F84 07000000 je 宝宝取名.00411513                         ;  这个和上面004114F9一样的跳转,跳到00411513
    0041150C   .  B8 01000000   mov eax,0x1
    00411511   .  EB 02         jmp X宝宝取名.00411515
    00411513   >  33C0          xor eax,eax
    00411515   >  85C0          test eax,eax
    00411517   .  0F84 DF000000 je 宝宝取名.004115FC                         ;  【这里跳过注册了】

    在这个跳转之前,我们必须把eax值置1,这个跳转才不会实现,我们重新载入,在这2个跳转上面最近的call,我们F7。来到这里

    12

    12

    12


    我们F8继续,注意观察eax的值,需要注意的是,我们现在要做的是爆破,而不是追码,所以在看到一些奇怪的码的时候,我们注意力先不要分散,继续往下,在retn前,我们看到了

    13

    13

    13


    00403092   > \837D C4 01    cmp dword ptr ss:[ebp-0x3C],0x1
    00403096   .  0F85 0F000000 jnz 宝宝取名.004030AB
    0040309C   .  B8 01000000   mov eax,0x1
    004030A1   .  E9 0F000000   jmp 宝宝取名.004030B5
    004030A6   .  E9 0A000000   jmp 宝宝取名.004030B5
    004030AB   >  B8 00000000   mov eax,0x0
    004030B0   .  E9 00000000   jmp 宝宝取名.004030B5
    004030B5   >  50            push eax
    004030B6   .  8B5D FC       mov ebx,dword ptr ss:[ebp-0x4]
    004030B9   .  85DB          test ebx,ebx
    004030BB   .  74 09         je X宝宝取名.004030C6
    004030BD   .  53            push ebx
    004030BE   .  E8 09680600   call 宝宝取名.004698CC
    004030C3   .  83C4 04       add esp,0x4
    004030C6   >  8B5D F8       mov ebx,dword ptr ss:[ebp-0x8]
    004030C9   .  85DB          test ebx,ebx
    004030CB   .  74 09         je X宝宝取名.004030D6
    004030CD   .  53            push ebx
    004030CE   .  E8 F9670600   call 宝宝取名.004698CC
    004030D3   .  83C4 04       add esp,0x4
    004030D6   >  58            pop eax
    004030D7   .  8BE5          mov esp,ebp
    004030D9   .  5D            pop ebp
    004030DA   .  C3            retn

    其实,我们应该可以猜到,00403096   . /0F85 0F000000 jnz 宝宝取名.004030AB

    这个跳转必然会实现。因为我们输入的肯定是不正确的注册码。而这个跳转跳到004030AB   > \B8 00000000   mov eax,0x0

    这个时候给eax赋值为0了。好了,到现在,我们爆破的思路基本有了。要么将004030AB   > \B8 00000000   mov eax,0x0 改为004030AB   > \B8 00000000   mov eax,0x1,要么在前面jnz跳转前把00403092   > \837D C4 01    cmp dword ptr ss:[ebp-0x3C],0x1改为00403092   > \837D C4 01    cmp dword ptr ss:[ebp-0x3C],0x0

    我们修改好之后,运行,还是提示试用版。说明,我们只修改这个call过程还是不行,刚才第二个加粗的跳转附近的call也需要我们看看。我们回到段首,找到调用call,F8向下,来到
    004114F9     /0F84 14000000 je 宝宝取名.00411513                         ;  跳到00411513
    的时候,我们把Z标志位改为0,以便让我们能进入下面的call。

    14

    14

    14


    好了,我们F8来到
    004114FF      E8 D846FFFF   call 宝宝取名.00405BDC                       ;  这里也进入
    F7进入,在F8继续往下的过程中,我们发现和刚才的过程是一样的。修改方法和刚才一样,我这里用的是将004030AB   > \B8 00000000   mov eax,0x0 改为004030AB   > \B8 00000000   mov eax,0x1



    好了,我们保存修改。运行试一试。

    15

    15

    15


    好了,教程到此结束。


    评分

    参与人数 1飘云币 +4 收起 理由
    飞天 + 4 感谢发布原创作品!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-1-15 11:56
  • 签到天数: 437 天

    [LV.9]以坛为家II

    发表于 2015-7-21 20:22:36 | 显示全部楼层
    有点我想说一下  第二张 第三张 图片中楼主所指出的关键字不是易语言的关键字   而是易语言的一个第三方模块的关键字      

    一些没有调用这个模块的易语言程序是没有这些关键字的   

    点评

    嗯,有些是没有这个模块的。我这个是为了给新手提醒一下  详情 回复 发表于 2015-7-21 21:31
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 08:56
  • 签到天数: 772 天

    [LV.10]以坛为家III

    发表于 2015-7-21 20:43:50 | 显示全部楼层
    看不太懂啊~~~~~~~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 09:26
  • 签到天数: 961 天

    [LV.10]以坛为家III

     楼主| 发表于 2015-7-21 21:31:24 | 显示全部楼层
    回忆无法挽留 发表于 2015-7-21 20:22
    有点我想说一下  第二张 第三张 图片中楼主所指出的关键字不是易语言的关键字   而是易语言的一个第三方模 ...

    嗯,有些是没有这个模块的。我这个是为了给新手提醒一下{:soso_e100:}
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-8-20 01:17
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2015-7-21 21:53:21 | 显示全部楼层
    先做个标记,有空时再学习
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-2-17 10:46
  • 签到天数: 927 天

    [LV.10]以坛为家III

    发表于 2015-7-22 08:34:11 | 显示全部楼层
    牛人,真的很牛!{:soso_e189:}
    PYG19周年生日快乐!
  • TA的每日心情

    2023-8-5 16:33
  • 签到天数: 464 天

    [LV.9]以坛为家II

    发表于 2015-7-22 09:47:05 | 显示全部楼层
    能搞 注册机吗???

    和谐版本 也是可以的啊?
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

    发表于 2015-7-22 11:27:52 | 显示全部楼层
    这个太好了   以前没搞定过  学习下
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-3-25 14:04
  • 签到天数: 32 天

    [LV.5]常住居民I

    发表于 2015-7-22 11:58:05 | 显示全部楼层
    这个有些复杂了。
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    昨天 18:24
  • 签到天数: 1409 天

    [LV.10]以坛为家III

    发表于 2015-7-22 18:52:24 | 显示全部楼层
    支持楼主分享过程。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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