# 工具篇 #
pwntools ,gdb-peda ROPgadget-tool 、 EDB
## pwntools获取、安装和文档帮助 ##
- pwntools: github可以搜索到 https://github.com/Gallopsled/pwntools
- 安装 pwntools 依赖: (最好先apt-get update下)`$ apt-get install python2.7 python2.7-dev python-pip `
- 安装pwntools `$ pip install pwntools` 可以参考 https://pwntools.readthedocs.io/en/latest/install.html
- 安装出错:我安装的时候出错了就这么弄的: 下载github 中的压缩包,解压,执行 `pip install -e .`
- 测试是否安装成功: python > from pwn import * 不报错就是ok了,可以试下命令 hex('abcd')
## gdb-peda 的获取、安装##
- github上搜索就可以找到 https://github.com/longld/peda
- 下载zip包,解压 执行 ` echo "source ~/peda/peda.py" >> ~/.gdbinit `
- 验证: gdb 随便调试个程序 会出现红色的 $gdb-peda:
## ROPgadget tools ##
- 安装 和 帮助文档 https://github.com/JonathanSalwan/ROPgadget
- 排错, 要先更新 `sudo pip install capstone` 2 `pip install ropgadget` 3 测试`ROPgadget -v `
## EDB debugger ##
- 在这里获取 https://github.com/eteran/edb-debugger
- 依赖 qt >= 4.6 : http://www.qt.io/download-open-source/ 下载离线安装包xx.run 下载后运行自动安装
- Boost >= 1.35 `apt-get install boost1.5 `
- Capston >= 3.0 `sudo pip install capstone` 更新下`sudo pip install capstone --upgrop`
- 以上折腾都不能正确安装 EDB;kali 上集成了直接kali吧
# gcc 编译选项 #
- 关闭栈溢出保护 `gcc -fno-stack-protector`
- 开启栈执行 `gcc -z execstack `
# linux系统安全特性 #
- 关闭alsr `echo 0 > /proc/sys/kernel/randomize_va_space'
- sysctl -w kernel.randomize_va_space=0
# linux 系统对调试的支持 #
- 开启 core dump `ulimit -c unlimited `
- 设置 core dump 的生成路经 `echo "/tmp/core.%t" > /proc/sys/kernel/core_pattern'
 
# 常用的测试 linux shellcode #
- 参考文件夹内
# 编写poc 小技巧 #
- 对于 read scanf 读取输入的这种编写exp,可利用 pwntools 和 zio 参看 pwntools模板
- 对于利用 argv这种命令行作为输入的可以利用这样 ` python -c "print('a'*96+'\x00\xa0\x04\x08'+'\n'+'134514147\n')" | ./passcode `
- r <<< $(python -c 'print "A"*256') # 排错 #
- -ldl 指示连接器连接一个库。这个库里包含了 dlopen, dlsym 等等的函数。也就是说,是支持“在运行时,显示加载使用动态连接库”的函数库。相关的头文件是 dlfcn.h
#其他#
- 将命令行转为TCP服务 socat TCP-LISTEN:5353,reuseaddr,fork EXEC:./app
 
 

linux-exp 工具+小技巧的更多相关文章

  1. Linux基础命令小技巧

    总结 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise L ...

  2. everything搜索工具小技巧

    everything工具平时用的也不多,但是有时候使用的时候却总是找不着北. everything支持五种搜索方式,如下图: 正则匹配搜索: 当你选择正则匹配之后,你可能需要匹配某个文件夹里面的某个文 ...

  3. 【持续更新中···】Linux下的小技巧

    1.Linux回到上级文件的命令: cd ..回到上一级目录(注意:cd 和..中间有空格) cd ~回到home目录 cd -回到某一目录

  4. linux云主机小技巧

    微信服务器安装 安装库 python 3.5环境下 pip安装web.py时 会报错 "no module named "utils" 等问题 更换命令为“pip ins ...

  5. linux服务器操作小技巧

    python程序后台一直运行,并将打印信息输出到文件中 nohup -u test.py > out.txt & -u 表示无缓冲,直接将打印信息输出带文件中 &表示程序后台运行

  6. 【Linux】vim小技巧,如何批量添加或者删除注释

    环境:centos vim或者vi都可以 例如文件如下: aaa bbb ccc ddd 有四行文件,想将前三行都添加注释 先查看行数: :set nu  可以这样做: :1,3s%^%#% 即可,如 ...

  7. linux 小技巧(磁盘空间搜索)

    这里记录一些linux 管理中可能会用到的又容易忘的一些小技巧. linux磁盘写入失败,提示磁盘空间不足.一般都会用df -h 或者df -i看是不是磁盘空间不足或者是inode空间不足.发生这种情 ...

  8. Linux小技巧scp命令

    Linux服务器运维小技巧scp命令详细教程. 前言 今天给大家带来的是linux中比较实用的命令scp.善用小技巧,解决工作中的痛点. 掌握一门好的技术或者说一门好的艺术,最快捷的方式就是融入到工作 ...

  9. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

随机推荐

  1. GCD Demo (先存起来自己看)

    // 原代码块一 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 原代码块二 N ...

  2. Theano学习笔记:Theano的艰辛安装体验

    http://www.cnblogs.com/hanahimi/p/4127026.html

  3. Linux和Windows路由配置

    Linux和Windows路由配置 一.配置路由 1-       原则上一台主机只能有一条缺省路由.如果一台主机上有多个网段的话,请配置能够上网的那个网段的网关为缺省路由 Linux配置缺省路由: ...

  4. django工作原理

  5. 7z usecaes

    1. Archive without compressing 7z a -t7z -mx=0 OutputFilename InputFilename Descryption: a: command, ...

  6. Thread 线程

    线程 Join 一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行 using System.Linq; using System.Text; using System.T ...

  7. ClassLoader,Thread.currentThread().setContextClassLoader,tomcat的ClassLoader

    实际上,在Java应用中所有程序都运行在线程里,如果在程序中没有手工设置过ClassLoader,对于一般的java类如下两种方法获得的ClassLoader通常都是同一个 this.getClass ...

  8. C++Primer 第五章

    //1.表达式语句的作用:执行表达式并丢弃求值结果 ; value + ; //执行,并丢弃结果 //2.复合语句是指用花括号括起来的语句和声明的序列,复合语句称为块.一个块就是一个作用域.块不以分号 ...

  9. G面经prepare: Straight Partition of A Deck of Cards

    Define “Straight” as 5 cards with consecutive numbers. Determine if the deck can be fully divided in ...

  10. 省市联动初探AJAX操作数据

    主要学习代码: List.html <script type="text/javascript"> function GetXhr() { return new XML ...