几年前的笔记,搬运过来
---
 
1 先根据运行程序得到的信息命名外围函数,主要函数大写开头
2 /添加注释
3 直接vim程序,修改alarm为isnan可以patch掉alarm函数
4 y 可以修改变量类型,函数返回类型
5 对于重要的全局变量,x查看每个引用的地方
6 subview打开local type窗口,插入后双击导入到structures窗口,
    在f5窗口中可y修改变量类型
    1 插入时可先插入连续int,abcd这样命名,确定对应字母含义后在structures窗口修改
    2 使用d修改字段类型
7 修改变量类型或者结构体后,在f5窗口按f5重新反编译
8 如果要修改结构体,可在local type中操作,会自动同步到structures窗口中
9 在观察数据时,可以修改全局变量的类型比如 Flower *ptr[100];然后可以转换数组,可使用r修改全局变量的名字
10 在f5窗口中,可以双击本地变量的类型进入stack of raise窗口,可以d修改变量类型
11 \是否显示强制类型转换
12 在结构体中对于起标志作用的字段,可以先命名为flag,确定作用后再修改
13 注意修改当前函数的类型,有时候可以让整个函数的结构改变,更易读
14 可以右键printf这种函数,删除可变参数
15 可如下画图画出对堆操作的步骤
16 对于堆exploit,多利用trace malloc
17 信息泄漏的小技巧
p.recvuntil('aaa')
end = 'bbb'
leak_data = p.recvuntil(end)[:-len(end)]
 
18 可以在exp后面需要的部分设置context.log_level
19 DynELF使用技巧
    先泄漏出libc中一个地址
ptr = leak(atoi_got)
d = DynELF(leak, ptr)
system = d.lookup('system')
d.bases()
   
 

ctf pwn ida 分析技巧的更多相关文章

  1. R语言重要数据集分析研究——  数据集本身的分析技巧

    数据集本身的分析技巧           作者:王立敏           文章来源:网络 1.数据集 数据集,又称为资料集.数据集合或资料集合,是一种由数据所组成的集合. Data set(或dat ...

  2. IDA分析脱壳后丢失导入表的PE

    1. 问题 一些程序经过脱壳后(如用OD的dump插件),一些导入表信息丢失了,导致拖入IDA后看不到API的信息(如右图所示,第一个红圈处实际是GetCurrentProcessId),给分析造成极 ...

  3. ZCTF2015 pwn试题分析

    ZCTF的pwn赛题分析, PWN100 这道题与SCTF的pwn100玩法是一样的,区别在于这个要过前面的几个限制条件.不能触发exit(0).否则就不能实现溢出了. 依然是触发canary来lea ...

  4. SCTF 2014 pwn题目分析

    因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目.主防项目目前先搁置起来了,等比赛打完再去搞吧. 这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很 ...

  5. IDA 使用技巧

    我用的IDA Pro 6.5,把我自己使用ida的一些方法记录,免得自己遗忘 1 .导入符号表 可以像前一篇博客中写的那样,也可以使用File--->LoadFile--->PDB Fil ...

  6. RCTF2015 pwn试题分析

    pwn200 漏洞给的很明显,先是读到了main的局部数组中,然后在子函数中向子函数的局部数组栈里复制. 总体思路是leak system的地址,然后再向一个固定地址写入/bin/sh,最后执行sys ...

  7. House_Of_Spirit ctf oreo程序分析

    oreo程序下载 提取码:t4xx 程序分析 int __cdecl main() { leave_add = 0; leave_del = 0; leave_buf = (char *)&u ...

  8. pwn的一些技巧与总结

    原文地址:https://github.com/Naetw/CTF-pwn-tips 目录 溢出 在gdb中寻找字符串 二进制服务 找到libc中特定函数的偏移地址 Find '/bin/sh' or ...

  9. android 内存泄漏分析技巧

    java虚拟机执行一般都有一个内存界限,超过这个界限,就会报outofmemory.这个时候一般都是存在内存泄漏.解决内存泄漏问题,窃以为分为两个步骤:分析应用程序是否真的有内存泄漏,找到内存泄漏的地 ...

随机推荐

  1. SpringBoot导入jsp依赖始终报错

    先粘出我自己的pom代码: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  2. 利用JVM在线调试工具排查线上问题

    在生产上我们经常会碰到一些不好排查的问题,例如线程安全问题,用最简单的threaddump或者heapdump不好查到问题原因.为了排查这些问题,有时我们会临时加一些日志,比如在一些关键的函数里打印出 ...

  3. 【Java】后台将文件上传至远程服务器

    问题:由于系统在局域网(能访问外网)内,但外网无法请求局域网内服务器文件和进行处理文件. 解决:建立文件服务器,用于存储文件及外网调用. 客户端(文件上传): package cn.hkwl.lm.u ...

  4. mongodb完整安装

    在线下载安装依赖包 yum -y install gcc gcc-c++ yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison yu ...

  5. Java 语言的发展史

    维基百科引入 早期的Java 语言最开始只是Sun计算机(Sun MicroSystems)公司在1990年12月开始研究的一个内部项目.Sun计算机公司的一个叫做帕特里克·诺顿的工程师被公司自己开发 ...

  6. WPF写圆形头像,带消息提醒图标

    <DockPanel VerticalAlignment="Top" HorizontalAlignment="Stretch" Margin=" ...

  7. [Quarks PwDump]Hash dump神器

    好不好用就不用说了哈  记录下使用方式 也支持导出本地哈希.域控哈希等.配合hashcat神器 奇效. 它目前可以导出 : – Local accounts NT/LM hashes +history ...

  8. 全平台正向tcp端口转发工具rinetd的使用

    Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.其实,Linux下有一个叫rinetd的工具,安装简单,配置也不复杂. 下载 ...

  9. Python开发【第四篇】语句与函数

    语句 statement 语句是由一些表达式组成,通常一条语句可以独立的执行来完成一部分事情,并且形成结果. 多条语句写在一行内要用分号分开 例子: print('hello world') #这是一 ...

  10. 上传文件夹或上传文件到linux

    http://jingyan.baidu.com/article/d169e18658995a436611d8ee.html https://www.cnblogs.com/nbf-156cwl/p/ ...