博客园主题又更新啦~,细节等你发现!
随笔分类 - ctf wp
摘要:过滤http POST为命令流量,加密为base64,action为指令,z1为文件或者目录,服务器回包为明文,可以通过回包查看内容 找到flag目录 查看了6666.jpg 查看z2分组字节流,将内容复制到winhex创建文件 得到图片 下载了hello.zip 根据id导出http对象 使用图片
阅读全文
摘要:Main函数 确定输入前五位为”actf{“的flag头 地图判断函数W向上,E向右,M向下,J向左 地图16个数为一行: unsigned char ida_chars[] = { 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00
阅读全文
摘要:Main函数 Sub_4006D6是检测输入长度及输入内容的,输入的数在0-3之间长度为10 Sub_400758里面有两个递归,用于生成一个二叉树 Sub_400807是中序遍历二叉树,即先左后根再右 赋值操作 5 * 5的数独,根据unk得出0421421430,最后根据中序遍历的结果替换一下位
阅读全文
摘要:主程序,无法生成伪代码 由此分为两种方法即: 直接看反汇编 解决问题,尝试生成伪代码 硬啃汇编 输入与输出 判断输入长度是否为0x1B,其中al为eax的低8位 将输入的字符每个与当前字符所在下标异或并与密钥对比 算法很简单 a = [0x4d,0x53, 0x41, 0x57, 0x42, 0x7
阅读全文
摘要:程序分析 无壳,32位程序 运行后结果 程序比较简单一共三个函数 根据题目和运行结果可以看出来是a3太小了,没法完全解密密钥 解决该问题可以通过写脚本或动调解决 方法一:动调改内存 定位到a3入栈的位置 Push结束后观察栈窗口 F2改变内存中的值 不推荐直接改push 1C为push 5C,可能会
阅读全文
摘要:调用c2 主要为nativemethod部分,调用外部函数 解压找到so库 字符串定位函数 getflag
阅读全文
摘要:是一个游戏 静态分析和动态分析都没思路 尝试查看运行时动态链接库 其中assembly-csharp.dll可能为实现游戏功能的动态链接库 .net逆向 Dnspy反编译 关键代码如上 Getflag flag{B8C37E33DEFDE51CF91E}
阅读全文
摘要:整体观察main函数,可以发现用户自定义函数和变量存在混淆,猜测为函数名及变量名asc混淆。 对函数进行分析: Fox1为欧几里得算法求最大公约数 Fox5其实是pow Fox4根据逻辑数学的法则实际上就是a-b 全为1时fox3返回1,其他情况为0 处理后的main函数 加密算法部分 写脚本get
阅读全文