传奇解决登陆器报毒360秒过百度杀毒 金山 卡吧 远控免杀技术
由于部分语言开发导致 杀软误报 使用本工作室研究得知误报分析代码
一、查壳
PEiD查出壳为PECompact 2.5 Retail -> Jeremy Collake
二、找OEP
设置Ollydbg忽略所有的异常选项,载入PECompact 2.55.EXE文件,提示“你仍要继续分析吗?”选“否”。
01001000 > B8 90BA0101 mov eax, PECompac.0101BA90 ; 载入时停在这里,F8单走
01001005 50 push eax
01001006 64:FF35 00000000 push dword ptr fs:[0]
0100100D 64:8925 00000000 mov dword ptr fs:[0], esp
01001014 33C0 xor eax, eax
01001016 8908 mov dword ptr ds:[eax], ecx ; 这行F8后自动跳转
01001018 50 push eax
01001019 45 inc ebp
0100101A 43 inc ebx
7C92E480 |. 8B1C24 mov ebx, dword ptr ss:[esp] ; 自动跳转到这里。此处是系统空间,不可Alt+F9回到用户代码,否则后面会无法继续跟踪,加密惹的祸^_^,继续F8
7C92E483 |. 51 push ecx
7C92E484 |. 53 push ebx
7C92E485 |. E8 B35A0200 call ntdll.7C953F3D ; 可F8步过
7C92E48A |. 0AC0 or al, al
7C92E48C |. 74 0C je short ntdll.7C92E49A
7C92E48E |. 5B pop ebx
7C92E48F |. 59 pop ecx
7C92E490 |. 6A 00 push 0
7C92E492 |. 51 push ecx
7C92E493 |. E8 C6EBFFFF call ntdll.ZwContinue ; 必须F7跟进!否则一直停在“运行”状态无法继续
7C92E498 |. EB 0B jmp short ntdll.7C92E4A5
7C92E49A |> 5B pop ebx
7C92E49B |. 59 pop ecx
7C92D05E >/$ B8 20000000 mov eax, 20 ; 跟进到了这里,继续F8
7C92D063 |. BA 0003FE7F mov edx, 7FFE0300
7C92D068 |. FF12 call dword ptr ds:[edx] ; 必须F7跟进!否则一直停在“运行”状态无法继续
7C92D06A \. C2 0800 retn 8
7C92D06D 90 nop
7C92E510 >/$ 8BD4 mov edx, esp ; 跟进到了这里
7C92E512 |. 0F34 sysenter ; 这行F8后自动跳转
7C92E514 >\$ C3 retn
7C92E515 . 8DA424 00000000 lea esp, dword ptr ss:[esp]
7C92E51C . 8D6424 00 lea esp, dword ptr ss:[esp]
0101BAB3 B8 97A801F1 mov eax, F101A897 ; 跳到了这里,继续F8
0101BAB8 64:8F05 00000000 pop dword ptr fs:[0]
0101BABF 83C4 04 add esp, 4
0101BAC2 55 push ebp
0101BAC3 53 push ebx
0101BAC4 51 push ecx
0101BAC5 57 push edi
0101BAC6 56 push esi
0101BAC7 52 push edx
0101BAC8 8D98 D5110010 lea ebx, dword ptr ds:[eax+100011>
0101BACE 8B53 18 mov edx, dword ptr ds:[ebx+18]
0101BAD1 52 push edx
0101BAD2 8BE8 mov ebp, eax
0101BAD4 6A 40 push 40
0101BAD6 68 00100000 push 1000
0101BADB FF73 04 push dword ptr ds:[ebx+4]
0101BADE 6A 00 push 0
0101BAE0 8B4B 10 mov ecx, dword ptr ds:[ebx+10]
0101BAE3 03CA add ecx, edx
0101BAE5 8B01 mov eax, dword ptr ds:[ecx]
0101BAE7 FFD0 call eax ; F8过
0101BAE9 5A pop edx
0101BAEA 8BF8 mov edi, eax
0101BAEC 50 push eax
0101BAED 52 push edx
0101BAEE 8B33 mov esi, dword ptr ds:[ebx]
0101BAF0 8B43 20 mov eax, dword ptr ds:[ebx+20]
0101BAF3 03C2 add eax, edx
0101BAF5 8B08 mov ecx, dword ptr ds:[eax]
0101BAF7 894B 20 mov dword ptr ds:[ebx+20], ecx
0101BAFA 8B43 1C mov eax, dword ptr ds:[ebx+1C]
0101BAFD 03C2 add eax, edx
0101BAFF 8B08 mov ecx, dword ptr ds:[eax]
0101BB01 894B 1C mov dword ptr ds:[ebx+1C], ecx
0101BB04 03F2 add esi, edx
0101BB06 8B4B 0C mov ecx, dword ptr ds:[ebx+C]
0101BB09 03CA add ecx, edx
0101BB0B 8D43 1C lea eax, dword ptr ds:[ebx+1C]
0101BB0E 50 push eax
0101BB0F 57 push edi
0101BB10 56 push esi
0101BB11 FFD1 call ecx ; F8过
0101BB13 5A pop edx
0101BB14 58 pop eax
0101BB15 0343 08 add eax, dword ptr ds:[ebx+8]
0101BB18 8BF8 mov edi, eax
0101BB1A 52 push edx
0101BB1B 8BF0 mov esi, eax
0101BB1D 8B46 FC mov eax, dword ptr ds:[esi-4]
0101BB20 83C0 04 add eax, 4
0101BB23 2BF0 sub esi, eax
0101BB25 8956 08 mov dword ptr ds:[esi+8], edx
0101BB28 8B4B 10 mov ecx, dword ptr ds:[ebx+10]
0101BB2B 894E 24 mov dword ptr ds:[esi+24], ecx
0101BB2E 8B4B 14 mov ecx, dword ptr ds:[ebx+14]
0101BB31 51 push ecx
0101BB32 894E 28 mov dword ptr ds:[esi+28], ecx
0101BB35 8B4B 0C mov ecx, dword ptr ds:[ebx+C]
0101BB38 894E 14 mov dword ptr ds:[esi+14], ecx
0101BB3B FFD7 call edi ; F8过,寄存器窗口有较大的变化
0101BB3D 8985 C8120010 mov dword ptr ss:[ebp+100012C8], >
0101BB43 8BF0 mov esi, eax
0101BB45 59 pop ecx
0101BB46 5A pop edx
0101BB47 EB 0C jmp short PECompac.0101BB55
0101BB49 03CA add ecx, edx
0101BB4B 68 00800000 push 8000 ; 这里就是老师说的特征码!OEP就在附近!
0101BB50 6A 00 push 0
0101BB52 57 push edi
0101BB53 FF11 call dword ptr ds:[ecx]
0101BB55 8BC6 mov eax, esi
0101BB57 5A pop edx
0101BB58 5E pop esi
0101BB59 5F pop edi
0101BB5A 59 pop ecx
0101BB5B 5B pop ebx
0101BB5C 5D pop ebp
0101BB5D - FFE0 jmp eax ; 跳往OEP!
0101BB5F 9D popfd
0101BB60 73 00 jnb short PECompac.0101BB62
0101BB62 0100 add dword ptr ds:[eax], eax
0101BB64 0000 add byte ptr ds:[eax], al
0101BB66 0000 add byte ptr ds:[eax], al
0100739D 6A 70 push 70 ; 这里就是OEP!
0100739F 68 98180001 push PECompac.01001898
010073A4 E8 BF010000 call PECompac.01007568
010073A9 33DB xor ebx, ebx
010073AB 53 push ebx
010073AC 8B3D CC100001 mov edi, dword ptr ds:[10010CC] ; kernel32.GetModuleHandleA 免费杀处理 10010CC 处理 10010PC
010073B2 FFD7 call edi
别以为以上代码只是普通的脱壳方式 使用 脱壳方式来修改值一样有免杀效果
不懂的联系
QQ 382913699
电话:18316718418
淘宝:http://981gzs.taobao.com