鑒于目前易語(yǔ)言的加載機(jī)制,因此幾乎所有的殼都可以被通用的脫掉.
然后我就寫(xiě)了一個(gè)基于此的通用脫殼機(jī).
目前支持易語(yǔ)言的兩種編譯方式 獨(dú)立編譯 和非獨(dú)立編譯.自動(dòng)識(shí)別并修復(fù)數(shù)據(jù).
特別是獨(dú)立編譯支持相對(duì)來(lái)說(shuō)有那么一點(diǎn)用處.因?yàn)槿绻阋狿atch人家的程序.你當(dāng)然希望Patch完以后可以直接運(yùn)行而不是帶上X個(gè)易語(yǔ)言的運(yùn)行庫(kù)文件。這一點(diǎn)ECE還不能夠修復(fù)。
目前還不支持DLL 的脫殼。這個(gè)以后有時(shí)間在加入,因?yàn)橐椎腄LL無(wú)法獨(dú)立編譯所以 這個(gè)應(yīng)用相對(duì)來(lái)說(shuō)很少。
另外對(duì)于Arm的雙進(jìn)程模式和Themida的bundler也還不支持
當(dāng)然如果你運(yùn)氣好遇到有人用帶驅(qū)動(dòng)的殼來(lái)給易語(yǔ)言加殼的話(huà)。我的這個(gè)脫殼機(jī)應(yīng)該可以解決這個(gè)問(wèn)題。而避免了1.0.0.8因?yàn)閿r截了NtReadProcessMemory而代碼的無(wú)法Dump數(shù)據(jù)的痛苦:)
下面來(lái)弄一個(gè)實(shí)例:
我們先啟動(dòng)易語(yǔ)言然后隨便打開(kāi)一個(gè)例程,比如這里我就已搞怪碰碰球1.2這個(gè)例子來(lái)說(shuō)。
用易語(yǔ)言的獨(dú)立編譯編譯出一個(gè)EXE文件。然后用Themida1.9.1.0 默認(rèn)模式給生成的這個(gè)EXE加殼
加殼以后程序體積為
2.88 MB (3,021,586 字節(jié))
原始體積為
3.84 MB (4,037,394 字節(jié))
然后打開(kāi)我們的脫殼機(jī)
選擇loadfile加載加殼后的文件。