天天看點

為使用Sixxpack加殼的.net程式脫殼 - 隐客

今天看到一個程式,用萬能的reflector 看了一下,竟然隻有一個actmp.dll ,如何谷歌了一下,發現是用的一款叫Sixxpack進行了壓縮和加殼

網上有人說非常安全,那個寒...

說一下脫殼的過程

一、用reflector 直接輸出項目

二、打開項目,編譯,會有一些類型的小錯誤,修正一下

三、修改一行代碼

   Stream

stream2

= new FileStream(Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf(\'\\\') + 1), FileMode.Open, FileAccess.Read);

  改成:

  Stream stream2 = new FileStream(@"c:\hhh.exe", FileMode.Open, FileAccess.Read);  //這個路徑指的是那個被加殼的程式

四、加一行代碼 

  在這行之前:Assembly assembly = Assembly.Load(compressor.Decompress(inStream));

  加上:System.IO.File.WriteAllBytes(@"c:\test.exe", compressor.Decompress(inStream));要不要retrun,自己看着辦

五、c:\test.exe 就是被脫殼的程式了。

結論:

1、該種方法就是将原程式寫在固定程式的尾部,加了之後,是不會影響固定程式的運作的,好像N多年前搞VB的時候,玩過這種方法,包括現在很多flash檔案的exe形式,也是這樣的

2、固定檔案的大小是固定,像上面的這個就是 internal static int orig = 0xa000; 

3、在加到尾部之前,使用了7-zip進行了壓縮!(該代碼可以好好用下)

4、上面的方法很爛!!!

5、要保護.net代碼還是建議大家使用混淆名稱和混淆流程的保護軟體,reflector自己的對立軟體就不錯,真的是矛和盾啊!!

為使用Sixxpack加殼的.net程式脫殼 - 隐客