# 工具篇 #
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. JQuery:JQuery 中的CSS()方法

    JQuery:CSS()方法jQuery css()方法:css()方法设置或返回被选元素的一个或多个样式属性.1.返回 CSS 属性如需返回指定的 CSS 属性的值,请使用如下语法:css(&quo ...

  2. A股回归牛市?

    A股回归牛市? 国际知名投行摩根士丹利(Morgan Stanley)预计,中国股市将恢复牛市大涨行情. 该行预计上证综指明年底将报4,400点,较目前的3,241点水平涨36%.预计每股盈余(EPS ...

  3. Inside Kolla - 05 从 tools 目录开始

    从 tools 目录开始 在上一篇中已介绍了 Kolla 的源代码目录结构和各个目录中源代码的基本作用,现在开始深入到各个目录,介绍目录中的具体内容.每个人分析代码的思路和方法不同,会选择从不同的目录 ...

  4. [BS-00] const限定常量或者变量(初次赋值后),其值不允许被改变

    CONST(C中的CONST) const是一个C语言(ANSI C)的关键字,它限定一个变量不允许被改变,产生静态作用.使用const在一定程度上可以提高程序的安全性和可靠性.另外,在观看别人代码的 ...

  5. SQL Server 2008 R2 数据库安装

    操作系统    Windows server 2008 R2 数据库      SQL Server 2008 R2 注意:SQL Server 2008 R2需要操作系统首先安装.NET Frame ...

  6. osgEarth编译的一些问题

    这两天借着osg培训的机会捯饬了下64位osgearth的编译.遇到了一些问题: 首先我没有编译osg,用的提供的osg3.2.1编译好的64位包. 编译osgearth先后编译了2个版本,先是2.7 ...

  7. curl命令常见用法汇总 good

    curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服 ...

  8. 使用UDEV绑定ASM多路径磁盘

    OS版本:RHEL6.4 1) 找出目标磁盘的分区别名 # dmsetup ls |grep data data01 (253:9) data04 (253:4) data03 (253:3) dat ...

  9. Java基础之线程——使用执行器(UsingExecutors)

    控制台程序. 在这个版本的银行示例中,把借款和贷款事务创建为在不同线程中执行的任务,它们把事务提交给职员.创建事务的任务是Callable<>任务,因为它们需要返回已为每个账户创建的借款或 ...

  10. Java基础之写文件——使用Formatter对象加载缓冲区(UsingAFormatter)

    控制台程序,使用Formatter对象将写入文件的数据准备好. 使用Formatter对象的format()方法,将数据值格式化到视图缓冲区charBuf中. import static java.n ...