zoukankan      html  css  js  c++  java
  • [PWN]新手入门第一篇章介绍

    最近闲的蛋疼,在做了PWN各种题型后,准备总结一下知识点,方便后续朋友及小白查询,大家一起努力吧......

    PWN

    pwn 介绍

    1、pwn: 破解,利用成功(程序的二进制漏洞)
    2、攻破(设备,服务器)
    3、控制(设备,服务器)
    linux下的可执行文件是ELF
    exploit用于攻击脚本的脚本与方案
    攻击载荷,是目标进程被劫持控制流的数据
    shellcode调用攻击目标的shell脚本

    一切的编译型语言都可以生成二进制文件

    在vim中查看一个文件的二进制格式是在末行模式输入:%!xxd

    此时你看到的二进制的值都是在ascii范围内的,因为它是文本文件

    ,文本文件的所有值都是ascii码值

    通过gcc编译c程序文件中间经历了很多过程,但做PWN的时候我们只关心中间的两个步骤:

    c程序源代码---------->汇编程序代码文件----------->目标文件(链接文件)--------------->可执行程序文件(目标文件链接成可执行文件)

    gcc -S test.c # 会把C语言文件编译成汇编代码文件test.s

    gcc test.s #就是通过gcc把这个汇编文件再编译成二进制执行文件 a.out

    当我们通过vim来查看a.out的二进制执行文件的内容的时候,会出现大量的乱码,只有少数的字符才会正常显示,这是因为在计算机底层编码中,只有特定范围的值是可以表现为字符的

    人能看懂的代码----------------编译器、解释器--------------------机器能看懂的代码(由0、1组成)

    动态链接库的文件通过libc进行链接,静态链接库的文件直接写在了文件的本身

    有一种说法叫做C语言代码是转换一种格式写的汇编代码

    计算机的鼻祖----图灵机,即打印纸带的机器,目前大家用的都是冯诺依曼机

    可执行文件的分类:

    1、windows:PE(Portable Executable)

    可执行程序:.exe

    动态链接库: .dll

    静态链接库:.lib

    2、linux:ELF(Executable and Linkable Format)

    可执行程序:.out

    动态链接库:.so

    静态链接库:.a

    一个ELF文件的主体部分是机器码,当然它并不仅仅只有机器码,它还有各种数据部分来标识这个文件的相关信息

    3、ELF文件结构:

    header -----------ELF header:表示ELF的文件头(ELF文件头表)

    Program Header table:程序头(段表):进程映向不同部分权限的

    sections -----------Code:给CPU认得机器码,代码段只读不可写

    Data:就是计算机运行中用到的一些相关数据,数据段可写

    Sections'names

    header ------------Section Header table:节头表,是用来组织节的内容的,是用来组织ELF文件存储在磁盘上,各个节的 信息,节试图是给ELF用的,段视图是给进程的进程映向用的,就是记录各种节的分类信息

    除了ELF header必须放在ELF的开头部分,其余的可随意放置

    这三个表放置的都是控制信息,控制信息放置了一些可见字符与不可见字符

    ELF文件在硬盘上和在内存中结构是相似的,但是是有区别的,磁盘是一个大容量低速存储器,内存是一个小容量高速存储器

    最接近CPU的存储器是寄存器,下来就是cache(高速缓冲存储器),cache是一个高端CPU或者是低端CPU的直接体现,cache是CPU里自带的存储器

    高端的CPU会配备多级cache

    内存是用电频信号保存数据的,所以一断电,数据就会丢失

    程序代码加载到内存中并不是仅仅只是程序的本体就够了,还会有各种各样的控制结构,程序stack(栈)用来管理函数的调用状态,heap用来给用户提供动态内存申请的调用,所以ELF文件是不足以支撑程序的运行的

    objdump -s elf 用来查看elf文件在磁盘里的程序结构

    cat /proc/pid/maps 在内存中的进程结构,但这个程序必须是正在执行没有停止的程序进程,如果想看可以去这个文件夹找系统维护的守护进程来看,还有一个方法是查看这个进程的内存空间信息gdb simple.elf

     

     

  • 相关阅读:
    Install the Maven in your computer
    《李嘉诚全传》--孙良珠
    Crystal Reports 2008(水晶报表) 第一个报表
    《唤醒心中的巨人》--[美]安东尼·罗宾
    《写给女人》--[美]桃乐丝·卡耐基
    Crystal Reports 2008(水晶报表) JDBC连接mysql数据库
    Crystal Reports 2008(水晶报表) 启动时检查更新
    Crystal Reports 2008(水晶报表) 安装
    《百年孤独》--[哥伦比亚]加夫列尔·加西亚·马尔克斯
    《自己拯救自己》--[英]塞缪尔·斯迈尔斯
  • 原文地址:https://www.cnblogs.com/m-r-lee/p/13674960.html
Copyright © 2011-2022 走看看