Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

shellcode #203

Open
wsxk opened this issue Aug 10, 2024 · 0 comments
Open

shellcode #203

wsxk opened this issue Aug 10, 2024 · 0 comments

Comments

@wsxk
Copy link
Owner

wsxk commented Aug 10, 2024

https://wsxk.github.io/shellcode/

  1. 介绍: shellcode是什么

  2. 编写shellcode

  3. debugging shellcode

  4. Forbidden Bytes

  5. Common Gotchas

  6. Cross-Architecture shellcode

  7. Data Execution Prevention

  8. 介绍: shellcode是什么
    谈起shellcode,就要谈起冯诺依曼架构(Von Neumann Architecture)和哈佛架构(Harvard Architecture)了
    冯诺依曼架构把代码和数据等同的,而哈佛架构设计上就把代码和数据隔离开来。
    当今几乎所有架构,例如x86, ARM, MIPS, PPC(power pc), SPARC(Scalable Processor Architecture,国际最流行的risc体系架构, etc,都是冯诺依曼架构。
    更多了解https://zhuanlan.zhihu.com/p/481536761
    哈佛架构只被用在AVR, PIC里(这俩架构都主要用在单片机上)
    当冯诺依曼架构中,因为数据和代码是混合在一起的,这就导致了shellcode的产生

上图中,因为一个编程失误,导致用户输入(data)被作为代码(code)执行。

  1. 编写shellcode
    shellcode之所以叫shellcode,是因为利用的目标就是达成任意命令执行,而一个经典的攻击模式就是启动shell:execve(
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant