2012-08-30 63 views
0

如果添加在文件的FRONT中,是否存在特定的空字符或不會損壞可執行文件的字節序列?我嘗試添加NUL(00十六進制),但每次都會破壞可執行文件。是否有一些NOP(無操作)或類似的字節碼?長話短說,我想搞個修改內存值的「黑客」,在& process +固定偏移量。推動內存堆棧會(或者我認爲)阻止它的工作。如何在不破壞它的情況下修改可執行文件?

+0

實際上,這將不會有任何影響,因爲節目錄將仍然具有原始偏移量。你想要的比移動字節複雜得多,因爲你要搞亂二進制文件中的所有內存引用。爲什麼也不是在進行無害更改後重新編譯二進制文件。 –

回答

2

不,Windows可執行文件使用的PE文件格式具有非常特定的標題。有關更多詳細信息,請參閱http://en.wikipedia.org/wiki/Portable_Executable

您可以嘗試使用ASLR使您的代碼更能抵抗內存補丁。

+0

如果它不是您自己的代碼,請查看微軟的增強型緩解體驗工具包(EMET)。 –

+0

謝謝你的鏈接。衝浪到參考我發現這個:http://www.phreedom.org/research/tinype/。看起來像不少東西可以從PE頭取出而不破壞它,所以我會嘗試刪除而不是添加。 – cen

1

你必須將其完全解析爲它的不同部分和段,修改你正在尋找的那個,但是你將不能在任何代碼段之前插入代碼: 你最好有一個段那將會先執行,然後跳轉到舊的起始段。

最後,您將不得不重新創建一個新的完整的可執行文件。

相關問題