⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crack31.txt

📁 为所有对破解感兴趣的朋友准备的礼物。希望大家能够喜欢。
💻 TXT
📖 第 1 页 / 共 5 页
字号:
幻影v1.5b3脱壳分析笔记 --- ljttt开门一帖



【声明】

我写文章以交流为主,希望大家在转载时能保持文章的完整性。



[作者]:    ljttt

[日期]:    2000-09-15



【前言】

首先,我要这儿多谢wind[CCG]。



其中为了补充了一些说明,为了大家好理解。用 [注:]说明。我想根据其中的内容去写个脱壳机也不难。



这里有当初我分析幻影的两篇类似的分析笔记,当初为了分析方便,做了两份,各有一些说明(<--所指的内容)。互有补充。大家看看



[注:由于这是以前分析的笔记,只是为了自己分析方便,没有想到要做为文章,所以现在补充一些内容,让大家好理解]



[注:开始幻影用了大量的XOR还原方法,共有223处,而且,还在其中用到对IDT表的修改,所以动态分析不太可能,静态分析也要用编个程序批处理才能得到这些内容]



[注:这是我现在找的一段,和以前分析的地址不对应,但我只为了说明问题,这样的代码段大同小异,其中的说明也是我补充的]

 0000003A: FA                        cli 

 0000003B: 56                        push esi 

 0000003C: BE53BD4000                mov esi,0040BD53 

 00000041: 03F5                      add esi,ebp 

 00000043: 0F010E                    sidt dword ptr [esi]				<--取IDTR的内容

 00000046: 8B7602                    mov esi,dword ptr [esi+02]			<--获取IDT表的基地址

 00000049: 66FF4E08                  dec word ptr [esi+08]				<--int 1的低位偏移减一,大家应该知道这是干嘛的。

 0000004D: FF8DCFB24000              dec dword ptr [ebp+0040B2CF]		<--注意,这里修改了以后要XOR还原的一处内容,所以算个小干扰

 00000053: 5E                        pop esi 

 00000054: B927000000                mov ecx,00000027					<--还原开始

 00000059: 3006                      xor byte ptr [esi],al				<--al为XOR用的字节

 0000005B: 46                        inc esi 

 0000005C: 49                        dec ecx 

 0000005D: 75FA                      jnz 00000059						<--还原结束

 0000005F: FEC8                      dec al								<--变换,下一次用作XOR还原

 00000061: FA                        cli 



[注:在经过以上的XOR还原后,来到这里,将XOR还原出所有幻影的代码了,以前我给大家说明的一些内容都可以在这里找到]



 00412382: E800000000                call 00412387 

 00412387: 5D                        pop ebp 

 00412388: 8BD5                      mov edx,ebp 

 0041238A: 81EDD4A64000              sub ebp,0040A6D4		<--EBP=412388-40A6D4=7CB4

 00412390: FA                        cli 

 00412391: 58                        pop eax 

 00412392: 80E401                    and ah,01 

 00412395: 32C0                      xor al,al 

 00412397: BE09A74000                mov esi,0040A709 

 0041239C: 03F5                      add esi,ebp			<--ESI=7CB4+40A709=4123BD

 0041239E: B946160000                mov ecx,00001646 

 004123A3: 03F1                      add esi,ecx 

 004123A5: 4E                        dec esi 

 004123A6: 8A06                      mov al,byte ptr [esi] 

 004123A8: 324601                    xor al,byte ptr [esi+01] 

 004123AB: 8806                      mov byte ptr [esi],al 

 004123AD: 4E                        dec esi 

 004123AE: E2F6                      loop 004123A6			<--代码还原

 004123B0: FA                        cli 

 004123B1: 6681BD09A740009090        cmp word ptr [ebp+0040A709],9090	<--还原成功,则继续

 004123BA: 75FE                      jnz 004123BA 

 004123BC: 90                        nop 

 004123BD: 90                        nop 

 004123BE: 90                        nop 



[注:这是最后XOR还原得到的代码了,内容太多,我懒得加注释了,自己接和我以前的有关幻影的文章看吧]

 004123BF: 2B95CBB24000              sub edx,dword ptr [ebp+0040B2CB] 

 004123C5: 81EA87530000              sub edx,00005387 

 004123CB: 8995D3B24000              mov dword ptr [ebp+0040B2D3],edx 

 004123D1: E8D7120000                call 004136AD			<--加载DLL

 004123D6: 83F800                    cmp eax,00000000 

 004123D9: 7520                      jnz 004123FB 

 004123DB: B8C0B94000                mov eax,0040B9C0 

 004123E0: 03C5                      add eax,ebp 

 004123E2: BBC2B94000                mov ebx,0040B9C2 

 004123E7: 03DD                      add ebx,ebp 

 004123E9: 6A30                      push 00000030 

 004123EB: 50                        push eax 

 004123EC: 53                        push ebx 

 004123ED: 6A00                      push 00000000 

 004123EF: FF9500BC4000              call dword ptr [ebp+0040BC00]	<--失败,显示dial.dll未找到

 004123F5: FF956CBF4000              call dword ptr [ebp+0040BF6C]	<--退出



 004123FB: 8B8DF2B94000              mov ecx,dword ptr [ebp+0040B9F2] 

 00412401: 83C120                    add ecx,00000020 

 00412404: 51                        push ecx 

 00412405: 6A40                      push 00000040 

 00412407: 6800201000                push 00102000 

 0041240C: 51                        push ecx 

 0041240D: 6A00                      push 00000000 

 0041240F: FF95CBBB4000              call dword ptr [ebp+0040BBCB] 

 00412415: 59                        pop ecx 

 00412416: 6A40                      push 00000040 

 00412418: 6800101000                push 00101000 

 0041241D: 51                        push ecx 

 0041241E: 50                        push eax 

 0041241F: FF95CBBB4000              call dword ptr [ebp+0040BBCB]	<--申请内存

 00412425: 8BD0                      mov edx,eax 

 00412427: 8BF8                      mov edi,eax 

 00412429: BE4D534000                mov esi,0040534D 

 0041242E: 03F5                      add esi,ebp 

 00412430: 8B8DF2B94000              mov ecx,dword ptr [ebp+0040B9F2] 

 00412436: F3A4                      repe movsb es:[edi],ds:[esi]	<--搬家

 00412438: B893A74000                mov eax,0040A793 

 0041243D: 2D4D534000                sub eax,0040534D 

 00412442: 03C2                      add eax,edx 

 00412444: 50                        push eax 

 00412445: C3                        ret							<--到新地址继续

-----------------------以上一段分析完毕,加载DLL,申请内存并复制代码继续执行------------------------



 00412446: BF4D534000                mov edi,0040534D 

 0041244B: 03FD                      add edi,ebp 

 0041244D: 8B8DF2B94000              mov ecx,dword ptr [ebp+0040B9F2] 

 00412453: 32C0                      xor al,al 

 00412455: F3AA                      repe stosb es:[edi],al		<--灭迹

 

 00412457: E800000000                call 0041245C 

 0041245C: 5D                        pop ebp 

 0041245D: 81EDA9A74000              sub ebp,0040A7A9	<--EBP=41245C-40A7A9=7CB3

 00412463: BEDDA74000                mov esi,0040A7DD 

 00412468: 03F5                      add esi,ebp 

 0041246A: 6A00                      push 00000000 

 0041246C: 6A00                      push 00000000 

 0041246E: 6A00                      push 00000000 

 00412470: 6A00                      push 00000000 

 00412472: 6A00                      push 00000000 

 00412474: 6A00                      push 00000000 

 00412476: 56                        push esi 

 00412477: FF95A3BB4000              call dword ptr [ebp+0040BBA3] <--检查跟踪

 0041247D: 83F8FF                    cmp eax,FFFFFFFF 

 00412480: 7568                      jnz 004124EA 

 00412482: 46                        inc esi 

 00412483: 803E00                    cmp byte ptr [esi],00 

 00412486: 75FA                      jnz 00412482 

 00412488: 46                        inc esi 

 00412489: 803E00                    cmp byte ptr [esi],00 

 0041248C: 75DC                      jnz 0041246A 

 0041248E: EB5A                      jmp 004124EA 

---------------------以上一段代码分析完毕,检查跟踪--------------------------



**********************非代码区**************************

 00412490: 5C                        pop esp 

 00412491: 5C                        pop esp 

 00412492: 2E5C                      pop esp 

 00412494: 54                        push esp 

 00412495: 52                        push edx 

 00412496: 57                        push edi 

 00412497: 005C5C2E                  add byte ptr [esp+ebx*2+2E],bl 

 0041249B: 5C                        pop esp 

 0041249C: 54                        push esp 

 0041249D: 52                        push edx 

 0041249E: 57                        push edi 

 0041249F: 3230                      xor dh,byte ptr [eax] 

 004124A1: 3030                      xor byte ptr [eax],dh 

 004124A3: 005C5C2E                  add byte ptr [esp+ebx*2+2E],bl 

 004124A7: 5C                        pop esp 

 004124A8: 54                        push esp 

 004124A9: 52                        push edx 

 004124AA: 57                        push edi 

 004124AB: 44                        inc esp 

 004124AC: 45                        inc ebp 

 004124AD: 42                        inc edx 

 004124AE: 55                        push ebp 

 004124AF: 47                        inc edi 

 004124B0: 005C5C2E                  add byte ptr [esp+ebx*2+2E],bl 

 004124B4: 5C                        pop esp 

 004124B5: 52                        push edx 

 004124B6: 45                        inc ebp 

 004124B7: 47                        inc edi 

 004124B8: 56                        push esi 

 004124B9: 58                        pop eax 

 004124BA: 44                        inc esp 

 004124BB: 005C5C2E                  add byte ptr [esp+ebx*2+2E],bl 

 004124BF: 5C                        pop esp 

 004124C0: 4E                        dec esi 

 004124C1: 54                        push esp 

 004124C2: 49                        dec ecx 

 004124C3: 43                        inc ebx 

 004124C4: 45                        inc ebp 

 004124C5: 005C5C2E                  add byte ptr [esp+ebx*2+2E],bl 

 004124C9: 5C                        pop esp 

 004124CA: 53                        push ebx 

 004124CB: 49                        dec ecx 

 004124CC: 43                        inc ebx 

 004124CD: 45                        inc ebp 

 004124CE: 005C5C2E                  add byte ptr [esp+ebx*2+2E],bl 

 004124D2: 5C                        pop esp 

 004124D3: 56                        push esi 

 004124D4: 4B                        dec ebx 

 004124D5: 45                        inc ebp 

 004124D6: 59                        pop ecx 

 004124D7: 50                        push eax 

 004124D8: 52                        push edx 

 004124D9: 4F                        dec edi 

 004124DA: 44                        inc esp 

 004124DB: 005C5C2E                  add byte ptr [esp+ebx*2+2E],bl 

 004124DF: 5C                        pop esp 

 004124E0: 46                        inc esi 

 004124E1: 49                        dec ecx 

 004124E2: 4C                        dec esp 

 004124E3: 45                        inc ebp 

 004124E4: 56                        push esi 

 004124E5: 58                        pop eax 

 004124E6: 44                        inc esp 

 004124E7: 000000                    add byte ptr [eax],al 

*****************************非代码区结束******************************



 004124EA: 83F8FF					 cmp eax,FFFFFFFF

 004124ED: 7406						 jz 004124F5

 004124EF: FF956CBF4000              call dword ptr [ebp+0040BF6C]	<--有跟踪则退出



 004124F5: 60                        pushad							<--反跟踪

 004124F6: BE53BD4000                mov esi,0040BD53 

 004124FB: 03F5                      add esi,ebp 

 004124FD: 0F010E                    sidt dword ptr [esi] 

 00412500: 8B7602                    mov esi,dword ptr [esi+02] 

 00412503: 668B4608                  mov ax,word ptr [esi+08] 

 00412507: 66052302                  add ax,0223 

 0041250B: 66894608                  mov word ptr [esi+08],ax 

 0041250F: 668B460E                  mov ax,word ptr [esi+0E] 

 00412513: 668B5E06                  mov bx,word ptr [esi+06] 

 00412517: 663BC3                    cmp ax,bx 

 0041251A: 740E                      jz 0041252A 

 0041251C: 668B4608                  mov ax,word ptr [esi+08] 

 00412520: 668B5E18                  mov bx,word ptr [esi+18] 

 00412524: FA                        cli 

 00412525: 663BC3                    cmp ax,bx 

 00412528: 7400                      jz 0041252A 

 0041252A: 668B4608                  mov ax,word ptr [esi+08] 

 0041252E: 668B5E0E                  mov bx,word ptr [esi+0E] 

 00412532: 66898567BE4000            mov word ptr [ebp+0040BE67],ax 

 00412539: 66899D69BE4000            mov word ptr [ebp+0040BE69],bx 

 00412540: 668B4618                  mov ax,word ptr [esi+18] 

 00412544: 668B5E1E                  mov bx,word ptr [esi+1E] 

 00412548: 6689856BBE4000            mov word ptr [ebp+0040BE6B],ax 

 0041254F: 66899D6DBE4000            mov word ptr [ebp+0040BE6D],bx		<--对IDT的处理,反跟踪

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -