第五課 實戰北斗及UPACK

2022-02-26 14:03:05 字數 1211 閱讀 6204

第五課 實戰北斗及upack

今天要講兩個壓縮殼,乙個是upack,乙個是nspack(這即是北斗殼了。)

這兩個殼在木馬程式加壓縮殼的時候非常常見。還是那句老話,壓縮殼永遠是壓縮殼,所以大家不需要害怕。下面直接看操作吧。

一: 例項之upack殼

1.用od載入,如果有提示是否分析**,就點「 不分析**!」

2.f8單步向下跟蹤除錯,沒有實現的向上的跳,向下的跳都可以步過,阻止實現的向上的跳。

3.遇到會跑飛的call我們就f7步入。

(也即是近call:1,離程式入口點近的call;2,跳轉的距離短的call)

btw:遇到程式無法向下跟蹤除錯的時候,在附近(上下均可)找乙個(向下的)大跳轉(跳的大小可以看線的長度(指段內轉移),段間的跳點選彙編**在資訊視窗就可以看到它要跳向的位址,注:沒有線的),f4執行到該跳,然後右鍵→跟隨(或者回車)到達跟隨的位址按f2下斷點,然後shift+f9(忽略異常執行)執行到跟隨的位址,然後再f2取消斷點,接著就可以f8繼續單步除錯了。

反思:為什麼會跑飛?為什麼要在附近找乙個大的跳轉?

個人人為之所以在單步跟蹤的時候會跑飛有,兩種可能性:(我就想到兩種)

1,當前位置已經是跟過頭了,超過了oep,當然程式會執行起來。

2,由於我們下的斷點的位置不對,比如:在在設定ss:sp聯合指向棧頂是,這是乙個特殊的中斷cpu是不會立刻響應我們的中端的,當然在cpu的機制中像這種不被立刻響應的特殊中斷並不是僅此一例的,還有很多。還有像你把斷點設在了nop上也是會跑飛的(這時候可以再nop的下一行f4了)。

3.其他可能導致異常的情況。

關於跟隨:就是跟進去看**,並不執行。如果我們按f8的話也會跟進去,但是它也同執行到位了。

二: 例項之nspack殼(北斗)

1.用od載入,如果有提示是否分析**,就點「 不分析**!」

2.f8單步向下跟蹤除錯,沒有實現的向上的跳,向下的跳都可以步過,阻止實現的向上的跳。

3.遇到會跑飛的call我們就f7步入。

個人覺得:esp的原理是:因為殼程式在解壓完畢後還是要把cs:ip設為指向oep,所以一開始它就必須儲存ip和cs,所以殼入口點一開始就出現的esp多半就是它在儲存oep的cs和ip資料。有同學可能會問pushf,pushad沒有儲存cs和ip的功能麼?答案是的確是的,pushf和pushad只提供了儲存標誌暫存器的功能,所以要另外儲存cs和ip,

但儲存在哪兒呢,一般性的做法就是棧了,所以一開始殼就設定了esp。

第五課 文法

1.名詞 場所 行 來 帰 使用移動動詞時,移動的方向用助詞 表示。京都 行 我要去京都。日本 來 我來到了日本。帰 我要回家。注 助詞 讀作 2.行 行 完全否定疑問詞所問的全部範疇時,用助詞 與否定形式一起使用。行 也不去。何 食 什麼也不吃。第6課 沒有任何人在。第10課 3.名詞 交通工具 ...

C語言第五課

主要內容 二維陣列 字串陣列 多維陣列 理解 一 二維陣列 有兩個下標的陣列稱為二維陣列 定義 型別修飾符 陣列名 常量表示式1 常量表示式2 第一維的長度 第二維的長度 示例 定義乙個2行3列的二維陣列 int array 2 3 這是乙個標準的二維陣列 二維陣列的元素也稱為雙下標變數 0 1 2...

C語言第五課

c函式若不宣告型別,則預設為 int 型 在函式中,指標可以 被調函式 修改 主調函式 1 int func int a main 2 void func int num main int num 2 func int b 野指標會 指向任一地方 int pum printf x pum 指標偏移的...