2023数字人才挑战赛-永信赛道WP
前言本次比赛, 打的挺舒服的
作为一个逆向手, 数据分析感觉做的很顺, 很爽
确实学到了很多东西, 也意识到了很多的不足
然后的话, 因为和队友没有提前沟通好的原因, 丢了100分就特别难受
我靠 数据安全题(CTF题型)累死累活才做出来 分数时动态的
而数据分析 思维活跃 随便解 分数却是死的 好烦
(就是说 比赛时 内部一定要交流好哇~~)
**一起共勉 加油 ^_^ **
数据分析题解区块链威胁分析.1请提交App的Team Identifier。(答案严格区分大小写)
题目010打开 发现是PK
改.zip打开是个 DAFOM.app
(就是这个app的名字)
Google搜索相关team ID信息
这是一篇很好的博客,讲的很到位(https://blog.csdn.net/liuxiaoxiaobo/article/details/122047015)
然后随便翻翻文件有个叫DAFOM的
在010 打开
W58CYKFH67
这个 就是 flag
区块链威胁分析.2这个app 就是一个黑客组织Lazarus 向区块链行业 弄得恶意应用程序
所以答案 ...
NKCTF2023逆向区WriteUp
try_decrypt_meapk文件 - Android逆向 挺好 正好我也正在转型移动安全
我习惯上是用jadx来反编译(界面美观, 一目了然呀)
但是这题 实话说 jeb比较友好
我用jadx卡半天 没找到密文
jeb直接跟踪, 并且该做的某些操作都自动化完成了(比如 替换操作等等)
笔者建议的话 先用jedx看逻辑
然后jeb 而且 jeb还可以跟踪 (动调)
对比一下
主要就是 AES加密
然后注意 CBC模式 这儿有个base64
如果工具解 先base64解密一下
贴exp
1234567891011121314151617181920212223242526272829303132from base64 import b64decode, b64encodefrom Crypto.Cipher import AESencData = "BxLHc1KruiH31I94W171oal+9olDzgBIjnK/J1Db0IUyi+MbI38+nw62ejCPShRB"key1 = "r3v3rs3car3fully"# 在线网站求出MD5 key2 = " ...
数字网络安全人才挑战赛2023-逆向区WriteUp
game- misc?情景再现(非预期)附件给了两个, 程序是个贪吃蛇?
查壳
然后拖入ida分析
发现这儿有个png文件 要被读取, 那么根据 经验 给的另一个附件 感觉就是把那个文件变为png 然后读出flag
核心:
计算出 怎么把给的附件 变为 png 的文件头
根本就不用看程序到底是干啥的
计算出 ^ 0x80 正好是png的文件头
然后exp
123456789101112131415161718192021enc = open("sinke", mode="rb")encData = enc.read()encDataLen = len(encData)# 输出的文件decData = open(r"flag.png", "wb")# keykey = bytes(b"0x80")# 循环解密for i in range(encDataLen): decData.write(bytes([encData[i] ^ 0x80]))decData.close()enc.close()
然后 得到flag
预期解没有 预期解 各种花里胡哨的 操 ...
reverse-angr学习-构造堆栈
前言最近在突破学习angr使用
这儿就拿这个例题来写写, 挺好的
方便我复习
构造堆栈的核心: 找到函数调用前的exp情况和调用后的esp的情况以及输入的地址
例题:https://github.com/angr/angr-doc/tree/master/examples/flareon2015_2
直接开整? 我以为是elf文件
查下壳
拖入ida分析
函数这么少??
决定用angr来解题 那么 想想构造堆栈的核心
那就找呗
可以先看下 官方exp
12345678910111213141516171819202122232425262728#!/usr/bin/env pythonimport angrdef main(): b = angr.Project("very_success", load_options={"auto_load_libs":False}) # 创建一个angr项目并且金庸CLE自动解析共享库依赖关系(说白了就是不自动加载c函数的库文件) # 因为这是一个win的二进制文件, 为了避免调用win的api # 我们需要把0 ...
kalmarCTF逆向区部分WP
前言第一次 打国际赛
只能说 太有意思啦(难死我吧):sob: :sob: :sob:
首先对师傅们 及 我自己 说句
不管怎么样 我会好好努力学习的
:grin: :grin: :grin: :grin: :grin: :grin:
然后的话 不管怎么说都学到了一点东西
单拿题目来讲 队里师傅出了第一个CycleChaser
笔者呢 就对这道领悟的还算…
(我太菜辣 Orz Orz)
不瞎掰扯了 看题
有所错误, 望指正 诚心希望大家能指明是否有误
笔者万分感谢 (Orz)
CycleChaser查壳 运行(不能运行)
拖入ida分析
思路这就是 关键部分
123456789101112131415161718192021222324252627282930v16 = malloc(0x4009uLL); // malloc分配0x4009空间来存放上面所作的操作 - 理解位初始化也可以 if ( !v16 ) { puts("Error."); exit(6); } if ( fread(v ...
reverse-有意思的题目
前言第一道题是 某高校第五届“安洵杯”上的题
还是《偷》的别人原题, 什么成分 不说了
但是我没看出来 还卡了很久
看来还是做的少了
还有 是今年主办方 确实有点拉
期待最后一天的发挥
(今天是比赛第二天 话说平台为啥还没有维护好)
ctfshow - re4(有意思的模运算)查壳 运行
了解了 拖入ida64分析
(md 想试试angr 结果win还不会搞)
嘎
都注释好了 自行观看吧
贴exp
123456789101112131415161718192021222324# -26 * (i /26) 就是 % 26table = ')(*&^%489$!057@#><:2163qwe'cipher = '/..v4p$$!>Y59-'d = ''for i in range(len(cipher)): d += chr(ord(cipher[i]) ^ 7)print(d)d = '())q3w##&9^2>*'c = strfor i in range(len(d)): c = table.in ...
reverse-反调试-异常处理|tea
简介异常常用于动态反调试技术。正常运行的进程发生异常时,在**SEH(Structured Exception Handling)**机制的作用下,OS会接收异常,然后调用进程中注册的SEH处理。但是,若进程正被调试器调试,那么调试器就会先于SEH接收处理。利用该特征可判断进程是正常运行还是调试运行,然后根据不同的结果执行不同的操作,这就是利用异常处理机制不同的反调试原理。
上面回答 好官方 呃呃
下面我就一道题来讲解
NewStarCTF week4 - exception一看题目 就是考察异常处理的
(题目算法就一个tea加密)
拖入ida静态分析
跟进35100A
搜一下贴一下(看不懂 )
https://blog.csdn.net/u011279649/article/details/12840937
对于这道题 就是干扰我们得到delta
动调一下
触发异常后, 将[ebp+var_48] ^ 0x1234578
(点击查看[ebp+var_48] 其实就是result(记着大小端序的问题))
所以说可以写个脚本跑出值
贴exp
123456sum = ...
reverse-angr自动化技术
前言angr是一种基于z3的自动化解题技术 - 是一个用于分析二进制文件的python框架。
对逆向分析来说 是很有帮助的
当然angr可以用在逆向分析, 但不限于逆向分析
(嘎嘎 摆烂 让电脑自己去跑flag)
然后玩过z3 应该就了解这是个干嘛的了
这个的重点就是 符号执行
项目地址 https://github.com/angr
符号执行简单来说 就是
用符号代替真实值,通过限制条件来进行路径遍历
从而找到(得到flag的路径)正确的答案
就像下面这样
安装踩坑具体操作自行Google 或 BaiDu吧 Orz
简单过一下
安装依赖环境
sudo apt-get install python-dev libffi-dev build-essential virtualenvwrappe
2.设置环境变量
export WORKON_HOME=$HOME/Python-workhome
和我一样就好 没啥影响
启动服务
可以先用whereis virtualenvwrapper.sh找到这个在哪
然后下面 source 后边就填啥
source /usr/ ...
reverse-hash暴破实例
NewStarCTF 公开赛 - week4hash看题目 考点是hash算法
直接拖入ida 看啥逻辑
跟入4113F2
打开MSDN去查看这个模块 看是什么hash
贴网站 https://learn.microsoft.com/en-us/windows/win32/seccrypto/alg-id
欧克 是sha1
以一行00 + 00 00 00 分开了
放入Sublime整理一下
1234567text = ['A2F17ED1C6A8BC31769CDF654DF4B8A937042CB6', '0CA8A2EDB0C1D34A432A5A4464E0D6ABD847C831', 'C359D69F3F08BB920F2C3B51133205533462093E', 'CC5C3FE6E7356A26A134CFF5633349F597C40A9D', '4AC4BB3F27F245BA9178651AA5CDEDCBB2862E2A', 'A01E33F4DCDB6BA1AE9F34A97CF8F6DEEEDF1A8D', ...
reverse-buuctf刷题记录2
今天你 RE 了嘛?
[GUET-CTF2019]number_game | 二叉树,数独先查壳 然后运行看一下
然后拖入ida64分析
跟进4006D6
但是嘞 输入啥都Wrong
搞不懂
跟进4007583
跟进400807
跟进400881
跟进400917
可以提取出来sudoku
114#2330#1#0#23##3##042##1
然后 5*5 知道原理直接手解
这儿给出手解的答案
0421421430
然后我的解题方法是动调出output
顺便看下那个Wrong为啥一直触发
发现过不了是因为 要输入10个0-4的数
az 哈哈哈 Orz
我输入的0-9
待会用之对应sudoku
就能够得到flag
1OUTPUT = 7381940526
再步过 得到sudoku填充后的数据
对应关系
123456789101112131415# --> 0421421430对应0 74 32 81 14 92 41 04 53 20 6#然后按 0-9排序即为flag#1134240024
flag{1134240024}
提 ...