Re: [問題] Intel的指令機械碼
※ 引述《zha0 (zha0)》之銘言:
: 如果今天要產生 INC EAX 他可以用亂數去跑那些垃圾指令,
: 可以用隨機的方法產生 >_<
: (設定 REG = 多少, 丟給 SEH 去跑,跑到條件成立就跳出來,
: 然後把那個產生的結果 Copy 過去 .
: (在跑的次數(1000 or 1000xxx...)中如果都沒成功,那就用自己的方式讓他成功 XD)
老實說, 這個方法我以前使用過了. :p
產生亂指令, 紀錄 register 屬性 (可否任意破壞, 值是否確定... 等)
然後將產生的指令跑過一遍, 紀錄結果是否是自己想要的...
不一樣的是我沒有用 int 1 (or SEH), 而且只使用在設 register 初值時.
這方法終究有些限制, 例如無法精確掌握暫存器的值,
所以也不可能拿暫存器的值當成存取記憶體的 index,
除非你是分段來做...
但是你還必須掌握記憶體的屬性, 哪些地方是可寫的? 可讀的? 或者值是確定的?
: 不過在想一點,那就是如果今天是多型或亂体,其實一看就知道他是有問題的。
: 再想之後可能會把多型作的很像正常的程式 >___<
沒錯, 其實長得像正常程式, 又要維持多變的形體, 比隨便產生垃圾指令困難多了.
最厲害的就是可以做到完全沒有多餘指令, 確又能有很多變化.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.100.133
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章