黑客编程之初识ShellCode技术

ShellCode是一种不依赖PE加载器的二进制代码,能在任意进程中执行。本文介绍了ShellCode的概念、编写难点,包括代码自定位、数据处理和API调用,并提到了使用C/C++和汇编语言进行开发,以及在C语言中使用内联汇编的方法。文章还建议初学者通过网络安全渗透测试课程学习相关知识。
摘要由CSDN通过智能技术生成

什么是shellcode:
1996年,Aleph One在Underground发表了著名论文《SMASHING THE STACK FOR FUN AND PROFIT》,其中详细描述了Linux系统中栈的结构和如何利用基于栈的缓冲区溢出。在这篇具有划时代意义的论文中,Aleph One演示了如何向进程中植入一段用于获得shell的代码,并在论文中称这段被植入进程的代码为“shellcode”。 后来人们干脆统一用shellcode这个专用术语来通称缓冲区溢出攻击中植入进程的代码。这段代码可以是出于恶作剧目的的弹出一个消息框,也可以是出于攻击目的的删改重要文件、窃取数据、上传木马病毒并运行,甚至是出于破坏目的的格式化硬盘等等。请注意本章讨论的shellcode就是这种广义上的植入进程的代码,而不是狭义上的仅仅用来获得shell的代码。

那到底什么是shellcode:
本人理解:
shellcode就是一段不依靠pe加载器加载和处理的(不需要重定位表、不需要导入表、不需要数据段);在任意进程都空间都可以执行的一段二进制代码。

编写shellcode的难点在哪里:
1.代码的自定位。
2.所用到的数据的处理。
3.获取kernel32的基址。
4.使用的API的处理

1.使用的开发语言:C/C++ ASM

shellcode是一段短小且功能强大的二进制数据,所以短小也是他的一个特点,所以在语言选择上要使用汇编语言。

2.IDE编辑器: 既然是写汇编代码最好是用汇编类的IDE例如RadAsm,RadAsm功

能强大,有汇编关键字的联想和着色功能,但事实上高级语言的IDE也支持汇编语言的编译,只需要适当的设置或者使用适当的语法。我们写这段shellcode虽然用汇编语言,但我们仍然使用vidua

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值