CTF-REVERSE-Daily(4)-Elfcrackme2

链接:http://pan.baidu.com/s/1hshVzvu 密码:sd4d

非常非常坑爹的一道题目,看似非常简单,实则有很深的套路

我会综合写出三种方法,包括 结合ascii码值范围的爆破,动态调试解法,静态调试解法

(感谢我xx学长的支持和某位网友的writeup)

1.首先拿到该程序,丢进ida会发现这是个linux程序,程序主体看起来也很简单,在ubuntu下也能正常跑起来

2.结合汇编语言,对程序可以做一个大致的分析,第二个if的判断是分别将输入的字符串的每一位和v4/v0(32位)的第一,二,三,四个字节做异或并将结果和0x80498f0起始处的字符串做比较,只有16位全相等时才会输出正确

3.瞄了一眼,v4和v0的值发现和输入字符串无关,应该是个固定值,而v4=v0对应的汇编语言是mov edx,eax,所以正常的想法是用gdb在0x08048416处下断点

4.如果你的思路和我一样,那么恭喜你入套了,不过还是先这样走完

5.用gdb下断点后可以得到eax的值,如图为:0xd90c5525

6.于是我尝试写了这样一个代码:

7.当然你得到的只会是乱码。。。

8.好吧,现在是早上01:43:32我就不废话了,我还要睡觉呢!错误的原因在于第一个if语句是对text段的读操作,并对读到的值进行一系列的运算操作,从main函数一直读到0x0804872A,当然也会读到你下断点的地方,而据网上资料所讲b *0x 操作是将相应处内存改为0xcc,这样一来你得到的eax和edx的值就会不对,那该怎么办呢

解法一:动态调试的方法

这期间我犯了很多很多的错误

错误一:我分别用了 b *0x08048418 if $eip==0x08048146//r 和b *0x080483fa//r//b *08048418 if $edx==$dbx这两种方法

错误的原因在于理解错了breakpoint指令的意思  我以为b if 是时时监控 条件成立就下断点  实际上是运行到断点处才判断。。

如果是犯同样错误的人自己理解吧,这样是不行的

错误二:watch $eip==0x08048418      也是错的 具体原因我还没有查

直接写出最终解法吧:内存访问监控  涉及到的gdb指令是awatch(awatch是读写断点,内存被读或着写时都会断。而rwatch是读时断,watch是写时断。)

我这里用到的是awatch

指令为awatch *0x08048148//r//info b//d 1//s//s//...//b *0x08048148//c

这样一开就能得到正确的eax值,再结合最开始写的脚本就可以得到flag

待续。。。

时间: 2024-12-05 05:21:44

CTF-REVERSE-Daily(4)-Elfcrackme2的相关文章

浙大ctf REVERSE

Classical Crackme 字符串base64 解密即可

【CTF】Reverse CSC2015 120

来源: Cyber Security Challenge 2015 题目:Crackme 类型: Reverse 分数: 120 难度:中(难中易三个级别) 描述: We found this binary, but we lost the password. Please retrieve it for us. 题目链接:https://github.com/ctfs/write-ups-2015/tree/master/cyber-security-challenge-2015/revers

【CTF】Reverse [email protected]

来源: 360 CTF 2014 Reverse20 说明:已在压缩包中给定了一个用ReverseMe.exe加密过后的文件:密文.db请分析ReverseMe.exe的算法,写出解密算法,解密该文件得到Key.该Exe里有一个bug,导致exe无法运行:提示:你有两种方法得到该Key:1.找到bug,patch掉之后,运行两次该程序即可解密文件得到key.2.老老实实的逆这个简单的算法,写出一个解密程序,解密. 答案: [CTF]Reverse [email protected]

【CTF】Reverse Backdoor 2015 Echo

来源: Backdoor CTF 2015 Little Suzie started learning C. She created a simple program that echo's back whatever you input. Here is the binary file. The vampire came across this service on the internet. nc hack.bckdr.in 8002. Reports say he found a flag

CTF入门之reverse

原文地址:https://www.cnblogs.com/qing123tian/p/11183088.html

Pediy CTF 2018 reverse

00401057 |. /0F87 B0000000 |ja 18a51cbc.0040110D 0040105D |. |33DB |xor ebx,ebx ; 清空ebx 0040105F |> |8A441C 14 |/mov al,byte ptr ss:[esp+ebx+0x14] ; 拿到假码的第一个字节 00401063 |. |84C0 ||test al,al ; 判断拿到的是否为空 00401065 |. |74 49 ||je short 18a51cbc.004010B0

0ops CTF/0CTF writeup

0×00 0CTF『第一届0ops信息安全技术挑战赛,即0ops Capture The Flag,以下简称0CTF. 0CTF由上海交通大学网络信息中心和上海市信息安全行业协会指导,由上海交通大学信息网络安全协会承办,是2014信息安全技能竞赛校园赛首站.0CTF注册与参赛地址为http://ctf.0ops.net. 比赛时间为北京时间2014年3月1日至2日,每天7时至23时,共32小时.』 看官方微博,这个比赛本来是面向上交校内的,就是校外可以做题但是不发奖,后来也给校外发奖了,整体感觉

2016 SWPU CTF的WriteUp

2.1.题目信息 地址: QQ群:184517991 分值: 50分Flag: flag{welcome_swpu_ctf} 2.2.解题过程 进入他们官方的QQ群,找了一圈没找到Flag,然后问了下管理员,管理员表示Flag在历史公告,But我的Mac QQ并不能看历史公告,于是... 嗯,这是一道送分题 3.Misc150(Misc2) 2.1.题目信息 地址: http://misc.08067.me/misc2/misc.pcapng分值: 150分Flag: flag{Rgb_dhsk

CTF入门指南

转自http://www.cnblogs.com/christychang/p/6032532.html ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web密码学pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等misc 杂项,隐写,数据还原,脑洞.社会工程.与信息安全相关的大数据reverse 逆向windows.linux类ppc 编程类的 国内外著名比赛 国外:国内:xctf联赛 0ctf上海国内外都有,很强 入门需要哪些基础

HNU 13411 Reverse a Road II(最大流+BFS)经典

Reverse a Road II Time Limit: 10000ms, Special Time Limit:25000ms, Memory Limit:65536KB Total submit users: 10, Accepted users: 6 Problem 13411 : No special judgement Problem description JAG Kingdom is a strange kingdom such that its N cities are con