我正在尋找編寫一個能夠從指定的 .exe 讀取匯編代碼的程序。我想做的是讀取可執(zhí)行文件的匯編代碼,以便找到可以用等效指令替換的指令,以獲得不同的字節(jié)代碼。這通常稱為源加擾器/簽名加擾器,它修改匯編代碼以獲得不同的字節(jié)代碼,從而產(chǎn)生不同的簽名。我正在閱讀有關(guān) C# 中的 Assembly 類的信息,但沒有找到任何可以返回類似 IEnumerable 之類的內(nèi)容,其中包含來自 .exe 的匯編代碼有沒有人可以教育我這方面的知識?這可能嗎?不同的方法?
1 回答

PIPIONE
TA貢獻1829條經(jīng)驗 獲得超9個贊
.NET 并不真正處理字節(jié)碼。所有 .NET 程序都會轉(zhuǎn)換為稱為 MSIL 的東西,由 .NET 運行時執(zhí)行,然后才轉(zhuǎn)換為字節(jié)碼。整個過程與JavaBytecode的工作原理非常相似。
因此,您可以完全訪問任何內(nèi)容的名稱。您甚至可以像使用 .DLL 文件一樣使用 .NEt 可執(zhí)行文件。但除了繼承或替換文件之外,替換內(nèi)容并不容易。
您可能需要的那種按位操作需要使用裸指針。.NET 開發(fā)人員不遺余力地讓您不再需要使用裸指針。您仍然可以使用 Unsface 代碼來使用它們,但是由于這聽起來像是您程序的主要用途,您可能最好從本機 C++ 之類的東西開始。實際上,任何使用裸指針作為默認值的東西,而不是后備。
- 1 回答
- 0 關(guān)注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消