能力值:
( LV9,RANK:3410 )
|
-
-
2 楼
常见的
有壳?
可以把API断点向下挪几行下断
如BP ZwQueryInformationProcess+0A
等等
|
能力值:
( LV12,RANK:650 )
|
-
-
3 楼
往下挪不行,我试过了,一样要退出。
我再看看是不是所有的API都不行。
|
能力值:
( LV12,RANK:650 )
|
-
-
4 楼
连SwapMouseButton这样八竿子打不着的API都不行
|
能力值:
( LV9,RANK:180 )
|
-
-
5 楼
把软件传上来让大家看看好吧?
|
能力值:
(RANK:1060 )
|
-
-
6 楼
估计没有扫描断点.是其他问题
|
能力值:
( LV9,RANK:3410 )
|
-
-
7 楼
在api下硬件断点也不行?
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
是内存校验吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
BPM断点,on Read&Write 试试
(那个BT的软件不会是加的XPR吧……)
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
Roba为什么不把软件下载地址写出来?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
神龙见首不见尾?
|
能力值:
( LV12,RANK:650 )
|
-
-
12 楼
|
能力值:
( LV9,RANK:180 )
|
-
-
13 楼
看了看它的导入表,发现很完整,但用od载入才发现出事了,应该是有壳吧.
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
这东西的确有壳
|
能力值:
( LV9,RANK:2130 )
|
-
-
15 楼
因为重点在DLL中,所以你下的就没用了,这个jongulong好像以前搞过
|
能力值:
( LV9,RANK:2130 )
|
-
-
16 楼
0050C279 PUSH addurl.0050C294 ASCII "\\.\SICE"
0050C2B5 PUSH addurl.0050C2D0 ASCII "\\.\NTICE"
0050C2F1 PUSH addurl.0050C30C ASCII "\\.\FILEMON"
0050C32D PUSH addurl.0050C348 ASCII "\\.\REGMON"
0050C369 PUSH addurl.0050C384 ASCII "\\.\TRW"
0050C3A1 PUSH addurl.0050C3BC ASCII "\\.\TRWDEBUG"
0050C3E1 PUSH addurl.0050C3FC ASCII "\\.\ICEDUMP"
0050C41D PUSH addurl.0050C438 ASCII "\\.\TRW2000"
0050C459 PUSH addurl.0050C474 ASCII "\\.\REGVXD"
0050C495 PUSH addurl.0050C4B0 ASCII "\\.\VKEYPROD"
0050C4D5 PUSH addurl.0050C4F0 ASCII "\\.\FILEVXD"
不反od
|
能力值:
( LV9,RANK:3410 )
|
-
-
17 楼
登录奇兵 V4.05 的反跟踪 简单看了看,主程序没有加壳
可以在主程序内下硬件执行断点,也可以在API上下断点
在addurl41.DLL处有Anti,这个dll和winwatch.dll都放在WINDOWS\system32目录下
1、addurl41.DLL
00372194 53 push ebx
00372195 56 push esi
00372196 68 46E53800 push addurl41.0038E546 ; ASCII "kernel32.dll"
0037219B E8 B6B30100 call <jmp.&KERNEL32.GetModuleHandleA>
003721A0 85C0 test eax,eax
003721A2 74 31 je short addurl41.003721D5
003721A4 68 53E53800 push addurl41.0038E553 ; ASCII "IsDebuggerPresent"
003721A9 50 push eax
003721AA E8 B3B30100 call <jmp.&KERNEL32.GetProcAddress>
003721AF 8BD8 mov ebx,eax
003721B1 85DB test ebx,ebx
003721B3 74 20 je short addurl41.003721D5
003721B5 FFD3 call ebx
003721B7 85C0 test eax,eax
003721B9 74 1A je short addurl41.003721D5
003721BB 6A 40 push 40
003721BD 68 E0E53800 push addurl41.0038E5E0 ; ASCII "Reverse Engineering Detected!"
003721C2 68 65E53800 push addurl41.0038E565 ; ASCII "Using a debugger violates the software license agreement you have.This program will not operate properly under a debugger!"
003721C7 6A 00 push 0
003721C9 E8 C8B40100 call <jmp.&USER32.MessageBoxA>
003721CE 6A 00 push 0
003721D0 E8 C7B40100 call <jmp.&USER32.PostQuitMessage>
003721D5 68 1DE43800 push addurl41.0038E41D ; ASCII "nmtrans.dll"
003721DA E8 DDB30100 call <jmp.&KERNEL32.LoadLibraryA>
003721DF 8BD8 mov ebx,eax
003721E1 85DB test ebx,ebx
003721E3 74 45 je short addurl41.0037222A
003721E5 68 1DE43800 push addurl41.0038E41D ; ASCII "nmtrans.dll"
003721EA E8 67B30100 call <jmp.&KERNEL32.GetModuleHandleA>
003721EF 85C0 test eax,eax
003721F1 74 31 je short addurl41.00372224
003721F3 68 FEE53800 push addurl41.0038E5FE ; ASCII "NmSymIsSoftICELoaded"
003721F8 50 push eax
003721F9 E8 64B30100 call <jmp.&KERNEL32.GetProcAddress>
003721FE 8BF0 mov esi,eax
00372200 85F6 test esi,esi
00372202 74 20 je short addurl41.00372224
00372204 FFD6 call esi
00372206 85C0 test eax,eax
00372208 74 1A je short addurl41.00372224
0037220A 6A 40 push 40
0037220C 68 E0E53800 push addurl41.0038E5E0 ; ASCII "Reverse Engineering Detected!"
00372211 68 65E53800 push addurl41.0038E565 ; ASCII "Using a debugger violates the software license agreement you have.This program will not operate properly under a debugger!"
00372216 6A 00 push 0
00372218 E8 79B40100 call <jmp.&USER32.MessageBoxA>
0037221D 6A 00 push 0
0037221F E8 78B40100 call <jmp.&USER32.PostQuitMessage>
00372224 53 push ebx
00372225 E8 DEB20100 call <jmp.&KERNEL32.FreeLibrary>
0037222A 5E pop esi
0037222B 5B pop ebx
0037222C C3 retn
很明显可以看出上面代码是干什么用的,可以用IsDebug 1.4插件。也可以直接把00372194处改为Ret,省得程序去忙活。
―――――――――――――――――――――――――――――――――
2、注册窗口出来后程序调用winwatch.dll,在程序启动后也会调用这里
004ED55E 68 94D64E00 push addurl.004ED694 ; ASCII "winwatch.dll"
004ED563 E8 28AAF1FF call <jmp.&kernel32.LoadLibraryA>
004ED568 8BF0 mov esi,eax ; winwatch.018E0000
004ED56A 8973 28 mov dword ptr ds:[ebx+28],esi
004ED56D 85F6 test esi,esi
004ED56F 0F84 BA000000 je addurl.004ED62F
004ED575 53 push ebx
004ED576 68 04DA4E00 push addurl.004EDA04
004ED57B E8 74CDF5FF call addurl.0044A2F4
004ED580 8943 24 mov dword ptr ds:[ebx+24],eax
004ED583 68 A4D64E00 push addurl.004ED6A4 ; ASCII "StartWatching"
004ED588 8B43 28 mov eax,dword ptr ds:[ebx+28]
004ED58B 50 push eax
004ED58C E8 37A9F1FF call <jmp.&kernel32.GetProcAddress>
004ED591 8943 3C mov dword ptr ds:[ebx+3C],eax
004ED594 68 B4D64E00 push addurl.004ED6B4 ; ASCII "StopWatching"
004ED599 8B43 28 mov eax,dword ptr ds:[ebx+28]
004ED59C 50 push eax
004ED59D E8 26A9F1FF call <jmp.&kernel32.GetProcAddress>
004ED5A2 8943 40 mov dword ptr ds:[ebx+40],eax
004ED5A5 68 C4D64E00 push addurl.004ED6C4 ; ASCII "StillWatching"
004ED5AA 8B43 28 mov eax,dword ptr ds:[ebx+28]
004ED5AD 50 push eax
004ED5AE E8 15A9F1FF call <jmp.&kernel32.GetProcAddress>
004ED5B3 8943 48 mov dword ptr ds:[ebx+48],eax
004ED5B6 68 D4D64E00 push addurl.004ED6D4 ; ASCII "StopAll"
004ED5BB 8B43 28 mov eax,dword ptr ds:[ebx+28]
004ED5BE 50 push eax
004ED5BF E8 04A9F1FF call <jmp.&kernel32.GetProcAddress>
004ED5C4 8943 44 mov dword ptr ds:[ebx+44],eax
004ED5C7 68 DCD64E00 push addurl.004ED6DC ; ASCII "SetReceiver"
004ED5CC 8B43 28 mov eax,dword ptr ds:[ebx+28]
004ED5CF 50 push eax
004ED5D0 E8 F3A8F1FF call <jmp.&kernel32.GetProcAddress>
004ED5D5 8943 4C mov dword ptr ds:[ebx+4C],eax
004ED5D8 68 E8D64E00 push addurl.004ED6E8 ; ASCII "GetReceiver"
004ED5DD 8B43 28 mov eax,dword ptr ds:[ebx+28]
004ED5E0 50 push eax
004ED5E1 E8 E2A8F1FF call <jmp.&kernel32.GetProcAddress>
004ED5E6 8943 50 mov dword ptr ds:[ebx+50],eax
004ED5E9 837B 4C 00 cmp dword ptr ds:[ebx+4C],0
004ED5ED 74 40 je short addurl.004ED62F
进入winwatch.dll看看:
004EDA71 837E 3C 00 cmp dword ptr ds:[esi+3C],0
004EDA75 74 04 je short addurl.004EDA7B
004EDA77 53 push ebx
004EDA78 FF56 3C call dword ptr ds:[esi+3C]; winwatch.StartWatching//进入
004EDA7B 5E pop esi
004EDA7C 5B pop ebx
004EDA7D C3 retn
Ollydbg 死悄悄的原因是这里面的SetWindowsHookExA
01743B28 55 push ebp
01743B29 8BEC mov ebp,esp
01743B2B 53 push ebx
01743B2C 6A FF push -1
01743B2E A1 E8647401 mov eax,dword ptr ds:[17464E8]
01743B33 50 push eax
01743B34 E8 E7FDFFFF call <jmp.&kernel32.WaitForSingleObject>
01743B39 33C0 xor eax,eax
01743B3B 55 push ebp
01743B3C 68 F23B7401 push winwatch.01743BF2
01743B41 64:FF30 push dword ptr fs:[eax]
01743B44 64:8920 mov dword ptr fs:[eax],esp
01743B47 8B1D EC647401 mov ebx,dword ptr ds:[17464EC]
01743B4D 8A45 08 mov al,byte ptr ss:[ebp+8]
01743B50 2C 01 sub al,1
01743B52 72 08 jb short winwatch.01743B5C
01743B54 74 2F je short winwatch.01743B85
01743B56 FEC8 dec al
01743B58 74 56 je short winwatch.01743BB0
01743B5A EB 7D jmp short winwatch.01743BD9
01743B5C 837B 04 00 cmp dword ptr ds:[ebx+4],0
01743B60 75 1E jnz short winwatch.01743B80
01743B62 833B 00 cmp dword ptr ds:[ebx],0
01743B65 75 19 jnz short winwatch.01743B80
01743B67 6A 00 push 0
01743B69 A1 C4507401 mov eax,dword ptr ds:[17450C4]
01743B6E 8B00 mov eax,dword ptr ds:[eax]
01743B70 50 push eax
01743B71 B8 88397401 mov eax,winwatch.01743988
01743B76 50 push eax
01743B77 6A 0A push 0A
01743B79 E8 C2FDFFFF call <jmp.&user32.SetWindowsHookExA>
01743B7E 8903 mov dword ptr ds:[ebx],eax
01743B80 FF43 04 inc dword ptr ds:[ebx+4]
01743B83 EB 54 jmp short winwatch.01743BD9
01743B85 837B 0C 00 cmp dword ptr ds:[ebx+C],0
01743B89 75 20 jnz short winwatch.01743BAB
01743B8B 837B 08 00 cmp dword ptr ds:[ebx+8],0
01743B8F 75 1A jnz short winwatch.01743BAB
01743B91 6A 00 push 0
01743B93 A1 C4507401 mov eax,dword ptr ds:[17450C4]
01743B98 8B00 mov eax,dword ptr ds:[eax]
01743B9A 50 push eax
01743B9B B8 0C3A7401 mov eax,winwatch.01743A0C
01743BA0 50 push eax
01743BA1 6A 02 push 2
01743BA3 E8 98FDFFFF call <jmp.&user32.SetWindowsHookExA>
01743BA8 8943 08 mov dword ptr ds:[ebx+8],eax
01743BAB FF43 0C inc dword ptr ds:[ebx+C]
01743BAE EB 29 jmp short winwatch.01743BD9
01743BB0 837B 14 00 cmp dword ptr ds:[ebx+14],0
01743BB4 75 20 jnz short winwatch.01743BD6
01743BB6 837B 10 00 cmp dword ptr ds:[ebx+10],0
01743BBA 75 1A jnz short winwatch.01743BD6
01743BBC 6A 00 push 0
01743BBE A1 C4507401 mov eax,dword ptr ds:[17450C4]
01743BC3 8B00 mov eax,dword ptr ds:[eax]
01743BC5 50 push eax
01743BC6 B8 903A7401 mov eax,winwatch.01743A90
01743BCB 50 push eax
01743BCC 6A 07 push 7
01743BCE E8 6DFDFFFF call <jmp.&user32.SetWindowsHookExA>
01743BD3 8943 10 mov dword ptr ds:[ebx+10],eax
01743BD6 FF43 14 inc dword ptr ds:[ebx+14]
01743BD9 33C0 xor eax,eax
01743BDB 5A pop edx
01743BDC 59 pop ecx
01743BDD 59 pop ecx
01743BDE 64:8910 mov dword ptr fs:[eax],edx
01743BE1 68 F93B7401 push winwatch.01743BF9
01743BE6 A1 E8647401 mov eax,dword ptr ds:[17464E8]
01743BEB 50 push eax
01743BEC E8 1FFDFFFF call <jmp.&kernel32.ReleaseMutex>
01743BF1 C3 retn
|
能力值:
( LV9,RANK:170 )
|
-
-
18 楼
为什么SetWindowsHookExA能让OD死掉呢?
|
能力值:
( LV9,RANK:180 )
|
-
-
19 楼
现在应该怎么办?
|
能力值:
( LV9,RANK:3410 )
|
-
-
20 楼
最初由 草原猎豹 发布 为什么SetWindowsHookExA能让OD死掉呢? 接管了消息循环,OD无法处理了
――forgot
|
能力值:
( LV9,RANK:3410 )
|
-
-
21 楼
最初由 runjin 发布 现在应该怎么办? 改dll
或者修改流程避开
|
能力值:
( LV9,RANK:690 )
|
-
-
22 楼
最初由 草原猎豹 发布 为什么SetWindowsHookExA能让OD死掉呢?
我也想用这个反跟踪,不过只试出WH_JOURNALRECORD等全局钩子在OD里失效,不过这种钩子只能接收用户输入消息,不能接收程序发送的自定义消息,没法用来自动反跟踪……不过好像可以用于软件用户界面的反跟踪
|
能力值:
( LV12,RANK:650 )
|
-
-
23 楼
我只喜欢用SoftICE,用FrogsICE可以避开那一批CrackFile的检测,IsDebuggerPresent对SICE不起作用
我直接把4EDA77,4EDA78调用DLL的那两句NOP了,可以用SICE了,但还没破出来.
另:他不知怎么用的SMC,如果看原EXE什么都不是,但用SICE的LOADER载入后就成为完整的代码了.类似壳但不知是何时解密的,我把解开后的EXE DUMP了下,和原文件大小差不多,是DELPHY写的,用DEDE会非法操作,真麻烦!
|
能力值:
( LV9,RANK:250 )
|
-
-
24 楼
用PEID插件通用脱壳器轻松脱掉
|
|
|