随笔分类 - CTF逆向
摘要:第一次逆向APK,只知道jeb这种东西,直接JEB反编译吧,还好学过了java,能看懂一点。 v0 是获取我们输入的字符串。 v1,v2 两个应该是那两个函数的返回值,但是这两个函数是空的,也不知道咋办。 往下看,v0 = a.d + v1。 v1不知道,a.d 为114366 然后对 最终v0进行
阅读全文
摘要:PEID查 .NET 直接ilspy反编译,很直观的代码。理清逻辑。 主函数: 经过一个函数(函数名乱码)对字符串变量a_进行变换,并将结果存入b中,最后将输入与b比较。 函数二: 依次取字符串的每个字符,并通过某函数(函数三)进行转换,每个字符循环变换14次。最后对变换后的字符串进行md5加密(函
阅读全文
摘要:记录一下特征吧 Elymas语言编写。谁会啊、、、、、 strings命令; 编译后: import sysimport subprocess s = [36, 30, 156, 30, 43, 6, 116, 22, 211, 66, 151, 89, 36, 82, 254, 81, 182,
阅读全文
摘要:越来越喜欢逆向了,通过调试解决程序的逻辑问题真是太爽了。后天单片机考试,全球黑客保佑孩子不挂科。。。。 看看这道题,自己算法太菜了。 没有壳,直接IDA吧。 输入,相当于一个数组吧,每次输入一个值,输入的不是数字好像就结束了。 两个check 然后是得到flag,就是MD5(正确的输入的值) 分析c
阅读全文
摘要:查壳,.NET,直接ILSpy 运行程序,一闪而逝。 tcp通信,然后底下逻辑很明显,但是需要知道read和search函数是干嘛的。 好吧,看不懂这个函数,看了看大佬的思路,监听http通讯。 拿到flag。 CTF{7eb67b0bb4427e0b43b40b6042670b55}
阅读全文
摘要:先玩一下游戏,猜测就是屏幕给出一个字符,然后输入一个相应的字符,玩到后边,时间太短,来不及输入,所以看看IDA有什么效果。 判断就是这个函数,进入内部看看。 经过玩游戏和分析伪代码得知,屏幕上是s 我们要输入空格, x 输入 x, m 输入 m。 代码很长我们动态调试,让等待处暂停。 断点到这个位置
阅读全文
摘要:直接上IDA,无花无壳。 关键函数就是sub_4006FD。 感觉很简单,所以自己用汇编也玩了一遍。 定位二维数组的位置,然后和输入的字符进行处理。直接上脚本吧! 接下来学习pyqt5,为了作业啊。。。。。逆向放一放。
阅读全文
摘要:strings 命令查看字符,看到UPX,但是直接UPX脱壳,提示压缩数据异常,不知道怎么回事。 放到IDA看看,也不懂,向大佬学习吧。 动态调试这段代码,能得到这个结果, 正好是路径和这个进程号, /proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文
阅读全文
摘要:无壳,ida载入,发现最终比较是和you_know_how_to_remove_junk_code这个字符串,那么这个程序中应该有垃圾代码。我们往上分析。 可以发现对v13进行处理的函数,跟进。这个函数我没有头绪,好垃圾。 看了大佬们的思路,才知道这段主要是base64解密。 这个地址是解码表, 我
阅读全文
摘要:查壳,然后直接OD,我们知道程序有弹窗,所以找messagebox弹窗函数 分析上下代码,发现2个函数, 这个函数是弹窗注册码正确。 这个是弹窗注册码错误。 我们回到调用这个总函数的地址, 断点运行, 一路patch,来到关键字符比较这个函数,因为这个函数下方是判断,跳转,而且正好是跳转到弹窗注册码
阅读全文
摘要:基本操作,file,strings等看看有没有什么有用的信息,然后再运行试试。 接下来IDA载入,程序逻辑很简单。 似乎是md5,但是有随机数,这也算不出来,只能爆破了。 随机数和我们的输入有关系,直接写脚本看看满足条件的数。
阅读全文
摘要:运行程序,拿到关键字符串,然后IDA shift+F12搜索字符串,交叉引用来到关键函数。 看到如下判断: 判断输入的密码的长度和比较字符,我们不清楚每个变量的含义,然后动态调试断电这个地址,发现顺序是v11[1]到v11[3]然后是v12,v13....... 按顺序组合字符,就得到flag。
阅读全文
摘要:flag标准格式:EIS{XXXXXX},对长度也做了限制。 关键比较函数。 算法很简单,直接写脚本。
阅读全文
摘要:找到主函数,关键函数就一个,进去分析,发现是随机函数,第一次分析,没什么头绪。 后来发现,随机函数只取1个字节,所以就是0-255,这样就容易爆破了。 在网上找了找方法,发现很多很简单实用的方法,如IDC脚本,GDB脚本都可以爆破出盒子。 下面用GDB举个例子: gdb 写脚本 用:define X
阅读全文
摘要:peid查出是.NET壳 直接用ILSpy打开,找到关键函数,button 猜测就是输入密码,正确的话就会弹窗flag, 对应下来就OK了。
阅读全文
摘要:终于做出来这道题了,一共三段加密,不了解各加密方式的算法吃了大亏。。。 第一层: base64需要用到的字符,再看后面的取余3,替换为=,更加确定了,经过动态调试,验证了确实是。 第二层: 一味的逆算法,却没动脑子,直到拿到flag看到提示才知道这是rot13,我是真的菜。也很好辨认,取余26很明显
阅读全文
摘要:IDA载入,进入主函数。 分析这段发现没有可以得到flag类的。下面还有。继续分析。 找到关键部分了有比较,开头{,结尾},关键函数是confuseKey,进入分析。 将我们输入的分成4段然后重新组合,重新组合后的和这段比较。 so,还原回去就OK了。 路还长,脚踏实地,这次要打好基础,不能随便学学
阅读全文
摘要:有3个文件,好像都一样,只是运行环境不同。 IDA载入,有个check函数,然后应该是输出,先不管输出的一堆是什么,我们先绕过check试试。 直接动态调试 eax此时是0,我们将其设为1.即可绕过check函数。 然后运行发现flag出来了。 刚开始是用exe文件调试的,发现出来的是乱码,后来用l
阅读全文
摘要:又学会了IDA的新操作。。。 IDA远程调试,可得知获取当前时间。 此处是MD5加密的值 验证正是当前时间MD5加密后的值。 然后在这个函数处总是返回null,无法进行继续调试。看了网上的writeup也没明说,都是讲了Maya的日历。卡到这了。 今天很晚了,明天就一节课,要把这个操作逆出来。
阅读全文
摘要:最近搞了个破解专用虚拟机,找不到特别合适的,就凑活用吧。 这个题目好几天了,有好多事,都没做,今天来看一看。 不知道为啥好几个虚拟机都打不开这个文件,报错,还好有一个WIN7刚好打开,不知道什么原因。 打开文件提示:?W?h?a?th?a?p?p?e?n? IDA搜索字符串,我们还看到了一个路径,说
阅读全文