Windows 網(wǎng)絡(luò)編程:加殼與脫殼 【2019-03-11第一篇】

圖片來(lái)自簡(jiǎn)書作者發(fā)姨

一、手動(dòng)加殼

殼是一種較為特殊的軟件师脂。殼分為兩類担孔,一類是壓縮殼,另一類是加密殼吃警。當(dāng)然糕篇,還有介于兩者之間的混合殼。下面先來(lái)手動(dòng)為一個(gè)可執(zhí)行文件加一層外殼酌心,需要準(zhǔn)備的工具有C32ASM拌消、LordPE、添加節(jié)表工具和OD安券。

首先用LordPE查看可執(zhí)行文件墩崩,并對(duì)需要的幾個(gè)數(shù)據(jù)做一個(gè)簡(jiǎn)單的記錄,如圖1所示侯勉。


圖片1來(lái)自簡(jiǎn)書作者發(fā)姨

在LordPE中鹦筹,需要查看幾個(gè)對(duì)于我們需要的數(shù)據(jù),包括PE文件的入口RVA址貌、映像地址和代碼節(jié)的相關(guān)數(shù)據(jù)铐拐。有了這些數(shù)據(jù)以后就可以通過(guò)C32ASM對(duì)代碼進(jìn)行加密了。用C32ASM以十六進(jìn)制的方式打開可執(zhí)行文件练对,然后從代碼節(jié)的文件偏移開始選擇遍蟋,也就是從1000h的位置開始選擇,一直選到4fffh的位置螟凭。然后單擊右鍵虚青,在彈出的快捷菜單上選擇“修改數(shù)據(jù)”命令,在“修改數(shù)據(jù)”對(duì)話框中選擇“異或”算法來(lái)對(duì)代碼節(jié)進(jìn)行加密螺男,如圖2所示棒厘。


圖片2來(lái)自簡(jiǎn)書作者發(fā)姨

使用0x88來(lái)對(duì)代碼節(jié)進(jìn)行異或加密,單擊“確定”按鈕后代碼節(jié)被修改下隧。保存以后使用添加節(jié)表的軟件對(duì)可執(zhí)行文件添加一個(gè)新的節(jié)绊谭,如圖3所示。


圖片來(lái)自簡(jiǎn)書作者發(fā)姨

添加新的節(jié)區(qū)以后使用OD對(duì)可執(zhí)行文件添加一些代碼汪拥,用OD打開可執(zhí)行程序,來(lái)到00408000地址處篙耗,添加如下代碼:


圖片3來(lái)自簡(jiǎn)書作者發(fā)姨

以上代碼的作用是將上面修改的代碼節(jié)內(nèi)容還原迫筑,然后進(jìn)行保存宪赶。用LordPE修改該可執(zhí)行文件的入口和代碼節(jié)的屬性,如圖4脯燃、圖5和圖6所示搂妻。


圖片4來(lái)自簡(jiǎn)書作者發(fā)姨


圖片5來(lái)自簡(jiǎn)書作者發(fā)姨


圖片6來(lái)自簡(jiǎn)書作者發(fā)姨

運(yùn)行修改過(guò)的可執(zhí)行文件,可以正常運(yùn)行辕棚。

下面整理一下思路欲主,以方便我們寫代碼。最開始用LordPE查看了將要用到的一些PE信息逝嚎,然后用C32ASM對(duì)代碼節(jié)進(jìn)行了簡(jiǎn)單的異或加密扁瓢,接下來(lái)新添加了一個(gè)節(jié)并在新節(jié)中寫入了還原代碼節(jié)的解密指令,最后用LordPE修改了文件的入口地址补君、代碼節(jié)屬性和新添加節(jié)的屬性引几。對(duì)照一下前后兩個(gè)文件的不同之處,如圖7所示挽铁。


圖片7來(lái)自簡(jiǎn)書作者發(fā)姨

從圖中可以看出這兩個(gè)PE文件的差別伟桅,相信大家對(duì)此已經(jīng)沒(méi)有不理解的地方了。下面開始手動(dòng)打造一個(gè)這樣簡(jiǎn)單的加殼軟件叽掘。

二楣铁、編寫簡(jiǎn)單的加殼工具

其實(shí)不按照上面的步驟進(jìn)行也可以,只要步驟是合理的就可以了更扁。我們主要有4個(gè)函數(shù)需要實(shí)現(xiàn)盖腕,分別是獲取PE信息GetPeInfo()、添加新節(jié)AddSection()疯潭、加密代碼節(jié)Encode()和寫入解密代碼WriteDecode()赊堪。我們主要看兩個(gè)函數(shù)的代碼,分別是Encode()和WriteDecode()竖哩。


圖片來(lái)自簡(jiǎn)書作者發(fā)姨

00408000 > 60   PUSHAD

00408001 B8 00104000 MOV EAX,HelloWor.00401000

00408006 8030 88  XOR BYTE PTR DS:[EAX],88

00408009 40   INC EAX

0040800A 3D 464B4000 CMP EAX,HelloWor.00404B46

0040800F ^ 75 F5  JNZ SHORT HelloWor.00408006

00408011 61   POPAD

00408012 B8 41104000 MOV EAX,HelloWor.00401041

00408017 FFE0   JMP EAX

在虛擬地址和匯編指令的中間部分就是匯編指令對(duì)應(yīng)的機(jī)器碼哭廉,將其取出并定義為C語(yǔ)言的數(shù)組,定義如下:


圖片來(lái)自簡(jiǎn)書作者發(fā)姨

這個(gè)機(jī)器碼在解密的過(guò)程中要根據(jù)實(shí)際的PE信息進(jìn)行修改相叁,修改的位置有3處遵绰,分別是代碼節(jié)的起始虛擬地址、代碼節(jié)的結(jié)束虛擬地址和程序的原始入口點(diǎn)增淹,代碼如下:


圖片來(lái)自簡(jiǎn)書作者發(fā)姨

這就是解密代碼椿访,大家可以找個(gè)用VC寫的程序來(lái)進(jìn)行測(cè)試。在這里使用Release版的helloworld測(cè)試通過(guò)虑润。

這個(gè)殼屬于袖珍版的殼成玫,嚴(yán)格來(lái)說(shuō),算不上是一個(gè)殼,但是這個(gè)殼在免殺領(lǐng)域是有用的哭当,也就是把定位到的特征碼進(jìn)行加密猪腕,然后再寫入解密代碼從而隱藏特征碼。一個(gè)真正的殼會(huì)對(duì)導(dǎo)入表钦勘、導(dǎo)出表陋葡、資源、TLS彻采、附加數(shù)據(jù)等相關(guān)的部分進(jìn)行處理腐缤。加密殼會(huì)加入很多反調(diào)試的功能,而且還會(huì)讓殼和可執(zhí)行文件融合在一起肛响,達(dá)到“骨肉相連”的程度來(lái)增加脫殼的難度岭粤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市终惑,隨后出現(xiàn)的幾起案子绍在,更是在濱河造成了極大的恐慌,老刑警劉巖雹有,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偿渡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡霸奕,警方通過(guò)查閱死者的電腦和手機(jī)溜宽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)质帅,“玉大人适揉,你說(shuō)我怎么就攤上這事∶撼停” “怎么了嫉嘀?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)魄揉。 經(jīng)常有香客問(wèn)我剪侮,道長(zhǎng),這世上最難降的妖魔是什么洛退? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任瓣俯,我火速辦了婚禮,結(jié)果婚禮上兵怯,老公的妹妹穿的比我還像新娘彩匕。我一直安慰自己,他們只是感情好媒区,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布驼仪。 她就那樣靜靜地躺著掸犬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绪爸。 梳的紋絲不亂的頭發(fā)上登渣,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音毡泻,去河邊找鬼。 笑死粘优,一個(gè)胖子當(dāng)著我的面吹牛仇味,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雹顺,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼丹墨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了嬉愧?” 一聲冷哼從身側(cè)響起贩挣,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎没酣,沒(méi)想到半個(gè)月后王财,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡裕便,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年绒净,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偿衰。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挂疆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出下翎,到底是詐尸還是另有隱情缤言,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布视事,位于F島的核電站胆萧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏郑口。R本人自食惡果不足惜鸳碧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望犬性。 院中可真熱鬧瞻离,春花似錦、人聲如沸乒裆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至肉迫,卻和暖如春验辞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喊衫。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工跌造, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人族购。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓壳贪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親寝杖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子违施,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡(jiǎn)單分配策略的問(wèn)題地址空間不隔離內(nèi)存使用效率低程序運(yùn)行的地址不確定 關(guān)于...
    SeanCST閱讀 7,779評(píng)論 0 27
  • 殼是一段執(zhí)行于原始代碼前的代碼。原始程序的代碼在家可的過(guò)程中可能被壓縮、加密等孔厉,當(dāng)加殼后的文件執(zhí)行時(shí)君躺,殼這段代碼先...
    plutoG7閱讀 1,781評(píng)論 0 6
  • 完美的免殺方法到目前為止,要實(shí)現(xiàn)惡意軟件的“FUD”,加密惡意代碼被認(rèn)為是個(gè)不錯(cuò)的選擇,不過(guò)有幾點(diǎn)要注意:1.惡意...
    極客圈閱讀 1,102評(píng)論 0 2
  • Return-Oriented-Programming(ROP FTW) Author: Saif El-Sher...
    RealSys閱讀 3,296評(píng)論 0 2
  • 楔子 豐慶五十四年,臘月十七排吴,邊關(guān)來(lái)報(bào),年大將軍戰(zhàn)死沙場(chǎng)懦鼠,其子年凌接任三軍統(tǒng)帥钻哩,死守八方城。 景王府 ...
    叁水LeonardoBing閱讀 1,626評(píng)論 0 5