是否可以爲包含函數的字節數組分配虛擬內存,將數組寫入內存,然後以某種方式在虛擬內存中執行函數?函數在BYTE數組中直接記憶?
0
A
回答
0
你必須確保你要執行的字節確實是一個有效的CPU指令序列,否則「函數」肯定會崩潰,比如導致異常「非法指令」,「訪問衝突」等。
接下來要做的是確保有問題的字節位於具有執行權限的記憶。 VirtualProtect
與PAGE_EXECUTE
讓你。
然後你實際上將控制權交給你的功能。這可以是彙編代碼,例如push <address>; ret;
或C++風格的靜態函數調用,地址在變量中。
相關問題
- 1. Wifi直撥組記憶
- 2. 函數返回BYTE數組
- 3. 直接在Java API中使用C++數組,需要byte []
- 4. 直接訪問組件中的函數
- 5. 如何記憶遞歸函數?
- 6. Python:用函數參數持久地記憶函數的策略?
- 7. 數據庫記憶?
- 8. BufferedReader直接到byte []
- 9. 如何使用`reselect`來記憶數組?
- 10. JavaScript寫一個函數緩存一個函數(記憶)
- 11. 將函數直接鏈接到函數(){}
- 12. 分裂byte []數組
- 13. 記憶指數算法
- 14. 直接在onclick中調用函數
- 15. 在函數引用參數直接
- 16. 科特林數據類的成員函數的記憶化
- 17. 使用Tritonus AudioSystem:將PCM byte []數組轉換爲mp3 byte []數組
- 18. 數組<byte> ^在字典中
- 19. s函數直接饋通
- 20. Python:創建一個函數裝飾器,用於記憶一個函數
- 21. 來自JDK 1.6的JavaCompiler:如何將類字節直接寫入byte []數組?
- 22. 在Python中的記憶化
- 23. 記憶化在Java中
- 24. 反向Convert.ToBase64String(byte []數組)
- 25. byte []強類型數組?
- 26. 字符串byte []數組
- 27. 如何直接索引查找函數返回的數組
- 28. 直接作爲數組解釋函數的返回值
- 29. 在D函數中接收數組的數組?
- 30. Angularjs使用函數直接在ng-click
「包含函數的字節數組」是一個過於寬泛的規範。什麼表示?什麼操作系統?什麼硬件架構?沒有重大的澄清,你的問題就不能得到回答。 –
任何特定的編程語言? – GolezTrol
C++。視窗。表示形式是機器代碼(或者有效的代碼)。 x86和x86-64 – replicant