随笔分类 - ctf题解
平时做题的题解
摘要:过节划个水,做一个1分题。 这是一个windows x64的逆向。 肥肠简单的异或。 有点太简单了,不说明了,丢脚本: 1 aim = [ 2 0x67,0x79,0x7B,0x7F,0x75,0x2B,0x3C,0x52,0x53,0x79,0x57,0x5E,0x5D,0x42,0x7B,0x2
阅读全文
摘要:这是一道win32 console的逆向。 主函数相对清晰: 上图两个重点,1是输入长度为32位、2是一个加密函数。 这里均是用动态调试去看的,因为函数本身较为复杂,直接静态分析有点困难。 通过动态调试下内存断点,查看数据的操作: 主函数中有一个异或,那个复杂的加密函数中还是一个异或: *中途对数据
阅读全文
摘要:这是一道.NET的逆向题。 刚做了一道.net,这下又点到一个23333 还是直接丢dnspy。 要求输个密码然后验证: 直接跟进verifyPasswd(): base64解码,over。
阅读全文
摘要:这是一道.NET的逆向题。 之前接触.Net是做了一道unity的题目,这次就是单纯的c#。 先安装一下【辣鸡360疯狂报毒】,然后拿到.exe文件。 查一下是.NET,丢进dnspy反编译。 到此为止,经典二选一: 1.自己去根据解密算法解密: 定位到解密算法部分如下: 去资源里把解密前的东西提出
阅读全文
摘要:这是一道x64的elf逆向。 代码简洁明了,直接上图: 先检测前几位,然后测5, 11位;这里进一个叫sub_83A的函数,这个函数太大了导致没办法反编译,大概看了一下汇编,是一个对后面的加密操作,然后对比,惊喜的是,它会给我们报错,告诉我们错在哪一位: 啊这么玩儿的话我肯定选择爆破了,直接上pwn
阅读全文
摘要:这是一道windows逆向,采用vs2019编译,可以说被恶心到了,乱七八糟的函数和跳转,造成了很大的干扰,不过可以说比较考验思维的清晰度了。 主函数中的重点就这几处,检测长度、加密、比较。 整个过程我思路真的比较混乱,所以就不写了,等水平足够了再回来整理一下。 直接丢脚本好了: 1 def su(
阅读全文
摘要:这是一道x64的elf逆向题。 先进入主函数,定位到输入输出和一个叫sudoku的全局变量数组: sudoku的意思是数独,所以定位到sudoku数组的位置,将其提出来: 这里我犯了一个错误,这些数据在内存中存储的时候是小端序的int,我提出来以后为了简洁只写了两位,导致我后面分析的时候一直把它当成
阅读全文
摘要:这是一题win32的逆向题。 【做了好几个elf终于看到pe给我激动坏了】 主函数逻辑非常清晰: 输入密码,进行加密,然后和字符串常量进行对比。 跟进加密函数: 根据这里的encoding_map和加密方式可以很轻松的看出这是一个魔改的base64加密,解决方案与我之前做的一个题一样,直接按照加密表
阅读全文
摘要:这是一道x64的elf逆向题。 主要涉及的知识是二叉树的三种遍历方式,这是我第一次在逆向题中遇到这种数据结构。 主函数的逻辑是比较清晰的,主要是初始化然后两种遍历方式。 网上对于二叉树遍历方式的解释花里胡哨,这里找到一篇对于二叉树遍历方式描述比较清晰的博客:https://blog.csdn.net
阅读全文
摘要:这是一个x64的elf逆向题。 被坑的很惨,也学到不少。 主程序是如下一个逻辑: 通过随机的方式选择是加密你给的字符串还是输出提示信息。 提示的信息里是base64编码以后的东西,猜测是flag。 我一开始的思路是上图中的base64_encode函数有问题,加密的过程可能有问题,做了特殊处理,所以
阅读全文
摘要:这是一道win32的逆向题。 一共只有3个函数。 主程序如下: 整体逻辑非常清晰,通过调用一个解密函数对加密过的字符串进行解密,但是解密的长度push的不够长,导致只解密了前面一段内容。 因此有两种解决方案: 1.动态调试直接修改硬编码,将1C改成需要的长度AE,如下图: 修改完毕之后直接通过Mes
阅读全文