寒假打卡
@TOC
寒假打卡地
Easy Crack
拼接flag得
Ea5yR3versing
Easy Unpack
od单步调试 可以找到oep
Easy Keygen
异或
1 | #include<stdio.h> |
Easy ELF
简单异或
0x78^0x34
0x31
0x7C^0x32
0xDD^0x88
0x58
CSHOP
c#程序
有乱码先去混淆
修改按钮大小
HateIntel
4轮大循环,每次做特定操作,每位直接没有联系,可以爆破
1 | #include<stdio.h> |
replace
根据名称和ida提示的消息可以看出是通过输入修改了自身的代码
动调到报错的部分
eax=0x6016 05CB+flag
可以发现在这里程序会把eax为地址的部分nop掉
继续跟踪到后面,发现只需要把jmp指令nop掉即可
所以应该满足 flag+0x6016 05CB=0x401071
计算机算一下 flag=0xa02a0aa6=2687109798
muisc player
vb程序,可以静态分析,这里因为他说了超过一分钟就能看见flag,所以我这里用od动调
先播放一遍,看见一分钟弹窗了
那就基本操作,弹窗后暂停,查看堆栈,找到对应的对话框函数,在上面找见了判断函数,修改为jmp即可。
弹出第二个对话框
如法炮制,没有找到第二个对话框,就把时间暂停在59秒,下断点,单步执行,找到函数
把上面的跳转函数修改为jmp
position
长度为4位,关键加密如下,可以z3求解
有多解,所以限制要全
1 | from z3 import * |
imageprc
画图题,搜索wrong定位到关键部分
把资源文件提取出来,与我门画的相比,要求大于90000个一样
在网上学习到用工具提取出数据,再用脚本还原图片
1 | from PIL import Image |
得到got
position
file本来是个exe,被加密了
打开run,发现有混淆 patch一下可以反编译
异或key,然后取反
1 | #include<stdio.h> |
求出key后解密文件,运行file.exe拿到flag
FPS
打枪游戏
搜索game clear定位到对话框的位置
找到加密部分,后面的数组静态不好分析,下断点后,打怪可以断下来,发现是cl是eax的4倍
写脚本
1 | #include<stdio.h> |
multiplicative
反编译jar
1 | public class JavaCrackMe { |
计算(l *= 26729L) == -1536092243306511225L即可