文章分类 - 『CTFer & RE』
CTF!!!
冲冲冲!!!
发表于 2022-07-05 18:37阅读:40评论:0推荐:0
摘要:ACTF题目质量好高,签到题都整这么难.. 一、脱壳 esp(rsp定律法)找到入口点 修复转存,脱壳后仍不能运行,猜测需要固定基址 我们使用studyPE++64固定基址 参考https://www.52pojie.cn/thread-1534675-1-1.html 二、dropper 结合这些
阅读全文 »
发表于 2022-07-05 17:51阅读:11评论:0推荐:0
摘要:SMC + VM混淆 无反调试的简单SMC,直接单步绕过 定义结构体 实现如下: 接下来把opcode转化为伪汇编 vm_opcode = [ 0xA1, 0xC1, 0x00, 0xB1, 0x77, 0xC2, 0x4A, 0x01, 0x00, 0x00, 0xC1, 0x01, 0xB2,
阅读全文 »
发表于 2022-07-05 17:45阅读:31评论:0推荐:0
摘要:有点忙,没好好打,摸了一道签到提和opcode就冲分去了 这道题是go语言实现的vm混淆 一、IDA分析 IDA7.7载入能自动修复符号表 开头的qmemcpy是后面要用到的opcode 之后到这里 入口是对flag的检验 其次进入循环,开始vm_dispatcher(调度) 值得一提的是,有一个关
阅读全文 »
发表于 2022-06-29 23:13阅读:37评论:0推荐:0
摘要:一、分析代码逻辑 代码逻辑很简单,就是求逆需要下点功夫 二、解密脚本 # begin = 0x403040 # end = 0x403240 # # ans = 1 # for addr in range(begin,end,4): # print(hex(idc.get_wide_dword(ad
阅读全文 »
发表于 2022-06-29 23:11阅读:96评论:0推荐:0
摘要:虚拟机保护是通过开发者自定的一套 opcode,由虚拟机的 dispatcher 解释执行,从而起到代码混淆、增加逆向难度的技术。 VM_start: 是对虚拟机的初始化。 VM_dispatcher: 调度器,解释 op_code, 并选择相应的函数执行,一般为 switch 语句,根据地址码判断
阅读全文 »
发表于 2022-06-28 20:25阅读:113评论:0推荐:0
摘要:还是要回归刷题... 攻防世界第134题 mfc逆向,还是老样子,只记录解题时遇到的几个点 一、寻找关键函数 1、失败案例 一开始用OD想通过下WM_LBUTTONUP消息断点的方式找到关键函数,但却失败了,我下好消息断点与内存访问断点后,只要一切回被调试程序,就会被断下来,明明还没点击按钮呢...
阅读全文 »
发表于 2022-06-28 20:19阅读:35评论:0推荐:0
摘要:SMC自解密 + CRC校验 一、IDA分析 全是红色的代码,且不能f5反编译,直接动调试试 发现,这个函数是SMC自解码(当且仅当Name和Serial Num输入正确时才会来到这里) 那么,我们就F8略过这个函数,从下面那里,U,C,P创建函数,F5,即可反编译 剩下的代码流程就是一个对于Nam
阅读全文 »
发表于 2022-06-17 21:18阅读:140评论:0推荐:0
摘要:这道题比那道ast树难上不少,mruby字节码逆向,之前只接触过pyc字节码,今天好好复盘了一下,逆向了好久,这里只写我在逆向的时候碰到的一些关键点 一、mrb文件提取为mruby字节码 1、通过魔数查看mruby版本号 RITE0300,对应版本号如下 为mruby v3.10 2、安装对应mru
阅读全文 »
发表于 2022-06-14 15:06阅读:215评论:0推荐:0
摘要:GoReSym是Github上的一个开源项目,可以用来进行修复Go语言的符号 我试了试,效果还可以 一、项目链接 链接如下 https://github.com/mandiant/GoReSym 二、食用说明 1、生成GoReSym.exe 下载之后,在命令指示符下使用 go build编译 这样会
阅读全文 »
发表于 2022-06-13 23:29阅读:117评论:0推荐:0
摘要:这道题,逆向下来会发现还是挺有规律的,多注意观察decl与extension即可 这里只写了一些关键点 一、ast树 经过搜索了解到这是swift语言的ast结构,编译原理的知识 二、利用Nopated++转化为js风格的代码 这样可以提高代码的可读性 三、ast树的特点 我在逆向的时候,发现ast
阅读全文 »
发表于 2022-06-10 22:09阅读:187评论:0推荐:0
摘要:Go语言逆向。。 这道题有几个点,我按照解题顺序依次介绍一下 Go语言的逆向极其困难,无符号表,多线程,众多干扰代码(无关代码)让人难以下手... 一、字符串索引失败 这是因为,代码段中有大量数据未被解析到: 一般来说,text中灰色的是未被解析到的: 解决方法: 在ida python中有一个ap
阅读全文 »
发表于 2022-05-28 23:42阅读:35评论:0推荐:0
摘要:找不到源文件了,但在网上找到了原题的关键代码 一、原题主逻辑代码 int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [rsp+20h] [rbp-60h] int v5; // [rsp+24h
阅读全文 »
发表于 2022-05-26 23:34阅读:2075评论:0推荐:0
摘要:一、查看版本号 go version xx.exe 二、查看地址以及依赖库 go version -m xxx.exe mod 显示出了该程序的依赖库:luago 三、pclntab pclntab 全名是 Program Counter Line Table,直译为 程序计数器行数映射表,也叫Ru
阅读全文 »
发表于 2022-05-21 23:32阅读:688评论:0推荐:0
摘要:python z3库 一、介绍 二、使用方法 1、设置变量 用Int型设置变量代表所有的解只能是整数,也可以用Ints同时设置多个变量 如a,s,d = Ints('a,s,d') 也可以设置具体值: 比如 BitVecVal(10,32) 可以创建一个32位的,值为10 的位向量 2、设置解方程的
阅读全文 »
发表于 2022-05-21 23:30阅读:218评论:0推荐:0
摘要:5月20日,单身杯(dsb) 一、re签到 三次base64解码即可 ctfshow{dsb_re_sign_in_hsssssssss} 二、magic checkToken函数满足一下三个条件 直接python脚本爆破: def p(x): if (x == 2) or (x == 3): re
阅读全文 »
发表于 2022-05-13 23:39阅读:66评论:0推荐:0
摘要:打开文件,apk文件,脱虚拟机运行试试 一、尝试运行 二、jeb分析 这里要去so层分析checkFlag 三、so层IDA分析 中间两个函数实现了RC4加密 sub_10D4函数是简单的异或 四、解密脚本 #include <iostream> #include <windows.h> using
阅读全文 »
发表于 2022-05-11 23:52阅读:59评论:0推荐:0
摘要:拿到文件后是一个HEX文件 里面都是16进制数据 第一次做这样的题,一筹莫展,遂记录下来 一、xxd转化为二进制文件 xxd -r -p MissionImprobable.hex > output.txt -r: 逆向操作:将hexdump转换为二进制文件。 二、strings out命令查看所有
阅读全文 »
发表于 2022-05-11 23:46阅读:12评论:0推荐:0
摘要:好久了,一直没看这道题,这几天抽空浅学了一下安卓逆向,回来复盘这道题 一、Jeb载入 没有找到MainActivity函数,猜测有壳,去查了下android加固厂商的特征 https://bbs.pediy.com/thread-223248.htm 发现是梆梆加固 二、脱壳 使用BlackDex脱
阅读全文 »
发表于 2022-05-08 22:20阅读:16评论:0推荐:0
摘要:一、查壳 无壳的64位elf文件 二、IDA静态分析 OLLVM混淆(控制流平坦化) 三、去平坦化 angr去平坦化 IDA再次打开 代码逻辑已经十分清晰 四、求v21数组 根据限制条件求出符合条件的数据项 //dfs// #include <iostream> #include <cstring>
阅读全文 »
发表于 2022-05-06 23:19阅读:410评论:0推荐:0
摘要:奇怪的ab文件 只是是记录一下 .ab文件的处理 一、查看文件类型 查不到... Compressed 被压缩的文件... 二进制工具打开~ 有一块模数ANDROID BACKUP.2.1.none 上网查了查 ANDROID BACKUP.2.1.none模数说明这是一个安卓备份文件 .2和.1分
阅读全文 »