使用工具: OD v1.10的英文原版
破解过程:
先申明,1,我不知道前辈们是不是已经发过类似这样的文章了,不要骂我。2,本人水平的确很菜。
原因:最近用OD搞一个保护系统,很郁闷,驱动保护部分已经过了,用StrongOD的最新版本,改驱动名,,,,等等方法,但是还是被发现了。提示一个‘发现调试器’
于是,想着把OD做成Dll来使用,是不是可以躲避检查呢。,,呵呵,,改成Dll之后的确有效果。
1,修改OEP:
OD的OEP:
00DA1000 > $ /EB 10 jmp short 00DA1012
00DA1002 |66 db 66 ; CHAR 'f' //新加的代码不能放这里,因为要重定位。
00DA1003 |62 db 62 ; CHAR 'b'
00DA1004 |3A db 3A ; CHAR ':'
00DA1005 |43 db 43 ; CHAR 'C'
00DA1006 |2B db 2B ; CHAR '+'
00DA1007 |2B db 2B ; CHAR '+'
00DA1008 |48 db 48 ; CHAR 'H'
00DA1009 |4F db 4F ; CHAR 'O'
00DA100A |4F db 4F ; CHAR 'O'
00DA100B |4B db 4B ; CHAR 'K'
00DA100C |90 nop
00DA100D |E9 db E9
00DA100E . |2801E500 dd offset b.___CPPdebugHook
00DA1012 > \A1 1B01E500 mov eax, dword ptr [E5011B]
修改为:
00871000 > /E9 5BE60A00 jmp 0091F660 // + 记录模块地址
00871005 |90 nop
00871006 |90 nop
00871007 |90 nop
00871008 |90 nop
00871009 |90 nop
0087100A |90 nop
0087100B |90 nop
0087100C |90 nop
0087100D |90 nop
0087100E |90 nop
0087100F |90 nop
00871010 |90 nop
00871011 |90 nop
00871012 . |A1 1B019200 mov eax, dword ptr [92011B]
2,加一些代码记录模块地址。
// + 记录模块地址
0091F660 8BC3 mov eax, ebx
0091F662 2D 00100000 sub eax, 1000
0091F667 51 push ecx
0091F668 8BCB mov ecx, ebx
0091F66A 83C1 06 add ecx, 6
0091F66D 8901 mov dword ptr [ecx], eax
0091F66F 59 pop ecx
0091F670 ^ E9 9D19F5FF jmp 00871012 //再跳回去
0091F675 00 db 00
3,在0091F642这里加一个Call,修正GetModuleHandleA的返回,因为现在OD是Dll了,模块地址不同。
0091F628 . 33 32 2D 62 6>ascii "32-bit analysing"
0091F638 . 20 64 65 62 7>ascii " debugger",0
// + 修改 kernel32.GetModuleHandleA
0091F642 $ 8BC4 mov eax, esp
0091F644 . 8378 04 00 cmp dword ptr [eax+4], 0
0091F648 . 74 05 je short 0091F64F
0091F64A .- E9 F2C0EE7B jmp kernel32.GetModuleHandleA
0091F64F > E8 00000000 call 0091F654
0091F654 /$ 58 pop eax
0091F655 |. 2D 4EE60A00 sub eax, 0AE64E
0091F65A |. 8B00 mov eax, dword ptr [eax] //返回上面记录的模块地址
0091F65C \. C2 0400 retn 4
0091F65F 00 db 00
4,最后把调用kernel32.GetModuleHandleA的Call,如果参数为0修改成Call 0091F642,参数不为0的不改。
5,改完,保存为OD.dll,自己随便写一个exe,LoadLibraryA,OD.dll,可以用了, 只能附加,不可以直接打开。这个足够了,我就只需要附加。
太郁闷,,,发了N次贴,都失败,,搞不懂论坛怎么发帖,,为什么发帖还需要悬赏10kx才可以啊?
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法