reverse
记录一些逆向学习的笔记
FeiJiNcFan
勇于攀登。
展开
-
[CISCN 2023 初赛]moveAside
发现大抵是亦或,可根据uuid和flag头恢复2个key。ida反编译后定位查看字符串。今年国赛的一题,记录一下。将这个数组提取出来。原创 2023-06-01 22:33:15 · 372 阅读 · 2 评论 -
[羊城杯 2021]Ez_android
逆向原创 2023-02-07 13:43:56 · 452 阅读 · 0 评论 -
[网鼎杯 2020 青龙组]bang
梆梆加固脱壳原创 2022-10-24 15:22:54 · 898 阅读 · 0 评论 -
buu_[b01lers2020]chugga_chugga
使用z3解决一道go语言逆向题原创 2022-08-19 07:06:38 · 216 阅读 · 0 评论 -
[BJDCTF2020]BJD hamburger competition
c#逆向解压附件可以看到unity用dnspy反编译Assembly-CSharp.dll这里应该是sha1和md5但是md5是自写的拿vs跑一下就行c#代码:namespace A004{ class Program { static void Main(string[] args) { byte[] bytes = Encoding.UTF8.GetBytes("1001"); b.原创 2022-04-29 10:58:42 · 1346 阅读 · 0 评论 -
crackme_序列号调试
1.运行程序随便输入一个 5202.用od加载程序但是我用我爱的od一下没找到关键信息,所以换了原版的尝试3.输入9981验证原创 2022-02-11 10:54:21 · 250 阅读 · 0 评论 -
buu_hello_world_go
看标题应该是shift+f12题.用ida打开。找找主函数,flag等原创 2021-12-19 01:14:54 · 256 阅读 · 0 评论 -
buu_[WUSTCTF2020]level3
64位,无壳这里很容易看出应该是Base64变种了。shift + f12看看字符情况本来以为是在这。所以应该是经过某个函数处理过了。函数如下:__int64 O_OLookAtYou(){ __int64 result; // rax char v1; // [rsp+1h] [rbp-5h] int i; // [rsp+2h] [rbp-4h] for ( i = 0; i <= 9; ++i ) { v1 = base64_table[i];原创 2021-12-15 21:20:16 · 144 阅读 · 0 评论 -
buu_xor
32位,无壳放入ida,反编译可以看到在401095这个地方调用失败了。然后手动找到这个地址,跟进就行了。简单的xor:x= 'MSAWB~FXZ:J:`tQJ"N@ bpdd}8g'flag = [chr(ord(x[i])^i) for i in range(27)]print(''.join(flag))...原创 2021-12-08 22:10:51 · 523 阅读 · 0 评论 -
buu_level1
用ida打开,得到的关键代码如下:乘法,除法逆一下就行。直接写py脚本解:with open('output.txt','r') as f: data = f.read()print(data.replace('\n',','))out = [0,198,232,816,200,1536,300,6144,984,51200,570,92160,1200,565248,756,1474560,800,6291456,1782,65536000]flag = ''for i in r原创 2021-12-01 00:42:20 · 137 阅读 · 0 评论 -
buu_简单注册器
下载附件打开是个apk文件,检查是否有壳,无壳;用jadx打开,很快发现很简单,写了个py脚本,如下:str1 = "dd2940c04462b4dd7c450528835cca15"text_1 = []for tmp in str1: text_1.append(tmp)text_1[2] = chr((ord(text_1[2])+ord(text_1[3])) - 50)text_1[4] = chr((ord(text_1[2])+ord(text_1[5])) - 48原创 2021-11-22 17:08:20 · 360 阅读 · 0 评论 -
buu_rome
程序无壳,直接用ida分析关键代码如下:int func(){ int result; // eax int v1[4]; // [esp+14h] [ebp-44h] unsigned __int8 v2; // [esp+24h] [ebp-34h] BYREF unsigned __int8 v3; // [esp+25h] [ebp-33h] unsigned __int8 v4; // [esp+26h] [ebp-32h] unsigned __int8 v5; /原创 2021-11-28 14:41:42 · 553 阅读 · 0 评论 -
buu_easyre
已经很多wp了,但是我自己还是遇到不少难点。贴一下主要代码第一个地方就是v5的数据类型是DWORD第二个地方就是v6接收6个字节后开始覆盖v5,结合代码来看v5就是flag{}里的字符第三个地方是\不是v4中的字符。...原创 2021-11-23 00:01:42 · 222 阅读 · 0 评论 -
buu_level2
有Upx壳,脱壳后用ida打开主函数好像没有什么有用的信息,附近的函数也是很杂,感觉很难然后shift + f12 搜索flag.ctf居然有了所以就考了个upx -d原创 2021-12-01 00:53:54 · 147 阅读 · 0 评论 -
GUET-CTF2019_re
upx壳,脱壳之后放进ida.加载慢,有很多函数,感觉很难。shift + f12核心代码就在这,交叉引用找到关键函数双击进去。_BOOL8 __fastcall sub_4009AE(char *a1){ if ( 1629056 * *a1 != 166163712 ) return 0LL; if ( 6771600 * a1[1] != 731332800 ) return 0LL; if ( 3682944 * a1[2] != 357245568 )原创 2021-11-29 15:23:50 · 438 阅读 · 0 评论 -
buu_crackrtf
无壳,放进ida整个程序就是让我们输入2次密码,结束后生成rtf文件。第一处加密:sha1import hashlibflag = '@DBApp'for i in range(100000,1000000): tmp = str(i) + flag ans = hashlib.sha1(tmp.encode()).hexdigest() # hex 字符串中字母为小写 if ans.find('6E32D0943418C2C'.lower()) == 0:原创 2021-11-25 00:54:49 · 3198 阅读 · 0 评论