能力值:
( LV2,RANK:10 )
2 楼
消灭0回复 标题有些夸张了... 在VMPCALL的地方下断点, 都是在对一些函数和异常做介绍 不过能看出来写的非常认真
能力值:
( LV2,RANK:10 )
3 楼
卡不懂
能力值:
( LV4,RANK:50 )
4 楼
厉害厉害
能力值:
( LV2,RANK:10 )
5 楼
厉害!
能力值:
( LV7,RANK:110 )
6 楼
感谢分享
能力值:
( LV2,RANK:10 )
7 楼
我使用SharpOD插件可以过掉反调试,但是在IsDebuggerPresent上下断就会被检测到,意思是VM还会检测API入口的1个字节判断是否为0xCC来进行反调试吗.
能力值:
( LV5,RANK:70 )
8 楼
谢谢,正在新手村任务中
能力值:
( LV5,RANK:70 )
9 楼
ZwTrojan
我使用SharpOD插件可以过掉反调试,但是在IsDebuggerPresent上下断就会被检测到,意思是VM还会检测API入口的1个字节判断是否为0xCC来进行反调试吗.
是的,有软件断点的检测,使用硬件断点就可以的
能力值:
( LV5,RANK:70 )
10 楼
cat喵
是的,有软件断点的检测,使用硬件断点就可以的
上面帖子的软件断点检测有说到
能力值:
( LV2,RANK:10 )
11 楼
普及贴收藏,谢谢楼主提供
能力值:
( LV9,RANK:170 )
12 楼
顶一下,希望把工作坚持 下去。
能力值:
(RANK:260 )
13 楼
支持,整理的很全啊
能力值:
( LV3,RANK:35 )
14 楼
离脱壳还很远
能力值:
( LV5,RANK:70 )
15 楼
StriveXjun
离脱壳还很远
哈哈,是的,这就是一篇总结贴,而且属于适合新手的,vm还原部分我也还在分析中,不同版本的特征感觉也不太一致,所以没办法快速还原。
如果您有相关资料,也请分享或指教一个方向谢谢
能力值:
( LV5,RANK:70 )
16 楼
cat喵
哈哈,是的,这就是一篇总结贴,而且属于适合新手的,vm还原部分我也还在分析中,不同版本的特征感觉也不太一致,所以没办法快速还原。
如果您有相关资料,也请分享或指教一个方向谢谢
大神请教个问题,你写的SharpOD的Atti_Atti Attach的原理是使用的挂钩DbgUiIssueRemoteBreakin,DbgUiConnectToDbg,DbgUiDebugActiveProcess这几个函数来实现的吗?
能力值:
( LV2,RANK:10 )
17 楼
cat喵
大神请教个问题,你写的SharpOD的Atti_Atti Attach的原理是使用的挂钩DbgUiIssueRemoteBreakin,DbgUiConnectToDbg,DbgUiDebugActi ...
我也在研究这个,sharpod的Atti_Atti Attach和scyllahide的kill anti attach都可以绕过一些TMD的反附加.不过我挂钩这几个函数失败了,打算直接用修复的方法,把地址改成原版ntdll中的地址.
函数的话,我搜到的有DbgUiIssueRemoteBreakin,DbgUiConnectToDbg,DbgUiDebugActiveProcess你说的这几个,还有DbgBreakPoint,DbgUserBreakPoint这两个.
能力值:
( LV5,RANK:70 )
18 楼
JAS白乌鸦
我也在研究这个,sharpod的Atti_Atti Attach和scyllahide的kill anti attach都可以绕过一些TMD的反附加.不过我挂钩这几个函数失败了,打算直接用修复的方法 ...
期待你完成后的分享,这方面的思路提供的内容多一些,但是具体实现还没去试过,准备考试啦
能力值:
( LV3,RANK:35 )
19 楼
cat喵
大神请教个问题,你写的SharpOD的Atti_Atti Attach的原理是使用的挂钩DbgUiIssueRemoteBreakin,DbgUiConnectToDbg,DbgUiDebugActi ...
我也是使用的SOD的方法, attach进程的时候,在目标进程会创建一个线程,这个线程的起始地址就是DbgUiIssueRemoteBreakin,但你先挂钩进程的 LdrInitializeThunk的话在直接 int 3 接管调试断点,就不会走到那几个API那去了。
能力值:
( LV2,RANK:10 )
20 楼
栈回硕就能找到call ebx?难道是最新版的没旧版强度大了?
能力值:
( LV9,RANK:270 )
21 楼
lookzo
栈回硕就能找到call ebx?难道是最新版的没旧版强度大了?
Call R32 在vCall里。
VMP3的vCall与VMP2有很大不同,VMP2的vCall只能调用虚拟子程序/函数,VMP3的vCall可以直接调用API,比较方便。感觉VMP3的vCall handler是从Oreans(TMD/WL/CV)“抄”来的!
vCall中,解码vEIP一字节为参数个数,然后将vESP(EBP)处的参数依次入栈,最后Call R32完成调用,返回结果EAX保存在[EBP]。
而且VMP3 vCall的入口有好多个,这些vCall handler解码算法也有差异;VMP2时只有一个vCall。
另外,ZwQuerySystemInformation[SystemInformationClass::SystemModuleInformation]取得系统模块列表后,将模块名与解密后的字符串"sice.sys"、"siwvid.sys"、"ntice.sys"、"iceext.sys"和"syser.sys"进行比较,来完成检测。
能力值:
( LV2,RANK:10 )
22 楼
受教了,谢谢楼主分享。
能力值:
( LV2,RANK:10 )
23 楼
StriveXjun
我也是使用的SOD的方法, attach进程的时候,在目标进程会创建一个线程,这个线程的起始地址就是DbgUiIssueRemoteBreakin,但你先挂钩进程的 LdrInitializeThun ...
大佬,这句"在直接 int 3 接管调试断点"是什么意思.没有理解.是直接钩取LdrInitializeThunk然后在Fake_LdrInitializeThunk里面自己写int 3吗
能力值:
( LV5,RANK:70 )
24 楼
MistHill
Call R32 在vCall里。
VMP3的vCall与VMP2有很大不同,VMP2的vCall只能调用虚拟子程序/函数,VMP3的vCall可以直接调用API,比较方便。感觉VMP3的vCall ...
谢谢,说的好详细。想问下vCALL在3.x版本下不止一个,但是一直没明白为啥这个检测基本上检测函数的调用在一个地方就能过,我是把所有的保护都有勾选的?
能力值:
( LV5,RANK:70 )
25 楼
谢谢大佬的分析