1. 程式人生 > >upx殼的一些簡單脫殼,望大牛勿噴。

upx殼的一些簡單脫殼,望大牛勿噴。

下面是我的脫殼。

手動脫殼

1.ESP定律法檢視通用暫存器ESP,資料視窗跟蹤。F8單步步入,F4禁止向上跳轉

2.單步跟蹤法F8單步跟蹤,遇CALL F7進入。直到到達OEP,經過多次F8,F4終於到達OEP了,恆大的第三課的跳轉好多,逢向上的跳轉,用F4

3.指令碼脫殼法這個不需多說了。

4.軟體脫殼法,此法完美脫殼,win7 x64下測試通過,正常執行,並且區段無upx0upx1

5.一步到達oep法,前輩總結的經驗。查詢POPAD,不要勾選整個塊。向下走幾步。就可以到達oep,適用於部分殼。POPAD 出棧。

6.記憶體映象法,經過兩次呼叫記憶體,然後在.risc處下斷點,最終到達

OEP記憶體   .rsrc    下斷    shift+F9     執行再記憶體CODE(資源)下斷再執行出來單步跟

以上方法,除了用脫殼機以外,用ollydump脫殼除錯程序,用方式一(在記憶體映象中搜索JMP[API]CALL[API])重建輸入表,後會提示,如下圖,可能與我x64有關。

如果用方式二(在脫殼檔案中搜索DLL&API名稱)的話,會提示

還有種方式Lordpe完,重建輸入表,我沒配置好工具,吾愛專版的不會用,未測試。

peid查殼後,發現ep段仍然有殘留。

UPX

UPX (the Ultimate Packer for eXecutables)

是一款先進的可執行程式檔案壓縮器,壓縮過的可執行檔案體積縮小50%-70% ,這樣減少了磁碟佔用空間、網路上傳下載的時間和其它分佈以及儲存費用。通過 UPX 壓縮過的程式和程式庫完全沒有功能損失和壓縮之前一樣可正常地執行,對於支援的大多數格式沒有執行時間或記憶體的不利後果。 UPX 支援許多不同的可執行檔案格式 包含 Windows95/98/ME/NT/2000/XP/CE 程式和動態連結庫、DOS 程式、 Linux 可執行檔案和核心。

基本介紹

UPX是一款先進的可執行程式檔案壓縮器。壓縮過的可執行檔案體積縮小50%-70% ,這樣減少了磁碟佔用空間、網路上傳下載的時間和其它分佈以及儲存費用。 通過 UPX 壓縮過的程式和程式庫

完全沒有功能損失,和壓縮之前一樣可正常地執行。對於支援的大多數格式沒有執行時間或記憶體的UPX不利後果。它支援許多不同的可執行檔案格式 :包含 Windows95/98/ME/NT/2000/XP/CE程式和動態連結庫、DOS 程式、Linux 可執行檔案和核心。

UPX有不光彩的使用記錄,它被用來給木馬和病毒加殼,躲避防毒軟體的查殺。

UPX是一個著名的壓縮殼,主要功能是壓縮PE檔案(比如exe,dll等檔案),有時候也可能被病毒用於免殺.殼upx是一種保護程式。一般是EXE檔案的一種外保護措施,主要用途 :

1、讓正規檔案被保護起來,不容易被修改和破解。

2、使檔案壓縮變小。

3、保護防毒軟體安裝程式,使之不受病毒侵害。

4、木馬,病毒的保護外殼,使之難以為攻破。 僅僅看一個殼upx路徑是不能確定什麼的。要仔細看看他相對應的檔案,如果是防毒或者是自己已知的檔案那就無傷大雅,要是其他疑似,就要認真對待了。

有些軟體的安裝程式是加殼安裝的,屬正常現象。建議查殺一下惡意程式、病毒。

技術原理

對於可執行程式資源壓縮,是保護檔案的常用手段. 俗稱加殼,加殼過的程式可以直接執行,但是不能檢視原始碼.要經過脫殼才可以檢視原始碼.

加殼:其實是利用特殊的演算法,對EXE、DLL檔案裡的資源進行壓縮。類似WINZIP的效果,只不過這個壓縮之後的檔案,可以獨立執行,解壓過程完全隱蔽,都在記憶體中完成。解壓原理,是加殼工具在檔案頭裡加了一段指令,告訴CPU,怎麼才能解壓自己。當加殼時,其實就是給可執行的檔案加上個外衣。使用者執行的只是這個外殼程式。當執行這個程式的時候這個殼就會把原來的程式在記憶體中解開,解開後,以後的就交給真正的程式。

應用平臺

壓縮檔案

用UPX壓縮過的可執行檔案體積縮小50%-70% ,這樣減少了磁碟佔用空間、網路上傳下載的時間和其它分佈以及儲存費用。 通過 UPX 壓縮過的程式和程式庫完全沒有功能損失和壓縮之前一樣可正常地執行,支援的大多數格式程式,沒有執行時間或記憶體的不利後果。

加殼脫殼

程式為了反跟蹤、被人跟蹤除錯、防止演算法程式被別人靜態分析就需要加殼。使用加殼軟體加密程式碼和資料,就可以保護你程式資料的完整性,防止被程式修改和被窺視內幕。

版權資訊

Copyright (C) 1996-2007 Markus Franz Xaver Johannes OberhumerCopyright (C)1996-2007 Laszlo MolnarCopyright (C) 2000-2007 John F. ReiserAll RightsReserved.This program may be used freely, and you are welcome toredistribute itunder certain conditions.This program is distributed in the hope that it willbe useful,but WITHOUT ANY WARRANTY; without even the implied warrantyofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theUPX LicenseAgreement for more details.

使用例項

Netscape 4.06

win32/pe

netscape.exe

2,934,336

1,124,352

0.383

Descent 2

watcom/le

descent2.exe

1,448,873

652,832

0.451

MAME 0.36

djgpp2/coff

mame.exe

8,214,016

1,810,056

0.220

OneOhOne

dos/exe

101.exe

438,144

179,566

0.410

Emacs 20.2

linux/386

emacs-20.2

2,772,657

925,543

0.334

g++ 2.8.1

atari/tos

cc1plus.ttp

1,595,049

655,508

0.411

相關軟體

Upx it

Upx-shell

簡單實用的程式壓縮、解壓縮利器,壓縮率高,支援EXECOMDLLSYSOCX等多種檔案格式的壓縮。海峰電腦家園製作,製作時,採用官方多語言原版,修正使用中文語言包時的顯示錯誤,由於是使用語言包漢化的,第一次使用的時候,需要點選Options欄,在Select youlanguaga下拉選單中選擇簡體中文。

Freeupx

Free UPX 是 UPX 的圖形化外殼工具,比純粹的 UPX 更友好、更易於使用。較其他外殼程式,此工具的可選引數更多。個人感覺,壓縮,解壓縮也更穩定。

Free UPX 是一個非常全面的可執行檔案壓縮軟體,用於壓縮和解壓縮微軟可移植可執行程式以及COFF規則的EXE, DLL, OCX, BPL, CPL 等,它為 DOS 版的 UPX 提供友好的使用介面,並增加不少的新的引數與功能,簡單易用。

請注意!反覆壓縮、解壓縮同一個檔案,容易出現“未發現檔案”的錯誤,這個並不是漢化的原因,原版也同樣有這樣的問題;UPX 在處理檔案的時候要更改檔案的名稱,在出現上述錯誤時,檢視檔案所在目錄是否有以.000 或 .UPX 為副檔名的檔案,將其改為原副檔名稱再次處理就好了。

Upxtool+

本文出自 “獨步清風” 部落格,請務必保留出處

相關推薦

upx一些簡單

下面是我的脫殼。 手動脫殼 1.ESP定律法檢視通用暫存器ESP,資料視窗跟蹤。F8單步步入,F4禁止向上跳轉 2.單步跟蹤法F8單步跟蹤,遇CALL F7進入。直到到達OEP,經過多次F8,F4終於到達OEP了,恆大的第三課的跳轉好多,逢向上的跳轉,用F4。 3

簡單教程筆記(2)---手UPX(1)

       本筆記是針對ximo早期發的脫殼基礎視訊教程,整理的筆記。        ximo早期發的脫殼基礎視訊教程 下載地址如下:            http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%

簡單教程筆記(1) --- 常見語言的入口點

      殼的分類:壓縮殼、加密殼                          壓縮的目的是減少程式體積,如ASPack、UPX、PECompact等。                          加密是為了防止程式被跟蹤和除錯,如ASProtect、幻影  

簡單教程筆記(6)---手FSG

          本筆記是針對ximo早期發的脫殼基礎視訊教程,整理的筆記。本筆記用到的工具下載地址: http://download.csdn.net/detail/obuyiseng/9466056 簡介: FSG殼是一款壓縮殼。 工具:ExeinfoPE或P

簡單教程筆記(4)---手ASPACK

           本筆記是針對ximo早期發的脫殼基礎視訊教程,整理的筆記。        ximo早期發的脫殼基礎視訊教程 下載地址如下:            http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7%A0%B4

Android so加固的簡單

Android應用的so庫檔案的加固一直存在,也比較常見,特地花時間整理了一下Android so庫檔案加固方面的知識。本篇文章主要是對看雪論壇《簡單的so脫殼器》這篇文章的思路和程式碼的分析,很久之前就閱讀過這篇文章但是一直沒有時間來詳細分析它的程式碼,最近比較有空來

簡單教程筆記(9) --- 手TELock0.98b1

1.最後一次異常法 1、選項---》除錯設定---》異常------取消所有異常。在OD外掛--StrongOD--Options--Skip Some Exceptions選項取消,重啟OD再試試。 2、然後將程式重新載入 3、按shift+f9 ,發現17次shift+f9 就會讓程式跑起來了, 

簡單的使用定時器實現按鍵消抖寫得不好大家給指點一二多謝了

/******************************** 按獨立按鍵使數碼管加1 ********************************/ #include <reg52.h> #define uchar unsigned char sbit

Android SO 加(加密)與思路

   0x01 常見的Android SO加殼(加密)思路    1.1 破壞Elf Header    將Elf32_Ehdr 中的e_shoff, e_shnum, e_shstrndx, e_shentsize欄位處理,變為無效值。由於在連結過程中,這些欄位是無用的,所

總結Themida / Winlicense加軟體的方法

   1, 檢視殼版本,這個方法手動也可以,因為這個殼的版本號是寫在程式裡面的,在解壓後下斷點即可檢視,這裡有通用的指令碼,我就不再羅嗦了,跟著指令碼學吧,使用方法很簡單,直接執行指令碼即可。(指令碼我也已傳在資源中,可在文章結尾獲得下載地址)     2,對於 Ve

查詢sql limit用法神指教

執行 left join pro span ide _id tween 執行時間 不知道 mysql 中使用了連接查詢,但是使用 limit 後查詢時間反而更長了,沒弄明白什麽原因,sql 如下 SELECT `t`.* FROM `order_main`

簡單小例子BOOTSTRAP+VUE實現購物車功能

看了vue的helloworld,試手做了個小例子。歡迎大家討論!<!DOCTYPE html> <html> <head> <meta charset="uft-8"> <title>shopCar<

一些發自肺腑的話希望能與大家共勉

資助工作做了也有一段時間了,慢慢積累中也有了些許感悟,深夜突發奇想,想說些什麼,希望能與大家共勉吧。我們中很多人家境並不好,有的人含著金鑰匙出生,稍差一點的,父母已經給準備好一套甚至幾套房子。然而,可

解析數據庫以及SQL註入

min 數據結構 了解 sql語句 我只 md5 服務 pass 進行 1.什麽是數據庫? 數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,

程式設計師和IT從業者不能錯過的10個工具技術都在用

導讀:每個行業都有相應的工具和軟體。比起普通程式設計師,一個優秀的程式設計師應該能夠熟練掌握那些強大和高階的工具。   但是有些工具是每個軟體開發人員都應該熟悉的,在本文中我將介紹程式設計師和 IT 人員不能錯過的10個基本工具。  

將給定非負整數列表中的數字排列成最數字的2種方法例如給定[5021,9]數字為95021

一、題目簡介 編寫一個能將給定非負整數列表中的數字排列成最大數字的函式。例如,給定[50,2,1,9],最大數字為95021。 此處以如下陣列為例:Integer[] num=new Integer[]{51,9,370,82,4,796}; 二、例項程式碼 1、方法一: /

人狠話不多細說直播SDK之RTMP播放器和RTSP播放器

 Windows/Android/iOS平臺高穩定、超低延遲的跨平臺RTMP直播播放器;  Windows/Android/iOS平臺高穩定、超低延遲的跨平臺RTSP直播播放器;  Windows/Android/iOS平臺完美支援多例項播放(如同時播放多路rtmp/rtsp流);  Windows/A

新手上路C++連結串列的建立遍歷刪除插入等等

//list.h #pragma once template<typename T>class slistNode { public:  slistNode() { next = nullptr; cout << "呼叫了slistnode的建構函式

如果使用程式設計判斷閏年和平年

               *舉例如下:1900年能被4整除,但是因為其是100的整數倍,卻不能被400整除,所以是平年;而2000年就是閏年;      *同時滿足以

最小點覆蓋最小邊覆蓋匹配最小路徑覆蓋獨立集總結

如果沒有申明是什麼圖預設是二分圖 最小點覆蓋: 點覆蓋的概念定義: 對於圖G=(V,E)中的一個點覆蓋是一個集合S⊆V使得每一條邊至少有一個端點在S中。 最小點覆蓋:就是中點的個數最少的S集