作者jeunder ()
看板ASM
标题Re: [问题] Intel的指令机械码
时间Thu Mar 8 01:17:11 2007
※ 引述《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