最新文章專題視頻專題關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

木馬免殺之匯編花指令技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 15:32:50
文檔

木馬免殺之匯編花指令技巧

木馬免殺之匯編花指令技巧:相信很多朋友都做過木馬免殺,早期的免殺都是加殼和改特征碼,現(xiàn)在免殺技術(shù)已經(jīng)發(fā)展到花指令免殺,改殼之類的,而這些需要一定的匯編知識,但是匯編卻不是一塊容易啃的骨頭,所以我寫了這篇菜鳥版的免殺匯編教程,幫助小菜們快速入門,掌握免殺必備的匯編知
推薦度:
導(dǎo)讀木馬免殺之匯編花指令技巧:相信很多朋友都做過木馬免殺,早期的免殺都是加殼和改特征碼,現(xiàn)在免殺技術(shù)已經(jīng)發(fā)展到花指令免殺,改殼之類的,而這些需要一定的匯編知識,但是匯編卻不是一塊容易啃的骨頭,所以我寫了這篇菜鳥版的免殺匯編教程,幫助小菜們快速入門,掌握免殺必備的匯編知

相信很多朋友都做過木馬免殺,早期的免殺都是加殼和改特征碼,現(xiàn)在免殺技術(shù)已經(jīng)發(fā)展到花指令免殺,改殼之類的,而這些需要一定的匯編知識,但是匯編卻不是一塊容易啃的骨頭,所以我寫了這篇菜鳥版的免殺匯編教程,幫助小菜們快速入門,掌握免殺必備的匯編知

  相信很多朋友都做過木馬免殺,早期的免殺都是加殼和改特征碼,現(xiàn)在免殺技術(shù)已經(jīng)發(fā)展到花指令免殺,改殼之類的,而這些需要一定的匯編知識,但是匯編卻不是一塊容易啃的骨頭,所以我寫了這篇菜鳥版的免殺匯編教程,幫助小菜們快速入門,掌握免殺必備的匯編知識,改花指令,改特征碼的技巧和編寫自己的花指令。

  一、免殺必備的匯編知識

  push 壓棧,棧是一種數(shù)據(jù)結(jié)構(gòu),記住四個(gè)字:先進(jìn)后出。壓棧就是把數(shù)據(jù)放如棧中,從棧頂放如,出棧的時(shí)候也是從棧頂取出,所以會有先進(jìn)后出的特點(diǎn)!先進(jìn)后出我們可以這樣理解,例如:一個(gè)乒乓球筒,我們放入乒乓球,然后取出乒乓球,取出的都是就后放進(jìn)的球。就如我們放入球的順序是球1、2、3、4,取出的順序是球4、3、2、1。

  pop 出棧,與push相對應(yīng)。

  mov a,b 把b的值送給a,把它看作編程中的賦值語句就是b賦值給a,這時(shí)a的值就是b了。

  nop 無作用,就是什么也沒做。

  retn 從堆棧取得返回地址并跳到該地址執(zhí)行。

  下面是一些算術(shù)運(yùn)算指令:

  ADD 加法

  sub 減法

  inc 加1

  dec 減1

  最后是跳轉(zhuǎn)指令:

  jmp 無條件跳

  je 或jz 若相等則跳

  jne或jnz 若不相等則跳

  jb 若小于則跳

  jl 若小于則跳

  ja 若大于則跳

  jg 若大于則跳

  jle 若小于等于則跳

  jge 若大于等于則跳

  這些就是我們需要掌握的,怎么樣不多吧,一些指令可能看不明白,看了后面的就會清楚了。對了,忘了講寄存器了,寄存器是中央處理器內(nèi)的其中組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址。我們需要了解的是8個(gè)通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP

  二、特征碼和花指令的修改

  特征碼我就不多說了,大家都知道的,現(xiàn)在殺毒軟件查殺都用特征碼查殺,改了木馬的特征碼,殺毒軟件就查不出我們的木馬,這樣就達(dá)到免殺的效果。而花指令是程序中的無用代碼,程序多它沒影響,少了它也能正常運(yùn)行。加花指令后,殺毒軟件對木馬靜態(tài)反匯編使,木馬的代碼就不會正常顯示出來,加大殺毒軟件的查殺難度?;ㄖ噶畹脑硎嵌褩F胶?。前面介紹push說了,堆棧平衡可以這樣理解,有進(jìn)有出,不管花指令怎么寫,我們要達(dá)到的目的是加花后,堆棧與未加之前一樣。

  網(wǎng)上的花指令因?yàn)槭枪汲鰜淼?,所以免殺周期不長,一般公布出來不久就會被殺毒軟件查殺,但是我們只要簡簡單單的修改一兩句就可以達(dá)到免殺了。下面我們來看看5種修改方法。(也適用于特征碼修改)

  我們先看看木馬彩衣(金色魚錦衣)花指令

  1、push ebp

  2、mov ebp,esp

  3、add esp,-0C

  4、add esp,0C

  5、mov eax,原入口

  6、push eax

  7、retn

  1、2、在大部分程序開頭可以經(jīng)常看到。push ebp是將寄存器ebp壓入堆棧,mov ebp,esp是將寄存器esp的值送給寄存器ebp。3、4、使用了add指令,add esp,-0C是寄存器esp加上-0C,add esp,0C是寄存器esp加上0C,3、4、加起來就是什么也沒做,達(dá)到堆棧平衡。5、6、7、完成了跳轉(zhuǎn)到入口點(diǎn)的功能,我們一句句來看看mov eax,原入口,將入口點(diǎn)送入寄存器eax,push eax將寄存器eax壓入堆棧,retn我們知道是從堆棧取得返回地址并跳到該地址執(zhí)行。這樣就回到入口點(diǎn)了。

  我們看看實(shí)例,以木馬彩衣免殺為例,先偵殼,用peid載入,顯示Microsoft Visual Basic 5.0 / 6.0,(如圖1)很好,免去了脫殼的麻煩,復(fù)制木馬彩衣后再粘貼,得到復(fù)件 木馬彩衣.exe,我們用木馬彩衣對復(fù)件 木馬彩衣.exe加花,加金色魚錦衣,(如圖2)然后用Ollydbg.exe載入,我們就可以看到看到金色魚錦衣的花指令了。(如圖3)用卡巴掃描,被卡巴認(rèn)出來了。(如圖4)這是因?yàn)榻鹕~錦衣公布比較久,用的人多了,對殺毒軟件就無效了。

1、替換法

  我們用替換法來修改金色魚錦衣,修改結(jié)果如下:

  1、push ebp

  2、mov ebp,esp

  3、add esp,1

  4、add esp,-1

  5、mov eax,原入口

  6、push eax

  7、retn

  將原來3、4、句add esp,-0C和add esp,0C改成add esp,1和add esp,-1這兩句也能達(dá)到堆棧平衡,(如圖5)右鍵選中add esp,-0C,點(diǎn)擊匯編,將add esp,-0C改成add esp,1,將add esp,0C改成add esp,-1。選中修改部分,右鍵單擊→復(fù)制到可執(zhí)行文件→選擇部分,彈出窗口,右鍵保存文件。這里我保存成“替換法.exe”用卡巴查殺,免殺了。(如圖6)

  2、移位法

  1、push ebp

  2、mov ebp,esp

  3、nop

  4、nop

  5、add esp,-0C

  6、add esp,0C

  7、mov eax,原入口

  8、push eax

  9、retn

  將原來的3、4、5、6、7、幾個(gè)語句向下移動(dòng)2行,修改后保存為“移位法.exe”。

  3、添加法

  1、push ebp

  2、mov ebp,esp

  3、push edx

  4、pop edx

  5、add esp,-0C

  6、add esp,0C

  7、mov eax,原入口

  8、push eax

  9、retn

  在金色魚錦衣中加入push edx和pop edx,這兩句是將寄存器edx壓入和彈出堆棧,一樣達(dá)到堆棧平衡。修改后保存成“添加法.exe”。

  4、去除法

  1、push ebp

  2、mov ebp,esp

  3、mov eax,原入口

  4、push eax

  5、retn

  刪除add esp,-0C和add esp,0C,修改后保存成“去除法.exe”。

  5、跳轉(zhuǎn)法

  push ebp

  mov ebp,esp

  jmp 跳出到add esp,-0C的地址

  mov eax,復(fù)件_木?0040109C

  push eax

  retn

  add esp,-0C

  add esp,0C

  jmp 跳回mov eax,復(fù)件_木?0040109C的地址

  這個(gè)可能比較復(fù)雜,大家看看截圖(圖7),修改后保存為“跳轉(zhuǎn)法.exe”。

  我們用卡巴試試修改后的效果,(如圖8)看看,只有原來的木馬彩衣,加了金色魚錦衣的和去除法的可以查到。去除法是因?yàn)榻鹕~錦衣的代碼比較短,如果花指令長點(diǎn),效果會比較好。幾種修改方法結(jié)合使用效果更好,當(dāng)然,一樣可修改特征碼,相對跳轉(zhuǎn)法在修改特征碼中使用比較多。

三、編寫自己的花指令

  通過上面的學(xué)習(xí)我們可以知道花指令大概結(jié)構(gòu),一般開始是push ebp和mov ebp,esp,接下來就是一些能保持堆棧平衡的指令,完了就是跳回入口點(diǎn)了。

  我羅列出一些能保持堆棧平衡的代碼

  push ebp 把基址指針寄存器壓入堆棧

  pop ebp 把基址指針寄存器彈出堆棧

  push eax 把數(shù)據(jù)寄存器壓入堆棧

  pop eax 把數(shù)據(jù)寄存器彈出堆棧

  nop 無作用,就是什么也沒做

  mov eax,eax 將eax送入eax,等于什么也沒做

  sub eax,1

  add eax,1 寄存器eax+1和寄存器eax-1,一樣等于什么也沒做

  sub eax,2

  dec eax

  dec eax 一樣很簡單的加減運(yùn)算,先是寄存器eax+2,緊接著連續(xù)用dec指令處理寄存器eax兩次,就是-1再-1,達(dá)到堆棧平衡。

  很簡單,大家參考后可以自己寫出N多這樣的指令。寫完這些就可以寫跳轉(zhuǎn)語句了。

  JMP 入口點(diǎn) 這時(shí)最簡單的跳轉(zhuǎn)了,無條件跳回入口點(diǎn),最簡單當(dāng)然效果也最差了

  mov eax,入口點(diǎn)

  push eax

  retn 很眼熟吧,金色魚錦衣的跳轉(zhuǎn),解釋過,不多說了。

  mov eax,入口點(diǎn)

  jmp eax 和金色魚錦衣的跳轉(zhuǎn)的原理差不多吧,入口點(diǎn)壓入寄存器eax,再跳到寄存器eax,就是跳到入口點(diǎn)了。

  je 入口點(diǎn)

  jne 入口點(diǎn) 等于則跳和不等于則跳,合起來就是絕對跳咯,像這樣的條件跳轉(zhuǎn)語句很多,大家可參考前面跳轉(zhuǎn)指令的知識自己寫。

  上面的指令隨便結(jié)合相信大家可以寫出屬于自己的花指令了,這樣我這篇文章的目的也就達(dá)到了?;ㄖ噶钐砑拥姆椒ù蠹铱梢詤⒄杖ツ甑?期的主題樂園。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com

文檔

木馬免殺之匯編花指令技巧

木馬免殺之匯編花指令技巧:相信很多朋友都做過木馬免殺,早期的免殺都是加殼和改特征碼,現(xiàn)在免殺技術(shù)已經(jīng)發(fā)展到花指令免殺,改殼之類的,而這些需要一定的匯編知識,但是匯編卻不是一塊容易啃的骨頭,所以我寫了這篇菜鳥版的免殺匯編教程,幫助小菜們快速入門,掌握免殺必備的匯編知
推薦度:
標(biāo)簽: 朋友 技巧 木馬
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top