[問題] ShellCode中, String後面帶Null的問題

看板C_and_CPP (C/C++)作者 (Mikemagic88)時間6年前 (2019/05/03 22:01), 6年前編輯推噓2(200)
留言2則, 1人參與, 6年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) ubantu 16.04 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) gcc吧 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 1. 格式是參考手邊一個8號sys_creat的(程式碼和sys_call需要的參數一樣) 2. 有參考StackOverFlow的mkdir組合語言( https://reurl.cc/0Qgek ) 3. 問題在於String後面好像要帶null, 所以我不知道要不要把 db "123", 00 <- 後面這個, 00刪除直接改用手動填入00的方式 4. 手動填入00又不能讓op code跑出00 只能用xor ecx, ecx的方式 所以最大問題應該是...pop出來的值要怎麼在最後面填00? 5. 我參考的資料的內容是寫 db 'abc.txt' 是單引號但有副檔名 不知道為什麼不能單純單引號abc就好呢? 餵入的資料(Input): 預期的正確結果(Expected Output): 應該要開一個資料夾出來 錯誤結果(Wrong Output): Segmentation fault 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) https://pastebin.com/Eavbf3SX 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.116.179 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1556892115.A.E3C.html

05/04 14:03, 6年前 , 1F
用bit反轉方式存進去,執行的時候用反轉回來再用
05/04 14:03, 1F
最後用xor ecx, ecx把ecx都變成0 再用mov bl, cl蓋掉ebx最後8bits 雖然資料夾名稱會跑掉 但至少出現資料夾了 ※ 編輯: mikemagic88 (36.225.116.179), 05/04/2019 21:03:31

05/05 00:43, 6年前 , 2F
名稱跑掉可能因為蓋錯地方,去確認下little endian
05/05 00:43, 2F
文章代碼(AID): #1Sp4dJuy (C_and_CPP)
文章代碼(AID): #1Sp4dJuy (C_and_CPP)