首页
社区
课程
招聘
北斗程序压缩(nSpack)
发表于: 2005-6-4 19:19 5814

北斗程序压缩(nSpack)

2005-6-4 19:19
5814
北斗程序压缩(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期)

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 319
活跃值: (1081)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
恩,一直都用它
2005-6-4 21:37
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
3
晕,fly 盗版啊?
2005-6-4 22:04
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
没,哪里话,fly用的virtualprotect下面的跳转在这个版好像不行。另外,破解好像也不仅仅是个标志位,也可能是我找错了地方
2005-6-5 09:17
0
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 aki 发布
没,哪里话,fly用的virtualprotect下面的跳转在这个版好像不行。另外,破解好像也不仅仅是个标志位,也可能是我找错了地方
破解只要把
算法call里面改成
mov eax,1
retn
就可以了
2005-6-5 09:29
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
呵呵,这么说就对了,应该跟自校验一样,fly说改个标志位,不知是不是版本的问题
2005-6-5 09:43
0
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最初由 aki 发布
呵呵,这么说就对了,应该跟自校验一样,fly说改个标志位,不知是不是版本的问题


他说的改标志位 就是这个意思啊


mov eax,1
retn
2005-6-5 09:54
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
晕,我还以为是
cmp byte[458236],1
这种呢!
2005-6-5 10:02
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
9
最初由 aki 发布
没,哪里话,fly用的virtualprotect下面的跳转在这个版好像不行。另外,破解好像也不仅仅是个标志位,也可能是我找错了地方


帖子里面有V2.3的脱壳方法
方法如果没有测试通过我是不会释放的
2005-6-5 11:27
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
最初由 fly 发布


帖子里面有V2.3的脱壳方法
方法如果没有测试通过我是不会释放的

不好意思,给fly添麻烦了
2005-6-5 21:39
0
游客
登录 | 注册 方可回帖
返回
//