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

📄 crack32.txt

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



[作者]:    ljttt

[日期]:    2000-09-15



 以上是一段被我处理掉的代码,从这里开始分析

 

 00013381: 5E                        pop esi 

 00013382: E800000000                call 00013387 		<---JMP

 00013387: 5D                        pop ebp 			<---获得 EBP = 413387

 00013388: 8BD5                      mov edx,ebp 

 ***********说明以后的一段代码常以EBP做为基地址**************

 0001338A: 81EDD4A64000              sub ebp,0040A6D4 	<---EBP=413387-40A6D4 = 8CB3



 00013390: FA                        cli 

 00013391: 58                        pop eax 

 00013392: 80E401                    and ah,01 

 00013395: 32C0                      xor al,al 

 00013397: BE09A74000                mov esi,0040A709 

 0001339C: 03F5                      add esi,ebp 

 0001339E: B946160000                mov ecx,00001646 

 000133A3: 03F1                      add esi,ecx 

 000133A5: 4E                        dec esi 

 000133A6: 90                        nop 

 000133A7: 90                        nop 

 000133A8: 90                        nop 

 000133A9: 90                        nop 

 000133AA: 90                        nop 

 000133AB: 90                        nop 

 000133AC: 90                        nop 

 000133AD: 90                        nop 

 000133AE: 90                        nop 

 000133AF: 90                        nop 

 000133B0: FA                        cli 

 000133B1: 6681BD09A740009090        cmp word ptr [ebp+0040A709],9090 

 000133BA: 75FE                      jnz 000133BA 

 000133BC: 90                        nop 

 000133BD: 90                        nop 

 000133BE: 90                        nop 

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

 000133C5: 81EA87530000              sub edx,00005387 

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

********此处调用加载各个函数库****************** ID:CALL000146AD

 000133D1: E8D7120000                call 000146AD 						<---加载函数库

 000133D6: 83F800                    cmp eax,00000000 

 000133D9: 7520                      jnz 000133FB 						<---成功跳走

****************显示Dial.dll加载失败,并退出程序

 000133DB: B8C0B94000                mov eax,0040B9C0 

 000133E0: 03C5                      add eax,ebp 

 000133E2: BBC2B94000                mov ebx,0040B9C2 

 000133E7: 03DD                      add ebx,ebp 

 000133E9: 6A30                      push 00000030 

 000133EB: 50                        push eax 

 000133EC: 53                        push ebx 

 000133ED: 6A00                      push 00000000 

 000133EF: FF9500BC4000              call dword ptr [ebp+0040BC00] 		<---MessageBoxA

 000133F5: FF956CBF4000              call dword ptr [ebp+0040BF6C] 		<---ExitProcess

                                                

                                               

 000133FB: 8B8DF2B94000              mov ecx,dword ptr [ebp+0040B9F2] 	<---跳到此处

********申请内存**********

 00013401: 83C120                    add ecx,00000020 

 00013404: 51                        push ecx 

 00013405: 6A40                      push 00000040 

 00013407: 6800201000                push 00102000 

 0001340C: 51                        push ecx 

 0001340D: 6A00                      push 00000000 

 0001340F: FF95CBBB4000              call dword ptr [ebp+0040BBCB] 		<---VirtualAlloc

 00013415: 59                        pop ecx 

*************申请内存**********

 00013416: 6A40                      push 00000040 

 00013418: 6800101000                push 00101000 

 0001341D: 51                        push ecx 

 0001341E: 50                        push eax 

 0001341F: FF95CBBB4000              call dword ptr [ebp+0040BBCB] 		<---VirtualAlloc

 00013425: 8BD0                      mov edx,eax 

 00013427: 8BF8                      mov edi,eax 

************搬家***************

 00013429: BE4D534000                mov esi,0040534D 

 0001342E: 03F5                      add esi,ebp 

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

 00013436: F3A4                      repe movsb es:[edi],ds:[esi]   	<----复制到新位置

 00013438: B893A74000                mov eax,0040A793 

 0001343D: 2D4D534000                sub eax,0040534D 

 00013442: 03C2                      add eax,edx 

 00013444: 50                        push eax 

 00013445: C3                        ret						<----到新地址执行下面的语句



*******把原来地方的代码清零*************

 00013446: BF4D534000                mov edi,0040534D 

 0001344B: 03FD                      add edi,ebp 

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

 00013453: 32C0                      xor al,al 

 00013455: F3AA                      repe stosb es:[edi],al 	<----把原来的位置的内容清零

*******取新的EBP值,以后许多地方以EBP为基地址*********

 00013457: E800000000                call 0001345C 				<---JMP语句

 0001345C: 5D                        pop ebp 					<---EBP = 41345C

 0001345D: 81EDA9A74000              sub ebp,0040A7A9 			<---EBP = 41345C-40A7A9 = 8CB3

************以下是一段检测跟踪的代码************

 00013463: BEDDA74000                mov esi,0040A7DD 

 00013468: 03F5                      add esi,ebp 

 0001346A: 6A00                      push 00000000 

 0001346C: 6A00                      push 00000000 

 0001346E: 6A00                      push 00000000 

 00013470: 6A00                      push 00000000 

 00013472: 6A00                      push 00000000 

 00013474: 6A00                      push 00000000 

 00013476: 56                        push esi 

 00013477: FF95A3BB4000              call dword ptr [ebp+0040BBA3]	<----CreateFileA

 0001347D: 83F8FF                    cmp eax,FFFFFFFF 

 00013480: 7568                      jnz 000134EA 					<----判断是否发现跟踪

 00013482: 46                        inc esi 

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

 00013486: 75FA                      jnz 00013482 

 00013488: 46                        inc esi 

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

 0001348C: 75DC                      jnz 0001346A 

 0001348E: EB5A                      jmp 000134EA 					<----跳走

 

 *******************这里不是代码区*******************

 00013490: 5C                        pop esp 

 00013491: 5C                        pop esp 

 00013492: 2E5C                      pop esp 

 00013494: 54                        push esp 

 00013495: 52                        push edx 

 00013496: 57                        push edi 

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

 0001349B: 5C                        pop esp 

 0001349C: 54                        push esp 

 0001349D: 52                        push edx 

 0001349E: 57                        push edi 

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

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

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

 000134A7: 5C                        pop esp 

 000134A8: 54                        push esp 

 000134A9: 52                        push edx 

 000134AA: 57                        push edi 

 000134AB: 44                        inc esp 

 000134AC: 45                        inc ebp 

 000134AD: 42                        inc edx 

 000134AE: 55                        push ebp 

 000134AF: 47                        inc edi 

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

 000134B4: 5C                        pop esp 

 000134B5: 52                        push edx 

 000134B6: 45                        inc ebp 

 000134B7: 47                        inc edi 

 000134B8: 56                        push esi 

 000134B9: 58                        pop eax 

 000134BA: 44                        inc esp 

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

 000134BF: 5C                        pop esp 

 000134C0: 4E                        dec esi 

 000134C1: 54                        push esp 

 000134C2: 49                        dec ecx 

 000134C3: 43                        inc ebx 

 000134C4: 45                        inc ebp 

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

 000134C9: 5C                        pop esp 

 000134CA: 53                        push ebx 

 000134CB: 49                        dec ecx 

 000134CC: 43                        inc ebx 

 000134CD: 45                        inc ebp 

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

 000134D2: 5C                        pop esp 

 000134D3: 56                        push esi 

 000134D4: 4B                        dec ebx 

 000134D5: 45                        inc ebp 

 000134D6: 59                        pop ecx 

 000134D7: 50                        push eax 

 000134D8: 52                        push edx 

 000134D9: 4F                        dec edi 

 000134DA: 44                        inc esp 

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

 000134DF: 5C                        pop esp 

 000134E0: 46                        inc esi 

 000134E1: 49                        dec ecx 

 000134E2: 4C                        dec esp 

 000134E3: 45                        inc ebp 

 000134E4: 56                        push esi 

 000134E5: 58                        pop eax 

 000134E6: 44                        inc esp 

 000134E7: 0000                      add byte ptr [eax],al 

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



**************判断检测的结果************* 

 000134E9: 0083F8FF7406              add byte ptr [ebx+0674FFF8],al 	<---跳转,不跳就死定了

***********退出程序

 000134EF: FF956CBF4000              call dword ptr [ebp+0040BF6C] 		<---ExitProcess



***********这是一段反跟踪的代码****************** 

 000134F5: 60                        pushad  							<---跳到此处

 000134F6: BE53BD4000                mov esi,0040BD53					

 000134FB: 03F5                      add esi,ebp 

 000134FD: 0F010E                    sidt dword ptr [esi]				<---获取IDTR内容 

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

 00013503: 668B4608                  mov ax,word ptr [esi+08] 			<---取int 1的低位偏移

 00013507: 66052302                  add ax,0223 						<---计算新值

 0001350B: 66894608                  mov word ptr [esi+08],ax 			<---保存int 1新偏移值

 0001350F: 668B460E                  mov ax,word ptr [esi+0E] 			<---取int 1的高位偏移

 00013513: 668B5E06                  mov bx,word ptr [esi+06] 			<---取int 0的高位偏移

 00013517: 663BC3                    cmp ax,bx 							<---是否相等

 0001351A: 740E                      jz 0001352A 						<---相等则跳转

 0001351C: 668B4608                  mov ax,word ptr [esi+08] 			<---取int 1的低位偏移

 00013520: 668B5E18                  mov bx,word ptr [esi+18] 			<---取int 3的低位偏移

 00013524: FA                        cli 

 00013525: 663BC3                    cmp ax,bx 							<---判断是否相等

 00013528: 7400                      jz 0001352A 						<---相等则跳转

 0001352A: 668B4608                  mov ax,word ptr [esi+08] 			<---取int 1的低位偏移

 0001352E: 668B5E0E                  mov bx,word ptr [esi+0E] 			<---取int 1的高位偏移

 00013532: 66898567BE4000            mov word ptr [ebp+0040BE67],ax 	<---保存

 00013539: 66899D69BE4000            mov word ptr [ebp+0040BE69],bx 	<---保存

 00013540: 668B4618                  mov ax,word ptr [esi+18] 			<---取int 3的低位偏移

 00013544: 668B5E1E                  mov bx,word ptr [esi+1E] 			<---取int 3的高位偏移

 00013548: 6689856BBE4000            mov word ptr [ebp+0040BE6B],ax 	<---保存

 0001354F: 66899D6DBE4000            mov word ptr [ebp+0040BE6D],bx 	<---保存

**************保存EBP的值

 00013556: 89AD65BD4000              mov dword ptr [ebp+0040BD65],ebp 

**************保存ReadProcessMemory的首地址

 0001355C: 8B85C7BB4000              mov eax,dword ptr [ebp+0040BBC7]   <---取ReadProcessMemory的首地址

 00013562: 89856FBE4000              mov dword ptr [ebp+0040BE6F],eax 	<---保存

**************这里是一段反跟踪代码******************

 00013568: E8A9140000                call 00014A16 						<---这里又是一段SIDT代码

**************开始分析注册情况********************** 

 0001356D: BB63BD4000                mov ebx,0040BD63 

 00013572: 03DD                      add ebx,ebp 

 00013574: 53                        push ebx 

 00013575: 6A64                      push 00000064 

 00013577: 6A63                      push 00000063 

 00013579: 6A00                      push 00000000 

 0001357B: FF9508BC4000              call dword ptr [ebp+0040BC08]		<---SetTimer 

⌨️ 快捷键说明

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