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

几年前的笔记,搬运过来 ---   1 先根据运行程序得到的信息命名外围函数,主要函数大写开头 2 /添加注释 3 直接vim程序,修改alarm为isnan可以patch掉alarm函数 4 y 可以修改变量类型,函数返回类型 5 对于重要的全局变量,x查看每个引用的地方 6 subview打开local type窗口,插入后双击导入到structures窗口,     在f5窗口中可y修改变量类型     1 插入时可先插入连续int,abcd这样命名,确定对应字母含义后在structure…
数据集本身的分析技巧           作者:王立敏           文章来源:网络 1.数据集 数据集,又称为资料集.数据集合或资料集合,是一种由数据所组成的集合. Data set(或dataset)是一个数据的集合,通常以表格形式出现.每一列代表一个特定变量.每一行都对应于某一成员的数据集的问题.它列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数.每个数值被称为数据资料.对应于行数,该数据集的数据可能包括一个或多个成员. 2.数据分析 数据结构 创建向量和矩阵 函数c(…
1. 问题 一些程序经过脱壳后(如用OD的dump插件),一些导入表信息丢失了,导致拖入IDA后看不到API的信息(如右图所示,第一个红圈处实际是GetCurrentProcessId),给分析造成极大影响.   2. 分析 从OD来看,41F480处的值就是API GetCurrentProcessId的地址,也就是壳修改后的导入表的位置,该地址在.rsrc Section内,即程序的资源段内,那么我们需要修复其导入表,以指向资源段内的地址 3. 修复导入表 <加密与解密>第3版的13.4.…
ZCTF的pwn赛题分析, PWN100 这道题与SCTF的pwn100玩法是一样的,区别在于这个要过前面的几个限制条件.不能触发exit(0).否则就不能实现溢出了. 依然是触发canary来leak出内存中的flag. note1 这次ZCTF的题是以一个系列出的,以下三个题都是同一个程序. 首先看了一下程序的大概流程,这个是记事本程序. 1.New note\n2.Show notes list\n3.Edit note\n4.Delete note\n5.Quit\noption--->…
因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目.主防项目目前先搁置起来了,等比赛打完再去搞吧. 这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很符合套路的:一道栈溢出.一道格式化字符串.一道堆溢出. pwn200 一个栈溢出. 题目给出了libc.保护只有nx. 拿到题后的基本思路就是leak出got表中函数的地址,然后拿libc算偏移算出system的地址.然后用这个地址去覆盖一个函数的got表. pwn300 一个明显的格式化字符串漏洞…
我用的IDA Pro 6.5,把我自己使用ida的一些方法记录,免得自己遗忘 1 .导入符号表 可以像前一篇博客中写的那样,也可以使用File--->LoadFile--->PDB File 选择符号文件,然后File--->LoadFile--->ReloadInputFile 重新分析 2.改变基地址 ida中的地址都是偏移,和WinDbg中不一样,可以改变ida中的基地址来匹配windbg中的地址 Edit--->Segement---->RebaseProgra…
pwn200 漏洞给的很明显,先是读到了main的局部数组中,然后在子函数中向子函数的局部数组栈里复制. 总体思路是leak system的地址,然后再向一个固定地址写入/bin/sh,最后执行system函数 leak使用pwn库的DynELF实现,整体使用rop链. //ida伪代码 int __fastcall echo(__int64 a1) { char s2[]; // [sp+10h] [bp-10h]@2 for ( i = ; *(_BYTE *)(i + a1); ++i )…
oreo程序下载 提取码:t4xx 程序分析 int __cdecl main() { leave_add = 0; leave_del = 0; leave_buf = (char *)&unk_804A2C0; ... ... menu(); return 0; } main函数中先赋值了三个全局变量,这三个变量在.bss段是连续的 在这个程序中,没有setvbuf设置输出缓冲,在遇到printf 打印没有 '\n'的字符串时,可能不会输出到终端 ps:我在这里纠结了好久,我在python中…
原文地址:https://github.com/Naetw/CTF-pwn-tips 目录 溢出 在gdb中寻找字符串 二进制服务 找到libc中特定函数的偏移地址 Find '/bin/sh' or 'sh' in library Leak stack address gdb中的fork问题 Secret of a mysterious section - .tls Predictable RNG(Random Number Generator) Make stack executable U…
java虚拟机执行一般都有一个内存界限,超过这个界限,就会报outofmemory.这个时候一般都是存在内存泄漏.解决内存泄漏问题,窃以为分为两个步骤:分析应用程序是否真的有内存泄漏,找到内存泄漏的地方.这两个步骤都不是一般意义上的调试,直接打log,断点调试都不是太给力.动脑筋想一想,内存问题应该在非常多地方上都会出现,这么常见的问题应该是有工具的.android如今更能够说是一个生态系统,当然也有非常多开发辅助工具.在前面的两个步骤中都有非常强大的武器,熟练的掌握这些利器,分析问题就会事半功…
USB流量分析 USB接口是目前最为通用的外设接口之一,通过监听该接口的流量,可以得到很多有意思的东西,例如键盘击键,鼠标移动与点击,存储设备的明文传输通信.USB无线网卡网络传输内容等. 1.USB流量的捕获 USB流量的捕获可以使用wireshark自带的工具usbpcap来进行 安装wirshark时勾选上安装usbpcap即可 1.鼠标流量 抓包 鼠标移动的轨迹,右键,左键的行为都能捕捉到 (这里有个坑,有的鼠标可能协议不标准.抓到的数据分析不了) 保存为pacp文件 USB协议的数据部…
Re1 是一个简单的字符串加密.程序使用了多个线程,然后进行同步.等加密线程加密好了之后才会启动验证线程.这个题比较坑的是IDA F5出来的结果不对,不知道是不是混淆机制. 刚开始看的是F5后的伪代码,一脸懵逼.后来看了下汇编才明白是怎么回事. 解密直接打表就可以,也可以写逆算法. pwn1 用checksec看了一下保护机制,有canary+nx保护.漏洞是一个简单的栈溢出,但是没有办法劫持程序的流程. 因为flag已经被读到了内存中了,所以就想到去leak出来.后来知道有一种ssp leak…
工具集 基础工具:Burpsuite,python,firefox(hackbar,foxyproxy,user-agent,swither等) 扫描工具:nmap,nessus,openvas sql注入工具:sqlmap等 xss平台:xssplatfrom,beef 文件上传工具:cknife 文件包含工具:LFlsuite 暴力破解工具:burp暴力破解模块,md5Crack,hydra 常用套路总结 直接查看网页源码,即可找到flag 查看http请求/响应,使用burp查看http头…
本文首发安全客:https://www.anquanke.com/post/id/104760 在刚结束的HITB-XCTF有一道pwn题gundam使用了2.26版本的libc.因为2.26版本中加入了一些新的机制,自己一开始没有找到利用方式,后来经大佬提醒,才明白2.26版本中新加了一种名叫tcache(thread local caching)的缓存机制. 本文将依据2.26源码探讨tcache机制详细情况并结合HITB-XCTF的gundam一题进行实战讲解.题目下载地址. Tcache…
View - Open Subviews - Local Type - INSERT键 - 输入新结构体 - 右击"Synchornize to idb" 之后再分析处按 T 就可以看到该结构体,进行解析.…
1. 对项目右击,在文件资源管理器中打开文件夹 2.看debug里面的.exe     这个文件 函数的真实的名字 打开.exe文件就是还是显示,,, 3.debug模式有太多的断点信息还有许多不精简的文件生成 所以用IDA 看函数名在release模式下 还有发布            也是用release模式 4.用release模式  禁止优化 c/c++ 禁止优化 5. 6. 7.…
第一次做出XCTF的题目来,感谢wjh师傅的指点,虽然只做出一道最简单的pwn题,但是还是挺开心的.此贴用来记录一下,赛后试着看看其他大师傅的wp,看看能不能再做出一道题来. babyheap 程序有add.delete.show.edit功能. 在add函数只能创建0x10-0x60大小的chunk. delete函数存在uaf漏洞. show函数平平无奇. edit函数只能往chunk+8的位置进行写,就是在free之后不能直接利用uaf漏洞改写fd指针. 还有一个函数是leavename函…
查看某个字段的分词结果 POST /index/tyhpe/id/_termvectors?fields=fields_name 例如:http://localhost:9200/prod_membermodel/membermodel/80/_termvectors?fields=nickName _analyze查看分词结果 前缀搜索 { "query": { "bool": { "should": [ { "match_phras…
俗话说,工欲善其事,必先利其器,在二进制安全的学习中,使用工具尤为重要,而IDA又是玩二进制的神器,以前在使用IDA的时候,只是用几个比较常用的功能,对于IDA的其他功能没有去研究,于是本着学习的精神,参考着<IDA pro权威指南>(第二版),写下这篇文章,记录自己的学习心得,下面的记录都是在Windows平台下的IDA pro7.0进行的 一些二进制工具 在<IDA pro权威指南>的开篇一两章中,先是介绍了几款常用于二进制研究的工具,我这里简单的记了几个,介绍一波: C++f…
Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有注释的python脚本. 课程回顾>> Linux Pwn入门教程第一章:环境配置 Linux Pwn入门教程…
在网上关于ctf pwn的入门资料和writeup还是不少的,但是一些过渡的相关知识就比较少了,大部分赛棍都是在不断刷题中总结和进阶的.所以我觉得可以把学习过程中的遇到的一些问题和技巧总结成文,供大家参考和一起交流.当然,也不想搞那些烂大街的东西,所以,打算从一道道pwn题开始,见微知著,在题目中延伸. 一:工欲善其事必先利其器 ubuntu14.01 64位(该版本对pwntools的支持最好). pwntools:用于快速编写pwn的exp的python库,功能非常强大. IDA:二进制必备…
全国大学生信息安全竞赛创新实践能力赛旨在培养.选拔.推荐优秀信息安全专业人才创造条件,促进高等学校信息安全专业课程体系.教学内容和方法的改革,培养学生的创新意识与团队合作精神,普及信息安全知识,增强学生信息安全意识. 永信至诚作为本次大学生信息安全竞赛创新实践能力赛线上海选赛.部分分区赛.全国总决赛的技术支撑单位,为本次大赛提供专业的技术平台及运营服务,为参赛选手提供公平公正的竞赛平台. 在过去的几年里永信至诚通过i春秋.e春秋.企安殿平台承办了350+场网络安全竞赛,覆盖约25万人次,几乎在每…
本文原创作者:W1ngs,本文属i春秋原创奖励计划,未经许可禁止转载!前言:最近在入门pwn的栈溢出,做了一下jarvisoj里的一些ctf pwn题,感觉质量都很不错,难度循序渐进,把自己做题的思路和心得记录了一下,希望能给入门pwn的朋友带来点帮助和启发,大牛轻喷 题目链接:https://www.jarvisoj.com/challenges1.level0(64位)代码<ignore_js_op><ignore_js_op> 也就是输出Hello World以后接收一个输出…
pwn ”Pwn”是一个黑客语法的俚语词 ,是指攻破设备或者系统 .发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵.以上是从百度百科上面抄的简介,而我个人理解的话,应该就是向目标发送特定的数据,使得其执行本来不会执行的代码,前段时间爆发的永恒之蓝等病毒其实也算得上是pwn的一种. pwn介绍 CTF pwn中的目标是拿到flag,一般是在linux平台下通过二进制/系统调用等方式编写漏洞利用脚本exp来获取对方服务器的shell,然后get到…
目录 题目汇总 Reverse 签到题 Web Web中等难度 Crypto 基础网站 各类工具 综合 Web Payloads 逆向 Pwn 取证 题目汇总 这里收集了我做过的CTF题目 Reverse 签到题 Google Capture The Flag 2018 (Quals) - Reverse - Beginner's Quest - Gatekeeper 用strings直接查找字符串就能做的题 Google Capture The Flag 2018 (Quals) - Begi…
面向pwn刷cgctfPWN1,When did you born题目给了一个ELF文件,和一个.C文件先运行ELF,大概如下What’s Your Birth?0What’s Your Name?0You Are Born In 0You Are Naive.You Speed One Second Here.打开.C文件,发现是ELF的源码 #include <stdio.h> struct Student { char name[8]; int birth; }; int main(vo…
0x00: 简介 沙箱机制,英文sandbox,是计算机领域的虚拟技术,常见于安全方向.一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造成任何危害. 安全计算模式seccomp(Secure Computing Mode)在Linux2.6.10之后引入到kernel的特性,可用其实现一个沙箱环境.使用seccomp模式可以定义系统调用白名单和黑名单.seccomp机制用于限制应用程序可以使用的系统调用,增加系统的安全性. 在ctf…
做cctf pwn printf题目的时候 疑问为什么dir函数会将之前out的name倒叙输出 调试了一下发现当malloc(0xf4)大小时候,例如 第一次分配0x1000的地址,将名字输入到0x1000后 第二次malloc(0xf4)时,本题申请到的地址为0x10f8 而dir中判断完第一次传进来的file_head不为空之后将这个file--head的内容拷贝到s,然后将将申请地址 + 0xf0 之后的内容取出来 再比较 拷贝 PS:在ida分析时一定要注意 f5之后指针的类型 我真是…
最近社团弄了CTF比赛,然后我就帮忙写了逆向的题目,这里写一下WriteUp,题目和源码在附件中给出 一个简单的逆向:one_jmp_to_flag.exe 这题算是签到题,直接OD智能搜索就完事了,flag{Welcome_to_GeekFZCTF} 一个简单的对比:check.exe 这一道也算是送分题,可以用IDA直接分析可以看出来,这里就是读取输入的字符串,然后逐个进行对比,这里可以直接用IDA转化为char型就可以看出.flag{sAdf_fDfkl_Fdf} 猜猜那个是flag:wh…
这道题目我没有写出Exploit,因为编码时候里面几个细节处理出错.但对程序的逆向分析已完成,这里就学习一下别人写Exploit的思路.主要参考:绿盟科技网络攻防赛资料下载 0x01 题目要求 题目要求如下: 1.找出Exploit.exe中的漏洞.简单分析漏洞的成因,包括漏洞类型.相关的反汇编或伪C代码以及说明信息等. 2.在开启DEP+ASLR的系统里运行Exploit.弹出计算器. 0x02 漏洞分析 首先脱掉ASPack壳,OEP如下: 使用IDA分析,发现这是一个Socket serv…