Re: [問題] Intel的指令機械碼

看板ASM (組合語言)作者 (zha0)時間17年前 (2007/03/05 14:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/8 (看更多)
※ 引述《final01 (牛頓運動定律)》之銘言: : Intel X86指令的機械碼是不公開嗎? : 我想找好像都找不到~ : 有人知道哪有提供嗎? 推 jeunder:願聞其詳 :) 03/04 20:42 → jeunder:這方面的發展, 我最後知道的是利用 反組譯+重組譯 技術. 03/04 20:43 → jeunder:太久沒接觸, 不知道還有沒有新的技術出現? 03/04 20:44 回 D 大大 >_< 你把反組譯+重組譯都搬出來了,這樣我的想法就變的很弱小了 >_< 不過還是打上來讓你笑一笑好了,如果有錯或是要指導,還是大大多多見量. 我的想法是類似,記錄每個 Register 然後利用 tunnel 的技術,來產生垃圾碼,除了特權指令外的 Opcode 都能拿來用. (為什麼用 tunnel 呢?因為懶得自己寫反組譯,用現成 CPU 去跑 :P) DOS 下有 INT 1,Windows 下有 SEH. O_REG_Bitmap; // 所以 REG 的 Bitmap,記錄使用與未用,未用來拿產生 Junk code O_REG_SET; // 在記憶体裡面建立一組暫存器(存暫存器運算的資料) BaseAddr; EIP; Non_Privilege_Opcode[nnn]; // 所有不是特權指令的 Opcode 可以用特權指令的來反查 拿一個亂數取迴圈 { 產生 Opcode+Operand[Unuse_REG]; 丟到 SEH_Signel_Step 執行,執行結果回存到O_REG_SET, 如果有錯誤(方法存取)再產生一次或產生一個 SEH 包往他; // 抽原始碼的 Code 交換,或用 EPO 的支術 :P 交換使用與未使用的 REG(O_REG_Bitmap, O_REG_SET) } 這樣用 Signel_Step 的好處是 .. 如果今天要產生 INC EAX 他可以用亂數去跑那些垃圾指令, 可以用隨機的方法產生 >_< (設定 REG = 多少, 丟給 SEH 去跑,跑到條件成立就跳出來, 然後把那個產生的結果 Copy 過去 . (在跑的次數(1000 or 1000xxx...)中如果都沒成功,那就用自己的方式讓他成功 XD) 不過在想一點,那就是如果今天是多型或亂体,其實一看就知道他是有問題的。 再想之後可能會把多型作的很像正常的程式 >___< SORRY 很久沒有打東西了,表達能力變差了. PS. D 大 (Zxxx 沒要完成嗎?現在 NT 還沒有 BOOT+PE 的 >__< ) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.218.130
文章代碼(AID): #15wxG5Bt (ASM)
討論串 (同標題文章)
文章代碼(AID): #15wxG5Bt (ASM)