Bugku题目Reverse逆向部分wp(持续更新)

本文通过多个实战案例介绍逆向工程的基本方法和技术,包括利用工具分析软件、提取关键信息及破解算法等过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

入门逆向

Easy_Re

游戏过关

sign_in

Easy_vb

Next


入门逆向

题目链接。丢入DIE、PEID看过,没有壳,32位,直接IDA,汇编代码直接看到 flag{Re_1s_S0_C0OL}。

Easy_Re

题目链接。描述: flag格式:DUTCTF{xxxx}。丢入PDID、DIE,得到信息Microsoft Visual C++ 8,没有壳,32位。丢入IDA,找到v5变量初始化值,按 r 和 shift+e 提取到 DUTCTF{We1c0met0DUTCTF}

游戏过关

题目链接。描述: zsctf{}。丢入DEID、DIE得到Microsoft Visual C++ 8.0,没有壳,32位。丢入IDA,发现玩游戏过关不太可能。shift+F12找flag有关字符串,双击进去,ctrl+x 找到字符串调用位置,是sub_45E940函数

 sub_45E940函数中 v3、v4、v5、v6变量内存地址是连续的。

核心算法是以v3和v6地址的字符串,逐个异或再和0x13异或,得到flag。

提取v3、v4、v5、v6的值,如果是字符串就用s3、s4、s5、s6,其中v3、v4、v5组成长度56的字符串,v6自己长度足够。找flag的python代码如下。

# v3 数组
v3 = [123, 32, 18, 98, 119, 108, 65, 41, 124, 80, 125,
      38, 124, 111, 74, 49, 83, 108, 94, 108, 84, 6, ]

# qmemcpy(v4, "`S,yhn _uec{", 12);
s4 = '`S,yhn _uec{'

# v4 数组下标12以后的赋值情况
v4 = [127, 119, 96, 48, 107, 71, 92, 29, 81,
      107, 90, 85, 64, 12, 43, 76, 86, 13, 114, 1, ]

# strcpy(v5, "u~");
s5 = 'u~'

# v3 v4 v5地址连续,直接拼接出来s3
s3 = ''
for i in v3:
  s3 += chr(i)
s3 += s4
for i in v4:
  s3 += chr(i)
s3 += s5

# v6数组
v6 = [18, 64, 98, 5, 2, 4, 6, 3, 6, 48, 49, 65, 32, 12,
      48, 65, 31, 78, 62, 32, 49, 32, 1, 57, 96, 3, 21, 9, 4,
      62, 3, 5, 4, 1, 2, 3, 44, 65, 78, 32, 16, 97, 54, 16, 44,
      52, 32, 64, 89, 45, 32, 65, 15, 34, 18, 16, 0, ]
# s6字符串
s6 = ''
for i in v6:
  s6 += chr(i)

# 核心算法
flag = ''
for i in range(56):
  temp = ord(s3[i]) ^ ord(s6[i])
  temp = temp ^ 0x13
  flag += chr(temp)
print(flag)

得到 zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}

sign_in

题目链接。提示:君远至此,辛苦至甚。 窃谓欲状,亦合依例,并赐此题。附件是apk,在安卓模拟器里跑一下,猜测password就是flag。

使用工具jadx,打开这个apk文件,找到MainActivity,checkPassword方法 ,先getFlag得到一个名为toString的字符串,反转一下,再base64。Android 里面资源参考这篇字符串资源  |  Android 开发者  |  Android Developers。我们找R.string.toString,去 res/values/filename.xml 里面找。

在 res/values/filename.xml 里面找到 991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ,翻转得到 ZmxhZ3tIZXIzX2k1X3kwdXJfZjFhZ18zOWZiY199,base64解密得到 flag{Her3_i5_y0ur_f1ag_39fbc_}

Easy_vb

题目链接。描述: flag{xxxx}。丢进PEID、DIE得到Microsoft Visual Basic v5.0/v6.0,没有壳,32位。

丢入IDA后,直接看到MCTF{_N3t_Rev_1s_E4ay_},根据藐视是 flag{_N3t_Rev_1s_E4ay_}

Next

题目链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦行僧(csdn)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值