當前位置:編程學習大全網 - 源碼下載 - shellcode怎麽解密

shellcode怎麽解密

替換是完全可行的!但是這類程序壹般都會進行“加密”,這個加密並不是指對編譯後的代碼進行加密處理(比如UPX),而是原作者在進行編程的時候用另壹種思維或者采用編譯器的語法分析器的漏洞進行變相的“加密”,這樣的程序中尋址非常混亂,同壹塊內存空間,進行相同的操作,會出現不同的多種尋址方式,這樣壹來,shellcode等替換操作的難度將會大大提高!

要替換,首先妳要考慮替換後的程序中所有的尋址完全正確,不會出現錯誤的地址!其次妳要看看原程序是否對原來的shellcode段有校驗操作,如果有,破解之!最後對於具體的情況對頭進行重建!

總之shellcode等替換操作是比較復雜的,中間要考慮很多很多因素!

LZ為什麽要去替換呢?既然自己已經弄到了shellcode,寫壹個小程序不是易如反掌嘛,何必大費功夫的去替換呢!

如果妳實在想替換,給妳個很好的建議,沒事兒的時候寫個EXP程序,定個全局指針變量,在程序中對這個指針進行下賦值操作,隨便賦個值,要是賦地址那種的,然後下面用嵌入式匯編寫幾個比較有特點的代碼(比如連著10個"emms"),編譯程序,等妳有新的shellcode的時候,首先把shellcode附加到程序文件尾,然後反匯編,找到有特點的那些匯編指令(比如連著10個"emms"),找到上面的mov指令(對應源代碼裏指針賦值),把操作數改成shellcode的內存線性地址,將下面的有特點的代碼nop掉,保存!即可完成替換!

對於shellcode的解密,完全可以通過反匯編EXP程序來逐步分析,不過這個過程要求妳有很高的匯編水平,分析出原shellcode所在的段!再有壹種辦法就是,把EXP程序加載到壹個調試工具中,然後跟蹤壹下,shellcode有些地方類似病毒,壹般可以跟蹤出解密後的shellcode代碼!由於原shellcode是加了密的,進行替換,很麻煩,很復雜,如果搞懂了加密方式還行,否則很困難!

  • 上一篇:jsp投票系統求源代碼!可以連數據庫的!
  • 下一篇:新版本 xcode8 怎麽查看對象裏的值
  • copyright 2024編程學習大全網