飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4945|回复: 13

[原创] 在来个VBcrackme!!

[复制链接]

该用户从未签到

发表于 2008-8-25 12:09:27 | 显示全部楼层 |阅读模式
/:013 /:013 经常被破.已经习惯了!/:017 /:017 /:017
估计要不到几分钟就会被破/:001 /:001
失败是成功之母..
老规矩哈!:loveliness: :loveliness: :loveliness: :loveliness:
最好有破文哈!~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

x

评分

参与人数 1威望 +24 飘云币 +16 收起 理由
magic659117852 + 24 + 16 支持原创

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2015-8-12 00:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-8-25 13:26:01 | 显示全部楼层
    追码爆破不分家!

    [ 本帖最后由 小生我怕怕 于 2008-8-25 15:47 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-3-29 07:24
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2008-8-25 14:49:16 | 显示全部楼层
    还是路过,/:L 这个东东比以前的多加了点调料,有点意思,精华在前面,/:017 ,不知这样可算成功了


    [ 本帖最后由 x80x88 于 2008-8-25 15:02 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-8-25 15:10:14 | 显示全部楼层
    /:012 哎 又被你们破了.......果然写的快的东西 就被破的快
    我花了20多分钟弄的.就知道结果很快.我要好好研究下.争取写个BT点的:loveliness: :loveliness: :loveliness:
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2015-8-12 00:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-8-25 19:06:42 | 显示全部楼层
    首先脱壳
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    0043F001 >  9C              pushfd           //OD载入
    0043F002    60              pushad
    0043F003    70 61           jo short crackme.0043F066
    0043F005    636B 24         arpl word ptr ds:[ebx+24],bp
    0043F008    40              inc eax
    0043F009    33C0            xor eax,eax
    0043F00B    61              popad
    0043F00C    9D              popfd
    0043F00D    60              pushad
    0043F00E    E8 00000000     call crackme.0043F013       //在此执行ESP定律
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    0043F3B5  ^\EB FB           jmp short crackme.0043F3B2  //这个跳转让他向上跳
    0043F3B7  ^ EB EB           jmp short crackme.0043F3A4
    0043F3B9    0068 68         add byte ptr ds:[eax+68],ch
    0043F3BC    41              inc ecx
    0043F3BD    40              inc eax
    0043F3BE    00C3            add bl,al
    0043F3C0    8B85 26040000   mov eax,dword ptr ss:[ebp+426]
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    0043F3B2   /EB 04           jmp short crackme.0043F3B8  //然后程序停在这里
    0043F3B4   |61              popad
    0043F3B5  ^|EB FB           jmp short crackme.0043F3B2
    0043F3B7  ^|EB EB           jmp short crackme.0043F3A4
    0043F3B9    0068 68         add byte ptr ds:[eax+68],ch
    0043F3BC    41              inc ecx
    0043F3BD    40              inc eax
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    0043F3B8   /EB 00           jmp short crackme.0043F3BA
    0043F3BA   \68 68414000     push crackme.00404168
    0043F3BF    C3              retn         //这里直接跳向我们的OEP啦
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    00404168    68 C8584000     push crackme.004058C8   //到达OEP,标准的OEP
    0040416D    E8 F0FFFFFF     call crackme.00404162   //此时dump程序吧  
    00404172    0000            add byte ptr ds:[eax],al
    00404174    40              inc eax
    00404175    0000            add byte ptr ds:[eax],al
    00404177    0030            add byte ptr ds:[eax],dh
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    现在程序报错提示:
    兄弟,你又非法修改我的程序了
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    用C32Asm加载程序----查看----字符串
    在选择 编辑——使用Unicode分析字符串
    XOR     EAX, 43000420                  
    ::00401005::  200400                   AND     BYTE PTR [EAX+EAX], AL         
    ::00401008::  53                       PUSH    EBX                             
    ::00401009::  200400                   AND     BYTE PTR [EAX+EAX], AL         
    ::0040100C::  60                       PUSHAD                                 
    ::0040100D::  200400                   AND     BYTE PTR [EAX+EAX], AL         
    ::00401010::  6920 04007620            IMUL    ESP, DWORD PTR [EAX], 20760004  
    ::00401016::  04 00                    ADD     AL, 0                           
    ::00401018::  8320 04                  AND     DWORD PTR [EAX], 4              
    ::0040101B::  0092 200400A1            ADD     BYTE PTR [EDX+A1000420], DL     
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    此时我们要搜索他的错误提示的对话框(兄弟,你又非法修改我的程序了)
    _TrackMouseEvent
            ::00412F1C->PUSH    408E68
    cmd.exe /c msg %username% /time:7 兄弟.你又非法修改我的程序了
            ::0040C262->MOV     DWORD PTR [EBP-68], 407B9C
    cmd.exe /c msg %username% 对不起输入错误
            ::0040C421->MOV     DWORD PTR [EBP-54], 407C14
    computername
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    看下错误提示为0040c262提示出来的,现在我们OD加载我们脱壳后的程序
    ctrl+G搜索0040c262
    0040C236   . /75 5E         jnz short unpack.0040C296                  //这里改jmp跳,就可以跳过我们的错误提示
    0040C238   . |8B75 08       mov esi,dword ptr ss:[ebp+8]
    0040C23B   . |8D45 8C       lea eax,dword ptr ss:[ebp-74]
    0040C23E   . |50            push eax
    0040C23F   . |56            push esi
    0040C240   . |8B16          mov edx,dword ptr ds:[esi]
    0040C242   . |FF92 B8010000 call dword ptr ds:[edx+1B8]
    0040C248   . |85C0          test eax,eax
    0040C24A   . |DBE2          fclex
    0040C24C   . |7D 0E         jge short unpack.0040C25C
    0040C24E   . |68 B8010000   push 1B8
    0040C253   . |68 107A4000   push unpack.00407A10
    0040C258   . |56            push esi
    0040C259   . |50            push eax
    0040C25A   . |FFD3          call ebx
    0040C25C   > |8D55 90       lea edx,dword ptr ss:[ebp-70]
    0040C25F   . |8D4D A0       lea ecx,dword ptr ss:[ebp-60]
    0040C262   . |C745 98 9C7B4>mov dword ptr ss:[ebp-68],unpack.00407B9>;  //这里就是我们的错误提示
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    此时程序可运行啦,那我们就好好想想吧,在我们刚查找unicode字符串时。那里有出现一个已破解,不防就此下手
    -已破解
            ::0040C67C->PUSH    407C5C
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    在次OD载入我们修复后出错的程序,ctrl+g搜索0040c67c
    0040C637   . /0F84 B0000000 je 1.0040C6ED       //这里改JMP。即可达到爆破程序的效果
    0040C63D   . |8B16          mov edx,dword ptr ds:[esi]
    0040C63F   . |56            push esi
    0040C640   . |FF92 00030000 call dword ptr ds:[edx+300]
    0040C646   . |50            push eax
    0040C647   . |8D45 B4       lea eax,dword ptr ss:[ebp-4C]
    0040C64A   . |50            push eax
    0040C64B   . |FF15 88104000 call dword ptr ds:[<&msvbvm60.__vbaObjSe>;  msvbvm60.__vbaObjSet
    0040C651   . |8BF8          mov edi,eax
    0040C653   . |8D55 B8       lea edx,dword ptr ss:[ebp-48]
    0040C656   . |52            push edx
    0040C657   . |57            push edi
    0040C658   . |8B0F          mov ecx,dword ptr ds:[edi]
    0040C65A   . |FF91 A0000000 call dword ptr ds:[ecx+A0]
    0040C660   . |3BC3          cmp eax,ebx
    0040C662   . |DBE2          fclex
    0040C664   . |7D 12         jge short 1.0040C678
    0040C666   . |68 A0000000   push 0A0
    0040C66B   . |68 007C4000   push 1.00407C00
    0040C670   . |57            push edi
    0040C671   . |50            push eax
    0040C672   . |FF15 60104000 call dword ptr ds:[<&msvbvm60.__vbaHresu>;  msvbvm60.__vbaHresultCheckObj
    0040C678   > |8B45 B8       mov eax,dword ptr ss:[ebp-48]
    0040C67B   . |50            push eax
    0040C67C   . |68 5C7C4000   push 1.00407C5C     //这里为我们的错误提示错在
    0040C681   . |FF15 50104000 call dword ptr ds:[<&msvbvm60.__vbaStrCa>;  msvbvm60.__vbaStrCat
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    现在我们来追码吧,ctrl+g搜索004067c,然后寻找段首
    0040C4B0   > \55            push ebp           //F2下断后,在加载程序
    0040C4B1   .  8BEC          mov ebp,esp        //从新加载后,就运行程序
    0040C4B3   .  83EC 0C       sub esp,0C
    0040C4B6   .  68 563E4000   push <jmp.&msvbvm60.__vbaExceptHandler>  ;  SE 句柄安装
    0040C4BB   .  64:A1 0000000>mov eax,dword ptr fs:[0]
    0040C4C1   .  50            push eax
    0040C4C2   .  64:8925 00000>mov dword ptr fs:[0],esp
    0040C4C9   .  81EC 88000000 sub esp,88
    0040C4CF   .  53            push ebx
    0040C4D0   .  56            push esi
    0040C4D1   .  57            push edi
    0040C4D2   .  8965 F4       mov dword ptr ss:[ebp-C],esp
    0040C4D5   .  C745 F8 38124>mov dword ptr ss:[ebp-8],1.00401238
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    我们输入用户名:fanfan
    由于注册码是由输入时确定是否正确,所以我们便要直接复制我们的用户名fanfan,然后粘贴在注册码处
    在我们单步跟到显示第5次注册名时,便去看看我们的堆栈窗口,出现了我们的注册码fanfan23374
    因为被禁了复制程序,所以我也只能大体告诉大家几时出现注册码啦
    0012E9D4   0016918C  UNICODE "fanfan23374"
    0012E9D8   77D3B3B4  返回到 USER32.77D3B3B4
    0012E9DC   00000000
    0012E9E0   00000000
    0012E9E4   0016B914  UNICODE "fanfan"
    0012E9E8   77D3B3B4  返回到 USER32.77D3B3B4
    0012E9EC   00000000
    0012E9F0   00E83E44
    0012E9F4   0016B914  UNICODE "fanfan"
    送上菜鸟破文一篇!

    评分

    参与人数 1威望 +40 收起 理由
    magic659117852 + 40 学习一下

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-8-25 20:21:04 | 显示全部楼层
    小生........ /:010 /:010 /:010 /:001 /:001
    下次我不会出现这些问题...下次我会隐藏好的!!:loveliness:
    以为利用CMD调用MSG来..这是一个错误想法/:010 /:010 /:013
    建议给小生加分啊!!

    [ 本帖最后由 夜冷风 于 2008-8-25 20:28 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2015-8-12 00:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-8-25 20:27:56 | 显示全部楼层
    原帖由 夜冷风 于 2008-8-25 20:21 发表
    小生........ /:010 /:010 /:010 /:001 /:001
    下次我不会出现这些问题...下次我会隐藏好的!!:loveliness:
    以为利用CMD调用MSG来..这是一个错误想法/:010 /:010 /:013

    所谓上有政策,下有对策.希望楼主的作品越来越强大!
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-8-25 20:29:15 | 显示全部楼层
    :loveliness: :loveliness: :loveliness: 好的
    我会努力的 大家一起学习..HOHO
    斑竹给小生加点分啊!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-3-29 07:24
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2008-8-25 21:11:21 | 显示全部楼层
    用Wdasm反编译看不到有用信息,只好翻页看代码!/:011 没想到C32Asm效果好,向小生学习了!/:014
    补充一点不知可对!
    自校验的部分:
    ........
    0040C1BD  mov     edx, eax
    0040C1BF  lea     ecx, dword ptr [ebp-48]
    0040C1C2  call    edi
    0040C1C4  push    eax                                         ; /FileName
    0040C1C5  call    dword ptr [<&msvbvm60.rtcFileLen>]          ; \rtcFileLen
    0040C1CB  mov     esi, dword ptr [<&msvbvm60.__vbaVarMove>]   ;  取文件的大小,结果在EAX中
    0040C1D1  mov     edi, 3
    0040C1D6  lea     edx, dword ptr [ebp-70]
    0040C1D9  lea     ecx, dword ptr [ebp-24]
    0040C1DC  mov     dword ptr [ebp-68], eax
    0040C1DF  mov     dword ptr [ebp-70], edi
    0040C1E2  call    esi                                         ;  <&msvbvm60.__vbaVarMove>
    0040C1E4  lea     edx, dword ptr [ebp-48]
    0040C1E7  lea     eax, dword ptr [ebp-44]
    0040C1EA  push    edx
    0040C1EB  lea     ecx, dword ptr [ebp-3C]
    0040C1EE  push    eax
    0040C1EF  lea     edx, dword ptr [ebp-40]
    0040C1F2  push    ecx
    0040C1F3  lea     eax, dword ptr [ebp-38]
    0040C1F6  push    edx
    0040C1F7  push    eax
    0040C1F8  push    5
    0040C1FA  call    dword ptr [<&msvbvm60.__vbaFreeStrList>]    ;  msvbvm60.__vbaFreeStrList
    0040C200  lea     ecx, dword ptr [ebp-50]
    0040C203  lea     edx, dword ptr [ebp-4C]
    0040C206  push    ecx
    0040C207  push    edx
    0040C208  push    2
    0040C20A  call    dword ptr [<&msvbvm60.__vbaFreeObjList>]    ;  msvbvm60.__vbaFreeObjList
    0040C210  add     esp, 24
    0040C213  lea     edx, dword ptr [ebp-70]
    0040C216  lea     ecx, dword ptr [ebp-34]
    0040C219  mov     dword ptr [ebp-68], 11A00                   ;  原来加壳文件的大小,72192(0x11A00)字节
    0040C220  mov     dword ptr [ebp-70], edi
    0040C223  call    esi
    0040C225  lea     eax, dword ptr [ebp-24]
    0040C228  lea     ecx, dword ptr [ebp-34]
    0040C22B  push    eax                                         ; /var18
    0040C22C  push    ecx                                         ; |var28
    0040C22D  call    dword ptr [<&msvbvm60.__vbaVarTstEq>]       ; \__vbaVarTstEq
    0040C233  test    ax, ax
    0040C236  jnz     short 0040C296                              ;  自校验关键跳转
    ..........

    至于追码,因为反编译看不到可用信息,我的方法有些笨,见下
    ........
    00406477      00      db      00
    00406478   .  816C24 >sub     dword ptr [esp+4], 3F
    00406480   .  E9 DB5B>jmp     0040C060
    00406485   .  816C24 >sub     dword ptr [esp+4], 33
    0040648D      E9 7E5E>jmp     0040C310                              ;  将这句改成jmp 0040C4B0
    00406492   .  816C24 >sub     dword ptr [esp+4], 4B
    0040649A   .  E9 1160>jmp     0040C4B0
    0040649F      00      db      00
    .......
    修改0040648D这句为jmp 0040C4B0,很快就可以追到真码了!

    [ 本帖最后由 x80x88 于 2008-8-25 21:24 编辑 ]

    评分

    参与人数 1威望 +24 飘云币 +24 收起 理由
    magic659117852 + 24 + 24 感谢大虾的分析!

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-8-26 00:30:06 | 显示全部楼层
    /:018 楼上很彪悍~~~/:good
    对VB ~~ 用C32找字符串往往有不错的效果~~
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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