Android 台灣中文網
標題:
.so檔數問
[打印本頁]
作者:
hazal
時間:
2019-11-12 16:22
標題:
.so檔數問
最近剛回鍋看看,以前還會改,現在換成組語我完全變成小白
1.在so檔中假設同樣是call sub_123這條放在其他位置(往前推或往後推)的16進制指令會變化
請問這個要怎麼推算?
2.如果原本的位置就那幾格,但我想加入其他判斷式怎辦?會動到so檔的大小
作者:
justos
時間:
2019-11-12 19:22
1.call 向後移動4bytes,immediate值減1,例如:00001000:BL 0x2205(hex:052200EB)向後移4 bytes變00001004:BL 0x2204(hex:042200EB),這指令的immediate值(24位元)=0x2205,向後移動4N個bytes就減N;反之向前移動4N就加N。
2.編譯後的 so 檔案不能異動大小,裡面太多jump 指令會亂掉,只能靠技巧把不重要的程式碼空間拿來改動,例如一堆排錯的機碼等等。
3.可以找出完全沒用到的函式區塊,jump到這裡執行你要的工作,最後再jump回去,就可以寫很複雜的功能了!例如用音量調整遊戲速度或敵人的攻擊力,設定裡的開關都可以拿來切換常見的功能。
作者:
hazal
時間:
2019-11-14 11:59
感謝!!!!!!!!
小弟目前已有小瞭解,因為我對x86比較有感,所以在你們的指令上我只能抓大概的意思轉
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1