首页
社区
课程
招聘
[原创]SharpOD 反反调试插件 v0.6b (增加功能和修复BUG)
2017-7-5 10:32 61826

[原创]SharpOD 反反调试插件 v0.6b (增加功能和修复BUG)

2017-7-5 10:32
61826
 

SharpOD v0.6b 更新说明
1.增加 x64dbg Remove EP Break
2.增加 x64dbg Atti_Atti Attach
3.增加 ollydbg 随机三级菜单标题
4.完善下 VMP3.1(above)功能。
5.修复 x64dbg 以管理员重新启动,窗口消息未还原,崩溃的BUG
6.修复 x64dbg 64位程序与火绒安全软件抢Hook点导致程序崩溃的BUG
7.修复 取explorer.exe 进程PID不到,父进程PID变成4的情况。
9.优化代码

插件说明

简介

SharpOD x64 插件是一款只支持64位系统的(Win7,8,10) 反反调试插件,并且支持x32dbg和x64dbg

前言

个人见解先来谈谈各插件功能
StrongOD:非常优秀的一款插件,几乎完美,因在64位系统加载不上驱动,只能在32位系统上发挥其威力,海风大牛也没时间更新,这真是个悲剧。
PhantOm: 插件精简高效,但使用了SSDT Index硬编码来拦截 wow64cpu!Wow64Transition(32位转64位模式的地方 jmp 0033:xxxxxxxxx)导致兼容性也不是那么的好。
而且处理的东西也非常少,Wow64进程的peb64也没有处理,故导致很多的反调试过不去。
scyllaHide: x64dbg作者开发的一款非常优秀隐藏插件,同上也是Hook wow64cpu!Wow64Transition(32位转64位模式的地方 jmp 0033:xxxxxxxxx),而且处理了非常多的地方。
我看完了scyllaHide的源代码,界面复杂,发现作者有点赖 - -!,很多地方处理不够精细,并且硬件断点保护作者嫌64位麻烦也是没写,并且Hook位置不够深,别人随便调用个64位API就检测到了。
titanHide: 在64位系统上SSDT Hook,首先用户就要去过一遍PG了,而且处理的地方也不多。
以上插件各有其优缺点,就是找不到一个完美点的,且现在越来越多的64位系统,在64位系统上没能找到一款顺手插件导致被很多软件anti到,故编写了SharpOD x64插件。。
SharpOD x64主要实现是向wow64进程 ,注入纯64位code,并且hook ntdll64 api来实现的,这样做要比Hook wow64cpu!Wow64Transition要底层的多。
具体功能请看下面介绍

安装

Ollydbg: 拷贝SharpOD x64.dll 到您的OD插件目录,并且拷贝StrongOD插件到OD插件目录(StrongOD在64位上主要用于修复OD的BUG和非常好用的快捷键)
然后重启调试器在插件菜单中配置
x64dbg: 拷贝对应版本的插件到你的x64dbg插件目录,如64位,拷贝SharpOD x64.dp64文件,然后重启调试器在插件菜单中配置

功能说明

->Hide PEB (重载程序生效)

隐藏PEB,处理掉以下特征
  • peb.BeingDebugged & wow64.peb64.BeingDebugged
  • peb.NtGlobalFlag & wow64.peb64.NtGlobalFlag
  • peb.processHeap.HeapFlags & wow64.peb64.processHeap.HeapFlags
  • peb.processHeap.ForceFlags & wow64.peb64.processHeap.ForceFlags

-> Change Caption (重启调试器生效)

无力吐槽的功能,恕我直言,一切带特征的反调试都是不安全的。  
而这个功能就是在改变调试器 窗口标题、菜单名称 来防止小学生的枚举窗口以及菜单检测。

-> Hide Process (重载程序生效)

隐藏进程功能,只针对正在调试的进程,在NtQuerySystemInformation断链  

-> Fake ParentProcess (重载程序生效)

修改父进程标识符,调试的进程 父进程会变成explorer.exe的,如果取不到explorer.exe 的pid,则会把父进程变成4.

-> Drag Attach (重启调试器生效)

感觉这个是最给力的更新了,只要拖动调试器左上角的图标 到目标窗口上,即可附加进程。  

->Hook *ZwFunctions (重载程序生效)

Hook Zw系列函数
这个处理的东西太多了,以下Nt函数  
NtQuerySystemInformation
  • SystemKernelDebuggerInformation
  • SystemProcessInformation
  • SystemHandleInformation
NtClose
  • invalid Handle
NtQueryInformationProcess
  • ProcessBasicInformation
  • ProcessDebugPort
  • ProcessDebugObjectHandle
  • ProcessDebugFlags
NtSetInformationThread
  • ThreadHideFromDebugger
NtDuplicateObject
NtQueryObject
  • ObjectTypesInformation -> DebugObject
NtYieldExecution
  • return STATUS_NO_YIELD_PERFORMED

-> Remove DebugProvileges (重载程序生效)

移除调试进程的调试权限
因为默认情况下进程没有SeDebugPrivilege权限,调试时会从调试器继承这个权限,以不免有人利用这一点。默认不建议开启  

-> VMP 3.1(above) (重载程序生效)

过VMP3.1以上版本的反调试
VMProtect 3.1版本开始有重大的更新,从这个版本开始,直接模拟Wow64 调用syscall进入内核,32位的系统也是直接调用特权指令systnter进入内核,查询检测ProcessDebugObjectHandle,所以在应用层几乎没有办法拦截他。 
我这里使用了一个小trick绕过了他的检测。 

-> Protect Drx (重载程序生效)

保护硬件断点  
  • ZwSetContextThread
  • ZwGetContextThread
  • KiUserExceptionDispatcher -> if Wow64PrepareForException
  • RtlDispatchException
  • RtlRestoreContext

->Driver Hook SSDT (重启调试器生效)

使用此功能,所有用户电脑都得去过PatchGuard,非常麻烦,等必要的时候在加上去。

->Driver Hook ShadowSSDT (重启调试器生效)

同上  

->Driver Dbg ValidAccessMask (重启调试器生效)

此功能专门针对那些 模仿TP反调试 来清除你的DebugObject->ValidAccessMask ,谁给你的这么大的权力来全局清除我机器的调试对象? 
现象是你的调试器无法拖入任何程序。

->Driver bypass ObjectHook (重启调试器生效)

绕过 object hook,这个保护在 64位系统上用的最多,他可以过滤掉你打开进程的权限。
比如让你无法对目标进程内存读写等。开启这个功能即可绕过这个保护。但好像WIN10系统下会触发PG
  • [SharpOD x64 v0.6更新]

  • 完整的重写架构以及代码,不在和ScyllaHide、PhantOm冲突,比它们更加底层。
  • 支持所有64位系统,不在使用 SSDT Index 硬编码
  • 支持x32dbg、x64dbg

  • [SharpOD x64 历史版本重要更新]

    v0.5c

  • 修复一个调用驱动功能BUG

    v0.5b

  • 重写Hook框架,修复一个死循环BUG
  • 增加了随机 OD窗口菜单、子菜单、全部子窗口标题

    v0.5

  • 增加保护硬件断点
  • 增加过VMP3.1以上的反调试
  • 增加驱动

    v 0.4

  • 加入开关界面显示框,处理窗口标题。

    v0.3

  • 重写Hook框架,支持大多数壳的反调试

    v0.2内测版

  • 支持WIN10系统

    v0.1内测版

  • 一个简单的demo版本

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞16
打赏
分享
最新回复 (105)
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Rprop 2017-7-5 11:32
2
0
支持
雪    币: 1355
活跃值: (329)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
爱琴海 13 2017-7-5 11:40
3
0
支持楼主
雪    币: 135
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小阿弟 2017-7-5 11:42
4
0
这个可以有,多谢!!!
雪    币: 574
活跃值: (1309)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
我是土匪 4 2017-7-5 12:15
5
0
支持楼主
雪    币: 3683
活跃值: (4071)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
sonyps 2017-7-5 12:48
6
0
报毒,用不了,能不能把壳去了
雪    币: 2955
活跃值: (1373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MsScotch 2017-7-5 13:05
7
0
一直使用scyllahide+phantom组合,表示  效果很好,
雪    币: 25
活跃值: (506)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lhb天羽 2017-7-5 13:25
8
0

sod的驱动源码在哪里啊

雪    币: 3178
活跃值: (1466)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
lynnux 2017-7-5 14:24
9
0

跟这个https://github.com/mrexodia/TitanHide比如何?    

另外话说,难道不禁止patchguard也能用? 加了数字签名(bin里没有发现sys)?  

可以使用额外工具如KPP和UPGDSED来禁止patchguard,这个提醒下用户就可以了。

雪    币: 41
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
怕怕吓一 2017-7-5 14:31
10
0
VMProtect还是过不了,环境是win7  x64  ,加的vmpsdk,超级  变异+虚拟
雪    币: 1038
活跃值: (1216)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
StriveXjun 2017-7-5 14:49
11
0
lynnux 跟这个https://github.com/mrexodia/TitanHide比如何?    另外话说,难道不禁止patc ...
大牛见笑了,目前只是应用层的。跟TianHide没法比。TianHide也是SSDT  Hook,需要过PG很麻烦。
雪    币: 1038
活跃值: (1216)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
StriveXjun 2017-7-5 14:50
12
0
怕怕吓一 VMProtect还是过不了,环境是win7 x64 ,加的vmpsdk,超级 变异+虚拟
VMP3.1  以上的版本  直接模拟wow64  syscall进内核。目前我这个是过不去。  等我花时间整整。
雪    币: 1038
活跃值: (1216)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
StriveXjun 2017-7-5 15:00
13
0
lynnux 跟这个https://github.com/mrexodia/TitanHide比如何?    另外话说,难道不禁止patc ...
但我这个处理了很多    scyllahide和phantom  没有处理到的地方。 
雪    币: 3178
活跃值: (1466)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
lynnux 2017-7-5 15:19
14
0
StriveXjun 但我这个处理了很多 scyllahide和phantom 没有处理到的地方。 [em_13]
哦哦,脑残了,看到“驱动功能目前有PG会触发蓝屏,暂停使用。”这句,以为不发sys了。
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
哇咔咔zs 2017-7-5 16:21
15
0
附加了下TGP过不去  被检查
雪    币: 41
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
怕怕吓一 2017-7-5 18:17
16
0
加油!!
雪    币: 11246
活跃值: (3998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xie风腾 2017-7-5 19:04
17
0
不知道神马问题,OD卡到
雪    币: 11246
活跃值: (3998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xie风腾 2017-7-5 19:06
18
0
可能是设置问题吧,64位系统,过DLL本身的VMP都不行
雪    币: 222
活跃值: (599)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
xxdisasm 2017-7-5 20:12
19
0
雪    币: 2863
活跃值: (1602)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chixiaojie 2017-7-6 00:07
20
0
神器,高大上。
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Nocker 2017-8-14 09:52
22
0
神器,高大上。
雪    币: 25
活跃值: (506)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lhb天羽 2017-8-14 10:30
23
0
这个真的是神器了
雪    币: 60
活跃值: (389)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
褐眼男子 1 2017-9-6 10:20
24
0
神器,VMP3.0居然能直接打开调试
雪    币: 206
活跃值: (98)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
星星当空照 2017-9-6 10:47
25
0
这个厉害了,先mark
游客
登录 | 注册 方可回帖
返回