![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Reverse
文章平均质量分 84
Casuall
Don't be a script kiddie!
一些笔记
https://smile-zjk.gitbook.io/ctf_notes/
展开
-
函数调用的过程
前两篇文章介绍了栈帧和函数调用约定,这篇文章通过一个简单的程序来具体说明一下调用函数时都经历了哪些步骤。(建议结合着栈帧的介绍和调用约定的介绍这两篇来理解这篇文章,然后通过一个buffer overflow的实例进行深入的理解)。首先看一下源码,非常简单的一个例子,定义了一个foo()函数,将传入的参数x和y的和赋值给z,然后返回z。main()函数中调用了foo()函数,将返回结果赋值给a并打...原创 2019-08-26 07:59:36 · 943 阅读 · 0 评论 -
bugku rev1(xman) WP
用JEB查看MainActivity的onCreate函数。首先创建了一个CheckClass类的实例c,调用c.a()函数处理输入,最后判断c.check()的返回值。this.button.setOnClickListener(new View$OnClickListener() { public void onClick(View arg4) { MainActivity.this.c = new CheckClass();原创 2020-07-03 18:05:39 · 1241 阅读 · 0 评论 -
keygen-me-1 picoCTF 题解
本题来自picoCTF2018目录题目描述解题思路解题脚本题目描述Can you generate a valid product key for the validation program in /problems/keygen-me-1_3_a2370158b7b72b3863212502340f2c32解题思路首先用file查一下文件信息,32位elf可执行文件。放到虚拟机里面,加上可执行权限,运行一下。可以看到要求输入16个字符的key。用IDA查看一下伪代码,可以直接在左边的原创 2020-06-28 09:16:47 · 1220 阅读 · 0 评论 -
circuit123 picoCTF2018 题解
本题来自于picoCTF2018的一个逆向题这里写目录标题题目描述Hints分析题目描述Can you crack the key to decrypt map2 for us? The key to map1 is 11443513758266689915.HintsHave you heard of z3?分析提供了三个文件,和一个key,这个key应该是map1的key。查看了一下map1.txt的内容,并没有看出来是个啥。再看看decrypt.py内容,首先看一下主题逻辑。if原创 2020-06-27 23:21:28 · 1269 阅读 · 0 评论 -
攻防世界ReverseMe-120详解
网上其他的WP写的都比较简略,所以写一篇比较详细的解题思路,供新手参考,大神请绕过。 首先大致看一下程序的逻辑 可以看到成功的条件是v9,而v9是v13与字符串"you_know_how_to_remove_junk_code"比较的结果。然后追一下v13的数据流,看看v13是怎么来的。 可以看到v13的定义,以及一个关键函数sub_401000,为什么说是关键函数呢,...原创 2019-12-21 20:11:08 · 3224 阅读 · 4 评论 -
通过一个例子来介绍OD的简单使用
OllyDbg是一个32位的动态调试器,在平常做逆向的题中用的比较多,下面用bugku一个简单的例子Eazy-Re来介绍一下OllyDbg的使用。首先打开程序,看一下是干什么的,他提示你输入flag,这里我随便输入几个字母,提示我不正确。我们用OD打开程序,会看到下面的这个样子,如果没接触过OD的人可能直接被劝退了,这是啥乱七八糟的,别急,一点点来看,打开程序后会出现5个面板(我更喜欢称之为...原创 2019-12-04 10:24:25 · 3722 阅读 · 0 评论 -
通过一个例子来介绍IDA的简单使用
通过一个简单的题来了解一下IDA的基本操作,题目是bugku的一个简单的逆向,Easy_re。将题目下载下来,发现是一个exe可执行文件,先运行一下看看[外链图片转存失败(img-ub5SlY5B-1567387294256)(https://i.loli.net/2019/09/01/bU5XpG3EYDOjigP.png)]有一些字符串提示,让你输入一个字符串,提示输入flag,随便输入...原创 2019-09-02 09:22:43 · 3258 阅读 · 0 评论 -
大端序和小端序
字节存储顺序主要分为大端序(Big-endian)和小端序(Little-endian),区别如下Big-endian:高位字节存入低地址,低位字节存入高地址Little-endian:低位字节存入低地址,高位字节存入高地址例如,将12345678h写入1000h开始的内存中,以大端序和小端序模式存放结果如下一般来说,x86系列CPU都是Little-endian字节序,PowerP...原创 2019-08-05 11:45:00 · 30374 阅读 · 6 评论 -
手动脱壳---ESP定律
首先这篇文章不是讲ESP定律的原理,第一次接触ESP定律,跟着教程做了一遍,做个笔记,记录手动脱壳的过程。首先载入OD,F8执行到pushad下面的call,然后观察寄存器,如果只有ESP和EIP是红色的,那么可以用ESP定律。右键ESP的数据,选择数据窗口中跟随,可以看到左下角的数据窗口发生了跳转。然后选择第一个数据 --> 右键 --> 断点 --> 硬件访问 --&...原创 2019-06-04 11:07:12 · 1075 阅读 · 0 评论 -
看雪ctf 流浪者 WP
看雪ctf 第一题 流浪者 wp 打开程序,提示要验证password,载入OD,按照签到题的思路,改了一个跳转,出现了提示框pass,但是没有flag,应该不是这种思路(我是一个刚入手的萌新,可能没改全,所以出不来flag,只能换一个思路了)。一步一步调试,发现程序比较的字符串和我输入的不一样,我输入了一堆1,但是发现最终比较的是一堆b,所以应该是中间做了一些处理,如图,重新调试,发现了一个...原创 2019-03-19 21:42:08 · 897 阅读 · 0 评论 -
BugKu逆向---love---WP
首先运行一下程序,随便输入一个字符串,看下返回结果,提示"wrong flag!"然后查一下壳没有壳,是C++写的程序,用OD打开调试一下。加载进去发现和以前载入的入口地址不一样,别慌,先查搜索一下ASCII,能搜到之前给出的提示"wrong flag"。跟过去看看发现在字符串"wrong flag"上面有一个判断语句,左边有个跳转的小三角,选中他,能看到跳转到下面"right f...原创 2019-04-03 20:58:01 · 1369 阅读 · 0 评论