type
status
date
slug
summary
tags
category
icon
password

week1

ezIDA

notion image
IDA打开得到flag
 

ezASM

题目是一段汇编代码
输入的flag每个字节异或‘0x22’后与c数组比较
得到脚本:
 

ezUPX

notion image
64位PE文件,有壳
脱壳后得到
把数据提取出来,每个异或‘0x32’即可
得到脚本
 

ezPYC

PYC解包得到
notion image
密钥为1,2,3,4的异或
得到脚本
 

week2

babyre

notion image
IDA打开,通过判断可以得到以上
notion image
找到key,结合设置那里,每位异或17
notion image
这里eax寄存器减了3,key其实只有前三位异或17
在最后判断flag的函数里可以提取到密文
结合四个加密函数,大概就是创建四个线程,每个线程里存有各自的函数的地址,然后按顺序依次调用,调用了一个线程后该线程对应的信号量减一,下一个线程的信号量加一,这时就调用下一个线程的函数,依次循环,直到全局变量 i 为 31 停止,最后退出线程,四个线程总共循环 8 次
 

ezcpp

丢进IDA打开
notion image
关键在于sub_140001070函数上,打开能发现是个tea加密函数 找到
notion image
提取cipher时发现
notion image
其实flag后半段是完整的,那猜测tea加密只加密了前11位
根据加密函数可得(脚本来自hgame_wp | 北海の小站 (beihaihaihai.top))
 

babyAndroid

丢进JADX
notion image
check1在java层,如下:
看着应该是rc4加密,找到密钥
notion image
网上找RC4在线解密
notion image
再来是check2
notion image
在native层,借助IDA
notion image
找到关键函数sub_B18,应该是AES加密,找到密文
notion image
网上找AES在线解码
notion image
 
 

Arithmetic

notion image
PE64位有壳程序,用UPX -d脱壳失败,应该是非标准型
notion image
010editor打开发现特征码被改过,改回55 50 58(UPX)
notion image
脱壳后丢进IDA,程序从out中读取了数据
notion image
分析一下逻辑:
notion image
010editor打开out文件
notion image
之后便是求解数塔问题了,根据提示是求最大路径和,左 1 右 2,找到最大值
 

week3

mystery

notion image
打开能发现sub_13E0sub_1500是RC4加密(后者魔改)
notion image
key找到能发现是改过的,交叉应用可以找到(后面没用上)
notion image
s2提取密文
notion image
sub_1500函数里下断点,动调找到result(解密的key)
notion image
准备就绪,脚本:
 

encrypt

IDA打开找到main函数,发现全是回调函数
毫无头绪,有许多函数,挨个搜一下
notion image
notion image
提取pbSecret(key):
notion image
提取unk_140005050(cipher):
notion image
根据以上,可知iv(v6)的值在unk_1400034A0中,提取:
然后厨子梭了
notion image
 

findme

notion image
main函数给了两个假flag,点进buffer
notion image
MZ90,exe文件头,但是中间有大量0混淆数据
脚本去掉后,得到real.exe,丢进IDA
notion image
找到内容,但是反编译不了,有很多jz花指令,打idapython去花
去花指令后,分析后可以知道是魔改的RC4
notion image
动调找到key和cipher
因为python搓脚本的时候,因为对cipher的减法操作导致了结果超出了 Unicode 范围,所以将超出范围的hex(key[i])数据改为对应补码,脚本:
 

crackme

notion image
main·函数到这里就戛然而止了,但是有一个 CxxThrowException(&pExceptionObject, (ThrowInfo *)&TI2PEAD);的异常抛出函数
notion image
try后面跟着三个catch,地址连续,但是IDA并没有识别
把他们dump下来,再用IDA打开
notion image
notion image
是魔改的XTEA加密,不是sum + delta而是sum ^ delta
然后再从main函数里提取
得到脚本:
 

week4

change

经过静态分析和动调,可以知道输入经历encode函数之后,与cipher比较,点进encode
关键在于两个beep函数,动调可以发现前一个beep会调用
第二个beep会调用
分析可以知道,偶数位调用sub_7FF7401D3650函数,奇数位调用sub_7FF7401D3670函数 提取cipher
可得脚本:
 

crackme2

notion image
IDA打开后,有一串红色的指令
sub_14000105C函数点进去发现是变表的base64加密,尝试解了一下
notion image
发现是假的flag
那么只有从红色代码入手了
发现SEH触发异常,隐藏了真正的代码
notion image
将其nop掉就可以得到了
notion image
F5反编译得到
notion image
发现程序在运⾏时对sub_14000105C进⾏了异或解密(SMC),打个idapython给它patch掉
重新构建函数后得到
z3脚本(by Remore):
得到数据后解密:
 

again!(轴)

起手拿到两个bin文件,bin1.exe看图标是打包了python环境,尝试用pyinstxtractor提取⾥⾯的资源
notion image
打开py文件
这里注意到bin1.exe文件的python解释器是3.11版本,uncompyle6反汇编是python3.8及以下 因此需要找其他工具--pycdc
配置好pycdc后反编译bin1.pyc文件
notion image
结果还是没有反汇编完全,但是提到了要用这个去解密bin2文件,提到了md5,给了一串数据 用pycdas打开bin1.pyc得到字节码
丢给AI得到:
但是不知道用得到的数据应该如何与bin2操作,看了官方wp知道是异或(这个思路是guess的) 搓一个脚本:
得到的out.text文件打开,开头为MZ
notion image
改为exe文件
notion image
丢入IDA
分析过后能知道加密函数sub_1400010E0是魔改delta的xxtea加密
得到密钥
notion image
提取密文:
搓脚本得到:
Hgame2022reverse week4360加固复现学习
Loading...
Sh4d0w
Sh4d0w
漫长学习路ing
最新发布
360加固复现学习
2025-6-15
java反射机制
2025-6-14
classLoader机制
2025-6-14
dex文件结构
2025-6-14
APP启动流程
2025-6-14
JNI学习
2025-6-14
公告
Welcome to Sh4dw’s blog!
敬请指导,Q 467194403