作者mikemagic88 (Mikemagic88)
看板C_and_CPP
标题[问题] ShellCode中, String後面带Null的问题
时间Fri May 3 22:01:52 2019
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1556892115.A.E3C.html
1F:推 tjjh89017: 用bit反转方式存进去,执行的时候用反转回来再用 05/04 14:03
最後用xor ecx, ecx把ecx都变成0
再用mov bl, cl盖掉ebx最後8bits
虽然资料夹名称会跑掉
但至少出现资料夹了
※ 编辑: mikemagic88 (36.225.116.179), 05/04/2019 21:03:31
2F:推 tjjh89017: 名称跑掉可能因为盖错地方,去确认下little endian 05/05 00:43