Re学习(3.10-3.16)

题目1-4是buuctf,题目5-6是社团练习。

1.xor

先放入查壳软件,发现没加壳,是64位的,打开ida64。

       可以Shift+E导出数据。

由此写出脚本还原字符串。

得到flag{QianQiuWanDai_YiTongJiangHu}

2.reverse3

先放入查壳软件,发现没加壳,是32位的,打开ida32。

       查看字符串。

进入主函数查看。

Str2的值。e3nifIH9b_C@n@dH

       进入sub_4110BE函数查看。这是一个base64加密的函数。

       综合整个函数,先将输入的Str字符串进行base64加密,将加密的结果进行简单的for循环变化,最后与Str2进行比较,相等就是正确的flag。由此写出脚本。

       得到flag{i_l0ve_you}

贴一个base64加密的具体过程。

3.helloword

       用ida打开什么也没看到

这是一个apk文件,我去网上了解了一下,是安卓的程序,于是下载了apktool来反编译这个文件。

       打开AndroidManifest.xml文件,查看声明的入口Activity

       找到MainActivity.smali文件,找到flag{7631a988259a00816deda84afb29430a}

4.不一样的flag

先放入查壳软件,发现没加壳,是32位的,打开ida32。

找到关键函数

       经过以上分析,可以推断出是在一个5*5的地图上行走

* 1 1 1 1

0 1 0 0 0

0 1 0 1 0

0 0 0 1 0

1 1 1 1 #

每一次移动都不能走到1上,所以flag{222441144222}

5. 玩游戏

        先放入查壳软件,发现没加壳,是32位的,打开ida32。

       进入主函数

       分析这个函数,v2到v57可以看作一个数组,v59到v114可以看成一个数组,v2先跟v59异或,再跟0x13u异或,可以写出解密脚本。

        得到zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}

6. 常驻311

       先放入查壳软件,发现没加壳,是64位的,打开ida64。

       v2的值是off_130的地址加上7

       off_130的地址是0000000000000130h,所以v2=137h,也就是311,再点进test(v2)函数

       v1=2,a1=a1*2,a1就是v2,所以v2=311*2=622。

       接下来看encrypted_flag,这很奇怪,这是dq,用插件可以得到正确的形式

encrypted_flag=[0x00000208, 0x00000202, 0x0000020F, 0x00000209, 0x00000215, 0x00000219, 0x0000025D, 0x0000025F, 0x0000020D, 0x0000025E, 0x00000203, 0x0000025D, 0x00000231, 0x0000021A, 0x0000025E, 0x00000231, 0x0000025F, 0x0000020F, 0x0000020C, 0x00000231, 0x00000258, 0x0000025C, 0x0000025C, 0x00000213]

       可以写出脚本

       得到flag{w31c0m3_t0_1ab_622}

### 解决方案 在 Ubuntu 上安装 Python 3.10 后,如果遇到 `python3.10-venv` 和 `python3.10-distutils` 包缺失的问题,可以按照以下方法操作。 #### 安装 `python3.10-venv` `python3.10-venv` 是用于创建虚拟环境的工具。可以通过以下命令安装: ```bash sudo apt update sudo apt install python3.10-venv ``` 这一步会确保系统中存在 `venv` 工具以支持虚拟环境功能[^1]。 #### 安装 `python3.10-distutils` 对于 `distutils` 的问题,在某些情况下,它可能未随 Python 主体一起安装。这是因为 `distutils` 被移除或替换为其他模块(如 `setuptools`)。然而,仍然可以通过以下方式重新启用该模块的支持: ```bash sudo apt update sudo apt install python3.10-distutils ``` 需要注意的是,部分版本可能存在依赖冲突的情况。例如,当尝试安装更高版本的 Python 或其扩展包时,可能会因为依赖关系而失败[^2]。此时可考虑手动下载并编译源码文件作为替代解决方案。 另外一种解决办法是直接安装 `setuptools` 来代替传统的 `distutils` 功能。执行如下命令即可完成此目的: ```bash pip3.10 install setuptools ``` 这样不仅能够满足大部分开发需求,还规避了一些复杂的APT软件包管理难题[^3]。 #### 验证安装成功与否 为了确认上述组件已正确配置好,请运行下面这些测试脚本验证它们的功能状态是否正常工作: ```python import venv print("venv module is available.") from distutils.core import setup print("distutils module is available.") ``` 以上代码片段分别用来检测 `venv` 和 `distutils` 是否可用。如果没有抛出异常,则说明安装无误。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值