不用[](){}<>写一个Hello World程序

Posted on 2017, Oct5, Thursday 03:52:29 • Tagged with pwn-shellcode

不用<>写一个Hello World程序,本方法基于gcc的编译器

C语言中的函数

在C语言中,一个函数其实可以看做一个变量,假设如今定义了如下函数

int fun()
{
    return 0;
}

&fun 将会像普通变量一样取得这个函数所在的地址

gcc下main函数调用机制

一个程序,其实并不是以main为开始,而是以start函数为开始

随便将一个ELF文件拖入ida可以看见

.text:00000000004006E0 _start          proc near               ; DATA XREF: LOAD:0000000000400018 …

Continue reading

shellcode

Posted on 2017, Apr8, Saturday 18:34:51 • Tagged with pwn, pwn-shellcode

在pwn的过程中常常需要通过自己写shellcode来获取shell,本文将介绍几种简单的shellcode
 注:本文以x86为基础

调用系统函数

在开始写shellcode时,首先需要想到,我应该如何调用shell呢?

在写C语言中,通常我们需要调用

system("/bin/sh")

 从而获得shell

在写汇编时,有时候并不需要这么做

linux

在使用linux时写汇编时完全不必再去libc寻找system函数,然后传递参数并且call system,只需要使用 系统调用

先看一段引自wiki的介绍

system call is the programmatic way in …


Continue reading