飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5191|回复: 19

[原创] smc --->

[复制链接]

该用户从未签到

发表于 2009-4-9 15:26:35 | 显示全部楼层 |阅读模式
难度很低,今天新版被流出,试了一下,脱壳好,SMC 好,不要我见到 NAG 就好

本帖子中包含更多资源

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

x
PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2009-4-9 16:22:11 | 显示全部楼层
    沙发。。。。。。。。。。。。。。。。。。学习
    支持,我顶

    其实我不是灌水,占位等待更新。。。。。。。。。。。。
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-4-9 16:31:18 | 显示全部楼层
    UE 编辑 9 字节  :loveliness:
    汗,不用 9 字节

    [ 本帖最后由 lgjxj 于 2009-4-9 16:35 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2015-10-29 08:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-4-9 16:35:26 | 显示全部楼层
    板凳。。。
    01151F10    55              push ebp
    01151F11    68 E8261501     push notepad_.011526E8
    01151F16    64:FF32         push dword ptr fs:[edx]
    01151F19    64:8922         mov dword ptr fs:[edx],esp
    01151F1C    E8 E7F2FFFF     call notepad_.01151208      
    {
    01151208    53              push ebx               //retn  
    01151209    56              push esi
    0115120A    57              push edi
    0115120B    55              push ebp


    }
    01151F21    68 3D1F1501     push notepad_.01151F3D
    01151F26    64:FF35 0000000>push dword ptr fs:[0]
    01151F2D    64:8925 0000000>mov dword ptr fs:[0],esp
    01151F34    31C0            xor eax,eax

    [ 本帖最后由 creantan 于 2009-4-9 16:37 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-4-9 16:49:39 | 显示全部楼层
    对,解开前头的代码就可以了,PATCH 吧
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-4-9 16:59:09 | 显示全部楼层
    9 字节就比较保险而尔
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-4-9 22:12:06 | 显示全部楼层
    等,有好几个方案,creantan 贴出的地址是对的,
    但要如何 PATCH 就看大家了,粗略估计有 4 个地址可以
    我只使用了2个地址

    [ 本帖最后由 lgjxj 于 2009-4-9 22:20 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-4-9 23:20:59 | 显示全部楼层

    解谜吧,怎样改还得自己思考一下

    我空手来的,你自己看看 /:

    CB 08 05 1F 18 0C CE CE
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-4-9 23:25:20 | 显示全部楼层
    都是牛人,我是来学习的
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-4-10 00:07:18 | 显示全部楼层

    好,玩过就算了,真正解谜

    如果版主见到,帮我编辑一下代码部分,乱码,我不会搞,上传一个去 NAG 的例子

    本想去断尾 SMC 的,(这里如何追那个启动NAG的就不说了,很简单)
    但我忘了这个壳是多重解出断尾,但不重要。追进去一看,原来分了三段解出
    _________________________________________________________________
    0108E811    B8 A4E70800     MOV EAX,8E7A4
    0108E816    03C5            ADD EAX,EBP
    0108E818    81C0 93000000   ADD EAX,93
    0108E81E    B9 48060000     MOV ECX,648
    0108E823    BA F646FB51     MOV EDX,51FB46F6
    0108E828    3010            XOR BYTE PTR DS:[EAX],DL          DL 作为解码 KEY,这里是 0xF6
    0108E82A    40              INC EAX
    0108E82B    49              DEC ECX
    0108E82C  ^ 0F85 F6FFFFFF   JNZ 0108E828                        
    0108E832    E9 04000000     JMP 0108E83B                           
    _________________________________________________________________

    0108EB1C    0800            OR BYTE PTR DS:[EAX],AL
    0108EB1E    03C5            ADD EAX,EBP
    0108EB20    81C0 9B030000   ADD EAX,39B
    0108EB26    B9 40030000     MOV ECX,340
    0108EB2B    BA B7F506C8     MOV EDX,C806F5B7
    0108EB30    3010            XOR BYTE PTR DS:[EAX],DL           key is 0xB7
    0108EB32    40              INC EAX
    0108EB33    49              DEC ECX
    0108EB34  ^ 0F85 F6FFFFFF   JNZ 0108EB30                           
    0108EB3A    E9 04000000     JMP 0108EB43                           
    __________________________________________________________________

    0108EC1F    B8 A4E70800     MOV EAX,8E7A4
    0108EC24    03C5            ADD EAX,EBP
    0108EC26    81C0 A1040000   ADD EAX,4A1
    0108EC2C    B9 3A020000     MOV ECX,23A                              ; 解码长度,这里垃圾啊,作者要检讨了
    0108EC31    BA 4C88F1DA     MOV EDX,DAF1884C                         ; EDX 作为解码 key is 0x4C
    0108EC36    3010            XOR BYTE PTR DS:[EAX],DL
    0108EC38    40              INC EAX
    0108EC39    49              DEC ECX
    0108EC3A  ^ 0F85 F6FFFFFF   JNZ 0108EC36                          
    0108EC40    E9 04000000     JMP 0108EC49                          
    __________________________________________________________________

    OK 走完这里就解除了 断尾的 RETN

    断尾原代码

    0108ED42    CE              INTO                               这个 0xCE 就是没经 3 重解码的原样
    0108ED43    59              POP ECX
    0108ED44    65:68 2D486364  PUSH 6463482D                           
    0108ED4A    6A 60           PUSH 60
    0108ED4C    6C              INS BYTE PTR ES:[EDI],DX              
    0108ED4D    2D 5D7F6279     SUB EAX,79627F5D
    0108ED52    68 6E79627F     PUSH 7F62796E
    0108ED57    2D 7B687F7E     SUB EAX,7E7F687B

    ——————————————————————————————————

    现在我们知道了断尾处经过 3 重解码

    而我们要实现一句       MOV BYTE PTR[1151208],0C3    // smc   
    对应的 16 进码         C6 05 08 12 15 01 C3        当然我们还要它返回到实际地方,后面还要一个  c3
    那就是                 C6 05 08 12 15 01 C3 C3      了

    好由于我测试过 108EC24 处的代码没用,于是我就借它的宝地一用

    但我们要给他们实现3重解码后,变成我们要实现的代码,那还需要把  C6 05 08 12 15 01 C3 C3 逆推出需要的代码

    就写一个 C 程序

    #include <iostream>

    int main()   
    {
            int smc[]={0xc6,0x5,0x8,0x12,0x15,0x1,0xc3,0xc3};
            int i,j,s,temp;
            for(i=0;i<8;i++)
            {
                            temp=smc;
                           
            temp^=0x4C;
                                    temp^=0xB7;
                                    temp^=0xF6;
                                    if(temp<0x10)
                                    cout<<"0";        // 由于 16 进制粘贴,需要一个 0 ,譬如 05 这样才不会出现错误
                                    cout<<hex<<temp<<" ";
            }
            cout<<endl;
            return 0;
    }

    这样就可以得到对应的  CB 08 05 1F 18 0C CE CE 了,下一步如何做,
    当然是 直接在断尾 0108ED42 开始二进制粘贴啦,保存一下,你在双击,就不见了 NAG 直接启动程序了   /:018

    [ 本帖最后由 Luckly 于 2009-4-10 13:52 编辑 ]

    本帖子中包含更多资源

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

    x

    评分

    参与人数 1威望 +40 飘云币 +200 收起 理由
    Luckly + 40 + 200 老实交待 还有多少这样精彩的?

    查看全部评分

    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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