北斗程序压缩(nSpack)V2.3脱壳
下载页面: http://www.nsdsn.com/intr.htm
软件大小: 296k
软件简介: 首款国产(Windows95/98/2000/NT/XP/2003)EXE、DLL、OCX等PE文件压缩工具,通过压缩代码、数据、相关资源使压缩能达到60-70%。能够处理32位和64位的可执行文件(exe,dll,ocx)。可以很好的处理程序的代码、数据、资源节。可以压缩C#.net的可执行文件。界面更加美观漂亮,内核更加高效,兼容性更好。压缩后的程序在网络上可减少程序的加载和下载时间。完全支持常用压缩软件如:upx,aspack,pecompact等压缩过的程序上再次进行压缩。独有的最大压缩方式,使得程序体积变得更小。支持目录和多文件的压缩操作。
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教
【调试环境】:WinXP、OllyDbg、PEiD、LordPE、ImportREC
设置od不忽略除零异常
停在这里
004DC681 F7F2 div edx
004DC683 64:8F05 00000000 pop dword ptr fs:[0]
004DC68A 83C4 04 add esp,4
004DC68D 61 popad
004DC68E EB 47 jmp short NSPACK.004DC6D7
004DC690 64:8F05 00000000 pop dword ptr fs:[0]
004DC697 83C4 04 add esp,4
004DC69A 61 popad
004DC69B EB 3A jmp short NSPACK.004DC6D7
004DC69D 53 push ebx
004DC69E E8 00000000 call NSPACK.004DC6A3
004DC6A3 5B pop ebx
堆栈
0012FF78 0012FFE0 指针到下一个 SEH 记录
0012FF7C 004DC69D SE 句柄
0012FF80 77F944A8 返回到 ntdll.77F944A8 来自 ntdll.77FA558D
0012FF84 004DC248 NSPACK.004DC248
0012FF88 004DC61A 返回到 NSPACK.004DC61A 来自 NSPACK.004DD8A6
0012FF8C 0012FFA0
在 004DC69D下断点,shift+f9停下
往后脱,知道看到
004DC8F9 50 push eax
004DC8FA FF95 5AFCFFFF call dword ptr ss:[ebp-3A6]
004DC900 5A pop edx
004DC901 5B pop ebx
004DC902 59 pop ecx
004DC903 5E pop esi
004DC904 83C3 0C add ebx,0C
004DC907 ^ E2 E1 loopd short NSPACK.004DC8EA
004DC909 61 popad
004DC90A 9D popfd
004DC90B ^ E9 58F0F6FF jmp NSPACK.0044B968 //跳到oep
004DC910 8BB5 EAFBFFFF mov esi,dword ptr ss:[ebp-416]
004DC916 0BF6 or esi,esi
来到入口
0044B968 55 push ebp
0044B969 8BEC mov ebp,esp
0044B96B 6A FF push -1
0044B96D 68 18FE4600 push NSPACK.0046FE18
0044B972 68 E0A24400 push NSPACK.0044A2E0
0044B977 64:A1 00000000 mov eax,dword ptr fs:[0]
0044B97D 50 push eax
0044B97E 64:8925 00000000 mov dword ptr fs:[0],esp
0044B985 83EC 58 sub esp,58
0044B988 53 push ebx
0044B989 56 push esi
0044B98A 57 push edi
0044B98B 8965 E8 mov dword ptr ss:[ebp-18],esp
0044B98E FF15 70A24600 call dword ptr ds:[46A270] ; kernel32.GetVersion
0044B994 33D2 xor edx,edx
搞定自校验
0040D3B0 /$ 51 push ecx
0040D3B1 |. A1 203D4800 mov eax,dword ptr ds:[483D20]
0040D3B6 |. 53 push ebx
0040D3B7 |. 56 push esi
0040D3B8 |. 57 push edi
0040D3B9 |. 8B48 3C mov ecx,dword ptr ds:[eax+3C]
0040D3BC |. 8B3D 2F3D4800 mov edi,dword ptr ds:[483D2F]
0040D3C2 |. 8D5401 04 lea edx,dword ptr ds:[ecx+eax+4]
0040D3C6 |. 33C0 xor eax,eax
0040D3C8 |. 66:8B42 10 mov ax,word ptr ds:[edx+10]
0040D3CC |. 8B72 24 mov esi,dword ptr ds:[edx+24]
0040D3CF |. 8D4A 14 lea ecx,dword ptr ds:[edx+14]
0040D3D2 |. 03C1 add eax,ecx
0040D3D4 |. 3BFE cmp edi,esi
0040D3D6 |. 0F85 BE000000 jnz dumped_.0040D49A
0040D3DC |. 66:8B1D 283D48>mov bx,word ptr ds:[483D28]
0040D3E3 |. 66:3B5A 02 cmp bx,word ptr ds:[edx+2]
0040D3E7 |. 0F85 AD000000 jnz dumped_.0040D49A
0040D3ED |. 8B15 333D4800 mov edx,dword ptr ds:[483D33]
0040D3F3 |. 8B79 68 mov edi,dword ptr ds:[ecx+68]
0040D3F6 |. 3BD7 cmp edx,edi
0040D3F8 |. 0F85 9C000000 jnz dumped_.0040D49A
0040D3FE |. 8B15 373D4800 mov edx,dword ptr ds:[483D37]
0040D404 |. 8B79 70 mov edi,dword ptr ds:[ecx+70]
0040D407 |. 3BD7 cmp edx,edi
0040D409 |. 0F85 8B000000 jnz dumped_.0040D49A
0040D40F |. 8B51 24 mov edx,dword ptr ds:[ecx+24]
0040D412 |. 8B48 14 mov ecx,dword ptr ds:[eax+14]
0040D415 |. 3BCA cmp ecx,edx
0040D417 |. 895424 0C mov dword ptr ss:[esp+C],edx
0040D41B |. 77 7D ja short dumped_.0040D49A
0040D41D |. 8B78 3C mov edi,dword ptr ds:[eax+3C]
0040D420 |. 8D48 28 lea ecx,dword ptr ds:[eax+28]
0040D423 |. 3BFA cmp edi,edx
0040D425 |. 75 73 jnz short dumped_.0040D49A
0040D427 |. 33FF xor edi,edi
0040D429 |. 55 push ebp
0040D42A |. 66:85DB test bx,bx
0040D42D |. 76 1D jbe short dumped_.0040D44C
0040D42F |> 8B50 0C /mov edx,dword ptr ds:[eax+C]
0040D432 |. 3BF2 |cmp esi,edx
0040D434 |. 72 09 |jb short dumped_.0040D43F
0040D436 |. 8B68 08 |mov ebp,dword ptr ds:[eax+8]
0040D439 |. 03EA |add ebp,edx
0040D43B |. 3BF5 |cmp esi,ebp
0040D43D |. 72 0B |jb short dumped_.0040D44A
0040D43F |> 83C0 28 |add eax,28
0040D442 |. 47 |inc edi
0040D443 |. 66:3BFB |cmp di,bx
0040D446 |.^ 72 E7 \jb short dumped_.0040D42F
0040D448 |. EB 02 jmp short dumped_.0040D44C
0040D44A |> 8BC8 mov ecx,eax
0040D44C |> 8B4424 10 mov eax,dword ptr ss:[esp+10]
0040D450 |. 8B51 14 mov edx,dword ptr ds:[ecx+14]
0040D453 |. 3BD0 cmp edx,eax
0040D455 |. 5D pop ebp
0040D456 |. 73 1F jnb short dumped_.0040D477
0040D458 |. 8B51 0C mov edx,dword ptr ds:[ecx+C]
0040D45B |. 8BC6 mov eax,esi
0040D45D |. 2BC2 sub eax,edx
0040D45F |. 74 16 je short dumped_.0040D477
0040D461 |. 8B0D 203D4800 mov ecx,dword ptr ds:[483D20] ; dumped_.00400000
0040D467 |. 803C08 E9 cmp byte ptr ds:[eax+ecx],0E9
0040D46B |. 75 0C jnz short dumped_.0040D479
0040D46D |. 8B4C08 01 mov ecx,dword ptr ds:[eax+ecx+1]
0040D471 |. 8D4431 05 lea eax,dword ptr ds:[ecx+esi+5]
0040D475 |. EB 02 jmp short dumped_.0040D479
0040D477 |> 8BC6 mov eax,esi
0040D479 |> 8B15 203D4800 mov edx,dword ptr ds:[483D20] ; dumped_.00400000
0040D47F |. B9 05000000 mov ecx,5
0040D484 |. BF 2A3D4800 mov edi,dumped_.00483D2A
0040D489 |. 8D3410 lea esi,dword ptr ds:[eax+edx]
0040D48C |. 33D2 xor edx,edx
0040D48E |. F3:A6 repe cmps byte ptr es:[edi],byte ptr ds:[esi]
0040D490 |. 8BC2 mov eax,edx
0040D492 |. 5F pop edi
0040D493 |. 5E pop esi
0040D494 |. 5B pop ebx
0040D495 |. 0F94C0 sete al
0040D498 |. 59 pop ecx
0040D499 |. C3 retn
0040D49A |> 5F pop edi
0040D49B |. 5E pop esi
0040D49C |. 33C0 xor eax,eax
0040D49E |. 5B pop ebx
0040D49F |. 59 pop ecx
0040D4A0 \. C3 retn
0040D4A1 90 nop
改为
mov eax,1
ret
注册破解与自校验差不多,各位自己找找吧
感觉这个软件确实比Aspack和UPX要强许多,特别是被脱壳的程序也能被再压缩,而这是别的压缩程序很难做到的。
国产精品,支持。
--------------------------------------
by aki
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)