能力值:
( LV4,RANK:50 )
|
-
-
2 楼
fly老大,强,争取在5.1前发到51篇精华。
|
能力值:
( LV9,RANK:970 )
|
-
-
3 楼
最初由 萝卜 发布 fly老大,强,争取在5.1前发到51篇精华。
支持!!!呵呵!~
|
能力值:
( LV12,RANK:730 )
|
-
-
4 楼
研究研究。
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
向fly兄学习!
|
能力值:
( LV9,RANK:770 )
|
-
-
6 楼
支持学习
|
能力值:
( LV12,RANK:220 )
|
-
-
7 楼
|
能力值:
( LV12,RANK:660 )
|
-
-
8 楼
最初由 WiNrOOt 发布
差点看错
哈哈,我已经看错好几回了~
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
一VC6程序,参照FLY老大的方法修改anit后,还是被检测到
|
能力值:
( LV9,RANK:3410 )
|
-
-
10 楼
用修改版
跟踪一下看看是如何anti
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
04A6000 > E8 0E000000 call pk.004A6013>>>>>FlyODBG载入后,停在这
004A6005 8B5424 0C mov edx,dword ptr ss:[esp+C]
004A6009 8382 B8000000 0D add dword ptr ds:[edx+B8],0D
004A6010 33C0 xor eax,eax
004A6012 C3 retn
按FLY老大方法,设置OllyDbg忽略所有异常选项。
用IsDebug插件去掉OllyDbg的调试器标志。用UnhExcFlt.DLL插件先Patch一下。
再Ctrl+G:CheckRemoteDebuggerPresent
77E9582B > 55 push ebp>>>>>>>>来到这
77E9582C 8BEC mov ebp,esp
77E9582E 837D 08 00 cmp dword ptr ss:[ebp+8],0
77E95832 56 push esi
77E95833 74 35 je short kernel32.77E9586A
77E95835 8B75 0C mov esi,dword ptr ss:[ebp+C]
77E95838 85F6 test esi,esi
77E9583A 74 2E je short kernel32.77E9586A
77E9583C 6A 00 push 0
77E9583E 6A 04 push 4
77E95840 8D45 08 lea eax,dword ptr ss:[ebp+8]
77E95843 50 push eax
77E95844 6A 07 push 7
77E95846 FF75 08 push dword ptr ss:[ebp+8]
77E95849 FF15 AC10E477 call dword ptr ds:[<&ntdll.NtQueryInfo>; ntdll.ZwQueryInformationProcess
77E9584F 85C0 test eax,eax
77E95851 7D 08 jge short kernel32.77E9585B
77E95853 50 push eax
77E95854 E8 604BFCFF call kernel32.77E5A3B9
77E95859 EB 16 jmp short kernel32.77E95871
77E9585B 33C0 xor eax,eax
77E9585D 3945 08 cmp dword ptr ss:[ebp+8],eax
77E95860 0F95C0 setne al
77E95863 8906 mov dword ptr ds:[esi],eax
77E95865 33C0 xor eax,eax
77E95867 40 inc eax>>>>>>>>>修改为nop
77E95868 EB 09 jmp short kernel32.77E95873
77E9586A 6A 57 push 57
77E9586C E8 924AFCFF call kernel32.77E5A303
77E95871 33C0 xor eax,eax
77E95873 5E pop esi
77E95874 5D pop ebp
77E95875 C2 0800 retn 8
再Ctrl+G:IsProcessorFeaturePresent
77E6131B > 8B4424 04 mov eax,dword ptr ss:[esp+4]>>>>来到这,与FLY的不同?
77E6131F 83F8 40 cmp eax,40
77E61322 73 0A jnb short kernel32.77E6132E
77E61324 0FB680 7402FE7F movzx eax,byte ptr ds:[eax+7FFE0274]
77E6132B C2 0400 retn 4
在函数末尾下断,Shift+F9后可中断,再取消断点。
再Alt+M 显示内存窗口,在第2个区段00401000段“设置内存访问断点”,再Shift+F9后可以中断,来到:
003A4055 893E mov dword ptr ds:[esi],edi>>>>>>中断在这
003A4057 83C7 0C add edi,0C
003A405A 83C6 04 add esi,4
003A405D 41 inc ecx
003A405E 3B4D 0C cmp ecx,dword ptr ss:[ebp+C]
003A4061 ^ 72 C7 jb short 003A402A
003A4063 833E 00 cmp dword ptr ds:[esi],0
003A4066 75 30 jnz short 003A4098
再Ctrl+F在整个段块搜索命令:test word ptr ds:[esi],20
003A3EBE 56 push esi
003A3EBF 57 push edi
003A3EC0 8B75 10 mov esi,dword ptr ss:[ebp+10]
003A3EC3 8B7D 0C mov edi,dword ptr ss:[ebp+C]
003A3EC6 66:F706 2000 test word ptr ds:[esi],20>>>>找到这,修改 ①:test word ptr ds:[esi],8 ★
003A3ECB 74 46 je short 003A3F13>>>>>>>>②改je为jne
003A3ECD 66:F706 0200 test word ptr ds:[esi],2
003A3ED2 75 1F jnz short 003A3EF3
003A3ED4 66:C706 0400 mov word ptr ds:[esi],4
003A3ED9 8B45 14 mov eax,dword ptr ss:[ebp+14]
003A3EDC 6A 01 push 1
003A3EDE 6A 00 push 0
003A3EE0 FF76 04 push dword ptr ds:[esi+4]
003A3EE3 6A 00 push 0
003A3EE5 FF75 18 push dword ptr ss:[ebp+18]
003A3EE8 FF50 50 call dword ptr ds:[eax+50]
003A3EEB 85C0 test eax,eax
003A3EED 74 38 je short 003A3F27>>>>>>>>③改为je short 003A3F13
003A3EEF 8907 mov dword ptr ds:[edi],eax
003A3EF1 EB 20 jmp short 003A3F13
003A3EF3 66:C706 0400 mov word ptr ds:[esi],4
003A3EF8 8B45 14 mov eax,dword ptr ss:[ebp+14]
003A3EFB 0FB756 02 movzx edx,word ptr ds:[esi+2]
003A3EFF 6A 01 push 1
003A3F01 52 push edx
003A3F02 6A 00 push 0
003A3F04 FF76 04 push dword ptr ds:[esi+4]
003A3F07 FF75 18 push dword ptr ss:[ebp+18]
003A3F0A FF50 50 call dword ptr ds:[eax+50]
003A3F0D 85C0 test eax,eax
003A3F0F 74 16 je short 003A3F27>>>>>>>>④改为je short 003A3F13
003A3F11 8907 mov dword ptr ds:[edi],eax
003A3F13 83C6 08 add esi,8
003A3F16 83C7 04 add edi,4
003A3F19 FF4D 08 dec dword ptr ss:[ebp+8]
003A3F1C ^ 75 A8 jnz short 003A3EC6
003A3F1E 33C0 xor eax,eax
003A3F20 40 inc eax
003A3F21 5F pop edi
003A3F22 5E pop esi
003A3F23 5D pop ebp
003A3F24 C2 1400 retn 14
在003A3F24处下断,Shift+F9后输入表处理完毕。
再shift+f9后就程序非法操作而中止了
|
能力值:
( LV9,RANK:3410 )
|
-
-
12 楼
第2区段设置内存访问断点,再Shift+F9
也可以处理输入表后不忽略异常看看哪里异常导致退出
另外:上面的输入表处理方法不含特殊函数的处理
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
下载一个去试试
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
收藏文章好好学习学习!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
按FLY老大的步骤,我的为什么不一样呀,如果打补丁,只是把77E461A2 0F85 15040000 jnz kernel32.77E465BD
这里的JNZ改为NOP,运行还是直接退出,想手动改,但不知该改那个跳转,我用的系统是WIN2003的,另我用我的PEID092检测不出是什么加的壳,只显示"没有找到什么[重叠].那位老大给看一下
77E46157 > 68 F4040000 push 4F4
77E4615C 68 484EE577 push kernel32.77E54E48
77E46161 E8 90B5FCFF call kernel32.77E116F6
77E46166 6A 04 push 4
77E46168 5B pop ebx
77E46169 895D E0 mov dword ptr ss:[ebp-20],ebx
77E4616C 8B75 08 mov esi,dword ptr ss:[ebp+8]
77E4616F 8B06 mov eax,dword ptr ds:[esi]
77E46171 33FF xor edi,edi
77E46173 8138 050000C0 cmp dword ptr ds:[eax],C0000005
77E46179 75 09 jnz short kernel32.77E46184
77E4617B 3978 14 cmp dword ptr ds:[eax+14],edi
77E4617E ^ 0F85 A7FEFFFF jnz kernel32.77E4602B
77E46184 897D DC mov dword ptr ss:[ebp-24],edi
77E46187 57 push edi
77E46188 53 push ebx
77E46189 8D45 DC lea eax,dword ptr ss:[ebp-24]
77E4618C 50 push eax
77E4618D 6A 07 push 7
77E4618F E8 86BBFCFF call kernel32.GetCurrentProcess
77E46194 50 push eax
77E46195 FF15 B810E177 call dword ptr ds:[<&ntdll.NtQueryInform>; ntdll.ZwQueryInformationProcess
77E4619B 85C0 test eax,eax
77E4619D 7C 09 jl short kernel32.77E461A8
77E4619F 397D DC cmp dword ptr ss:[ebp-24],edi
77E461A2 0F85 15040000 jnz kernel32.77E465BD
77E461A8 A1 10E2E877 mov eax,dword ptr ds:[77E8E210]
77E461AD 3BC7 cmp eax,edi
77E461AF 74 15 je short kernel32.77E461C6
77E461B1 56 push esi
77E461B2 FFD0 call eax
77E461B4 83F8 01 cmp eax,1
77E461B7 0F84 02040000 je kernel32.77E465BF
77E461BD 83F8 FF cmp eax,-1
77E461C0 0F84 F9030000 je kernel32.77E465BF
77E461C6 E8 42C5FCFF call kernel32.77E1270D
77E461CB A8 02 test al,2
77E461CD 0F85 28040000 jnz kernel32.77E465FB
77E461D3 E8 77110000 call <jmp.&ntdll.RtlGetThreadErrorMode>
77E461D8 A8 20 test al,20
77E461DA 0F85 1B040000 jnz kernel32.77E465FB
77E461E0 57 push edi
77E461E1 6A 30 push 30
77E461E3 8D85 04FFFFFF lea eax,dword ptr ss:[ebp-FC]
77E461E9 50 push eax
77E461EA 6A 02 push 2
77E461EC 57 push edi
77E461ED FF15 7C15E177 call dword ptr ds:[<&ntdll.NtQueryInform>; ntdll.ZwQueryInformationJobObject
77E461F3 85C0 test eax,eax
77E461F5 0F8D F3030000 jge kernel32.77E465EE
77E461FB 8B06 mov eax,dword ptr ds:[esi]
77E461FD 8B08 mov ecx,dword ptr ds:[eax]
77E461FF 894D 9C mov dword ptr ss:[ebp-64],ecx
77E46202 8B48 0C mov ecx,dword ptr ds:[eax+C]
77E46205 894D A0 mov dword ptr ss:[ebp-60],ecx
77E46208 8138 060000C0 cmp dword ptr ds:[eax],C0000006
77E4620E ^ 0F84 2FFEFFFF je kernel32.77E46043
|
能力值:
( LV9,RANK:3410 )
|
-
-
16 楼
1、不同系统平台的anti未必一样,Win2000下没有CheckRemoteDebuggerPresent,Win2K3有没有这个不清楚
2、超级自动注册申请王升级了吧,加入了自校验
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
谢谢老大,我又重新跟了一下,出现以下的问题,望给予帮助
在WINDOWS2003下有CheckRemoteDebuggerPresent函数,我在此处和IsProcessorFeaturePresent处下断。
从UnhandledExceptionFilter函数出来后返回到下面代码:
77F35275 0AC0 or al,al
77F35277 74 0C je short ntdll.77F35285(此处不跳)
77F35279 5B pop ebx
77F3527A 59 pop ecx
77F3527B 6A 00 push 0
77F3527D 51 push ecx
77F3527E E8 D0FFFFFF call ntdll.ZwContinue
从此处进入,代码如下:
77F35253 > B8 22000000 mov eax,22
77F35258 BA 0003FE7F mov edx,7FFE0300
77F3525D FFD2 call edx
77F3525F C2 0800 retn 8
从CALL处进入,代码如下:
7FFE0300 8BD4 mov edx,esp
7FFE0302 0F34 sysenter
7FFE0304 C3 retn
在SYSENTER命令处不知该如何跟踪,F8或F9运行就退出,不能达到断点处。
|
能力值:
( LV9,RANK:3410 )
|
-
-
18 楼
始终建议:
你可以找教程中的例子跟随教程演示一下
另外,不清楚Obsidium在Win2K3是否有其他anti方式
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
我就是用的1.9版的,在我单位的XP专业版上也是同样的情况,且没有CheckRemoteDebuggerPresent函数
能否给出SYSENTER函数的常规拦截方法,谢谢
|
能力值:
( LV9,RANK:3410 )
|
-
-
20 楼
sysenter是系统异常处理
XP上没有CheckRemoteDebuggerPresent函数?SP2有,没有更好
不行就放弃吧
放弃也是不错的选择
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
知道了 ,不能给自己找麻烦
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
在PE Header下面的第2区段设置内存访问断点。Shift+F9中断下来取消断点
00B68155 893E mov dword ptr ds:[esi],edi //中断在这里
这个东西升级了,我用的其他的程序,在pe header下面的第2个区段设置断点
断到后却不是你说的地方,而是
0090E183 8B06 mov eax,dword ptr ds:[esi] //断在这
0090E185 85C0 test eax,eax
0090E187 74 18 je short 0090E1A1
是不是程序不一样的原因呢?
|
能力值:
( LV9,RANK:210 )
|
-
-
23 楼
最初由 只喝芬达的狗 发布
这个东西升级了,我用的其他的程序,在pe header下面的第2个区段设置断点 断到后却不是你说的地方,而是 ........
我记得我是下在401000的
|
能力值:
( LV9,RANK:3410 )
|
-
-
24 楼
PE Header下面的第2区段
这里是00401000
另外:听说新版加了不少检验,小心重启
|
|
|