看板 CSIE_ASM 關於我們 聯絡資訊
1.要怎麼計算要複製的病毒大小? 我看過B8X的學長是用EQU做的 ... mov cx,ssize ... ... ssize EQU $ - offset virus_begin 不過是錯的,根據仔細的觀察機械碼後,並沒有複製全部,少了約2/5 我想了很久改成 ... enddd BYTE ? ssize EQU offset enddd + 1 - offset virus_begin 就好像對了,可是幾乎全部的.com病毒都有用到$號來算長度, 可以請問有人知道怎麼做比較好? 跟不會要用手數吧@@ 2.讀資料的位移(solved) 因為病毒是貼在後面,所以包含變數的資料也會後移 我現在是在真正病毒開始的地方加標記,然後呼叫這個標記 在將呼叫點的IP推出來減掉原本的標記座標 call virus_begin virus_begin: pop SI sub SI,OFFSET virus_begin 可是現在一直錯誤.... 有些.com會成功執行原程式 大部分的.com會cored-dumped 所有的.com已喪失再感染其他程式的能力 想請問應該要怎麼弄? JMP要注意要扣掉3bits或2bits的IS 才是相對位置 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.38 ※ 編輯: BingJing 來自: 140.112.30.38 (12/31 17:16)
imprazaguy:1.我是在病毒尾巴設label virus_end,然後病毒長度就可 01/01 15:36
imprazaguy:以經由virus_end-virus_start求出 01/01 15:37
imprazaguy:2.跟你方式一樣,不過沒問題 01/01 15:38
BingJing:嗯嗯 謝謝^^ 01/01 15:54
Johnny31525:請問EQU那個值不是assembler在編譯時就決定了嗎? 01/03 22:47
Johnny31525:這樣會跟著位置變動而跑嘛? 01/03 22:48
Johnny31525:還有JMP 實際編出來可能是3BYTE也可能是2BYTE的樣子 01/03 22:49
Johnny31525:啊抱歉 前面EQU $那部份我誤解你意思 當我沒說 01/03 22:50