最近在看《加密与解密》第三版这本书,加壳那章感觉比较感兴趣,可是自己基础不好,还没有看完。我自己也试着动手一点一点的写,功能特别简单。我写的这个就不说了。因为简单么。就说说我自己想到的吧。

脱壳时很多时候都是用PEID查看是什么壳,如果查不出是什么壳,通常会根据加壳后的节名称来判断是什么壳。但是节的名称是可以任意改动的。这样,如果查不出是什么壳,又修改一下节的名称的话,就会误导脱壳者。这样也算是能起到一点保护的作用吧。所以,在写加壳软件的时候,不放先定义一些节的名称,然后在加壳时随机使用这些名称,每次加壳后产生的节名称就不同了。

代码:
;>>>>>>>>>不同的节的名称>>>>>>>>>>>>>>>>
NewSectionName  db  '.aspack',0
    db  '.vmp   ',0
    db  '.upx0  ',0
    db  'INIT   ',0
    db  '.mackt ',0
    db  '.upx1  ',0
    db  '       ',0
    db  'snyped ',0
    db  '.Katja ',0
    db  '.jtsnew',0
    db  '.SuCop0',0
……
        invoke  GetTickCount   
  xor  edx,edx   
  mov  ecx,0Bh
  div  ecx
  mov  eax,edx
  mov  ebx,08h
  mul  ebx
  mov  ebx,NewSectionName
  add  ebx,eax
  mov  NewSectionName,ebx
……
这种方法只能起到迷惑性的作用,起的作用不大。如果壳的功能不强大的话,这个基本上没什么用。

我是初学者,请不要笑我。