首页
社区
课程
招聘
[下载]野猪力量 -- 注入
发表于: 2006-10-23 18:10 35589

[下载]野猪力量 -- 注入

2006-10-23 18:10
35589
收藏
免费 7
支持
分享
最新回复 (63)
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
26
猛!!
2006-10-23 22:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
学习啦 谢谢
2006-10-23 22:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
学习学习!!
2006-10-23 23:29
0
雪    币: 221
活跃值: (2256)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
29
注入后,如何用?
2006-10-24 00:29
0
雪    币: 213
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
30
呵呵,技术问题都不是问题,关键是想法,想法不错
2006-10-24 02:21
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
31
shoooo能否说说插件怎么用,好像无法识别插件目录。
2006-10-24 09:03
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
32
不知道插件怎么用.
我从来不这用这个
2006-10-24 09:05
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
33
//source of YeZhu.exe

#include <windows.h>
#include <tlhelp32.h>

#pragma comment (linker, "/subsystem:windows")
#pragma comment (linker, "/entry:gogo")

unsigned char data1[26] = {
        0xE8, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x83, 0xED, 0x05, 0x8D, 0x45, 0x30, 0x50, 0xFF, 0x95, 0x30,
        0x01, 0x00, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0xFF, 0xE0
};

unsigned char data2[36] = {
        0xE8, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x83, 0xED, 0x05, 0x8D, 0x45, 0x30, 0x50, 0xFF, 0x95, 0x34,
        0x01, 0x00, 0x00, 0x50, 0x50, 0xFF, 0x95, 0x38, 0x01, 0x00, 0x00, 0xFF, 0x95, 0x38, 0x01, 0x00,
        0x00, 0xC2, 0x04, 0x00
};

void AdjustPrivilege(int pid, BOOL bEnable)
{
    HANDLE                hProcess;
        HANDLE                hToken=0;
    TOKEN_PRIVILEGES tkp;
        tkp.PrivilegeCount = 1;  
        tkp.Privileges[0].Attributes = 0;
        if (bEnable)
                tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
        if (LookupPrivilegeValue(NULL, "SeDebugPrivilege", &tkp.Privileges[0].Luid))
        {
                if (hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid))
                {
                        if (OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken))
                        {
                            if (AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, NULL))
                                {
                                        CloseHandle(hToken);
                                }
                        }
                        CloseHandle(hProcess);
                }
        }
}

DWORD FindExplorer()
{
        HANDLE                hC;
        DWORD                i;
        BOOL                Next;
        char                szName[MAX_PATH];
        PROCESSENTRY32 p32 = {sizeof(p32)};

        hC = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);
        Next = Process32First(hC, &p32);
        i = 0;
        while (Next)
        {
                wsprintf(szName, "%s", p32.szExeFile);
                _strupr(szName);
                if (memcmp(szName, "EXPLORER.EXE", 12) == 0)
                        return p32.th32ProcessID ;
                Next = Process32Next(hC, &p32);
                i++;
        }
        CloseHandle(hC);
        return 0;
}

void MakeData1(LPBYTE Address)
{
        char        szFileName[MAX_PATH];

        GetCurrentDirectory(MAX_PATH, szFileName);
        strcat(szFileName, "\\ollydbg.exe");
        strcpy((char *)Address+0x30, szFileName);
        *(LPDWORD)(Address+0x130) = (DWORD)GetProcAddress(GetModuleHandle("kernel32"), "LoadLibraryA");
        *(LPDWORD)(Address+0x134) = (DWORD)GetProcAddress(GetModuleHandle("kernel32"), "GetModuleHandleA");
        *(LPDWORD)(Address+0x138) = (DWORD)GetProcAddress(GetModuleHandle("kernel32"), "FreeLibrary");

        memcpy(Address, data1, sizeof(data1));
}

void MakeData2(LPBYTE Address)
{
        memcpy(Address, data2, sizeof(data2));
}

void gogo()
{
        DWORD        PID;
        HANDLE        hProcess;
        HANDLE        hThread;
        LPBYTE        LocalAddress;
        LPBYTE        RemoteAddress;
        DWORD        temp;

        AdjustPrivilege(GetCurrentProcessId(), TRUE);
        PID = FindExplorer();
        if (PID == 0)
                return ;

        hProcess = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, PID);
        if (hProcess == 0)
                return ;
        LocalAddress = (LPBYTE)VirtualAlloc(NULL, 0x1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
        RemoteAddress = (LPBYTE)VirtualAllocEx(hProcess, NULL, 0x1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);

        MakeData1(LocalAddress);

        WriteProcessMemory(hProcess, RemoteAddress, LocalAddress, 0x1000, &temp);
    hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)RemoteAddress, NULL, 0, &temp);

        WaitForSingleObject(hThread, INFINITE);
        CloseHandle(hThread);

        MakeData2(LocalAddress);
        WriteProcessMemory(hProcess, RemoteAddress, LocalAddress, 0x1000, &temp);

    hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)RemoteAddress, NULL, 0, &temp);
        WaitForSingleObject(hThread, INFINITE);
        VirtualFree(LocalAddress, 0, MEM_RELEASE);
        VirtualFreeEx(hProcess, RemoteAddress, 0, MEM_RELEASE);
}
2006-10-24 09:17
0
雪    币: 44229
活跃值: (19965)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
34
最初由 shoooo 发布
//source of YeZhu.exe
........


收藏,以后学习注入的时候用的上。;)
2006-10-24 09:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
最初由 shoooo 发布
//source of YeZhu.exe

#include <windows.h>
#include <tlhelp32.h>

........


把关于data1 & data2 的汇编描述写出来就更好了。
2006-10-24 09:36
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
36
data1

   call delta
delta:
   pop ebp
   sub ebp, 5
   lea eax, [ebp+30]   ; ebp+30是ollydbg路径
   push eax
   call [ebp+130]      ; ebp+130是LoadLibraryA
   add eax, 1000
   jmp eax             ; 跳到ollydbg入口

data2

    call delta
delta:
    pop ebp
    sub ebp, 5
    lea eax, [ebp+30]
    push eax
    call [ebp+134]  ;  GetModuleHandleA(ollydbgPath);
    push eax
    push eax
    call [ebp+138]  ;  FreeLibrary(ModuleOfOllydbg)
    call [ebp+138]  ;  放两次,确保放掉
    retn 4
2006-10-24 09:46
0
雪    币: 3519
活跃值: (4047)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
37
我爱shoooooooo小弟弟
2006-10-24 09:48
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
38
如果能知道野猪力量的思路就n了、。。支持shoooo
2006-10-24 10:53
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
39
最初由 china 发布
我爱shoooooooo小弟弟

先支持文章!
bt ABC,MM同学全让你教坏了.
2006-10-24 12:05
0
雪    币: 257
活跃值: (369)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
40
最初由 china 发布
我爱shoooooooo小弟弟


哇哈哈!
2006-10-24 12:30
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
可惜我还不会用!!!
2006-10-24 13:29
0
雪    币: 62
活跃值: (1982)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
为什么会这样?
2006-10-24 18:35
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
43
退出OD后,野猪还在运行......
2006-10-24 18:45
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
44
42楼和43楼属于意外
意外的环境有很多种,比如装了K8,装了诺顿,或者别的
代码写的简单,所以稳定性不好
2006-10-24 20:10
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
45
拜读,shoooo
2006-10-24 20:20
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
46
支持一下shoooo!
2006-10-26 08:38
0
雪    币: 421
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
好久没上网了 支持一个
2006-10-26 09:16
0
雪    币: 506
活跃值: (388)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
48
弄个Rootkit来隐藏OD不知道大家有没有试过。 比如Hacker Defender
2006-10-26 09:28
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
49
原来这就是传说中的野猪力量,我以前一直以为是将一个dll注入到目标壳中去,来实现脱壳的目的,我都写了好几个了。
原来不是这样子的,看来我完全误会了~~~
2006-10-26 11:01
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
50
最初由 skylly 发布
原来这就是传说中的野猪力量,我以前一直以为是将一个dll注入到目标壳中去,来实现脱壳的目的,我都写了好几个了。
原来不是这样子的,看来我完全误会了~~~


呵呵,仁者见仁,智者见智了
这个词是电视剧里看来的,最早是堀北真希用了一次,后来经q3发扬光大
2006-10-26 11:06
0
游客
登录 | 注册 方可回帖
返回
//