NSSCTF逆向刷题记录

文章介绍了CTF竞赛中涉及的几种解题技术,包括基于二进制操作的字符串编码解密、Base64解码、自定义加密表的解密,以及Python和汇编语言中的加密挑战。解题过程涉及到了位操作、进制转换和异或运算等技巧。

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

目录

[SWPUCTF 2021 新生赛]fakebase

 [HUBUCTF 2022 新生赛]simple_RE

[NISACTF 2022]ezpython

[SWPUCTF 2021 新生赛]easyapp 

[SWPUCTF 2022 新生赛]base64

 [HGAME 2022 week1]easyasm

[SWPUCTF 2021 新生赛]fakebase

tmp += str(bin(ord(i)))[2:].zfill(8):

将字符串 flag 中的每个字符转换为对应的 8 位二进制字符串,并将它们拼接在一起,得到一个长度为 8 * len(flag) 的二进制字符串

b1 = int(tmp,2)

int() 函数接受两个参数:第一个参数是要转换的字符串,第二个参数是转换后的进制数,将二进制字符串转换为整数。

while b1//31 != 0: s += s_box[b1%31] b1 = b1//31

使用一个自定义的字符串 s_box 作为字符集,将 b1 转化为对应的 31 进制字符串 s。在这个过程中,每次取 b1 对 31 取余数,并在 s_box 中查找对应的字符添加到 s 的最前面。然后将 b1 除以 31,继续进行处理,直到商为 0 为止。

for i in s: s_box.index(i)

得到s中字符在s_box中对应的索引所组成的序列

因为b1是ASCII,最大不超过128,128/31==4,k<=4.,因为我们是从0开始爆破,因为b1是从大每次整除31,依次减小的,因此我们s选好 是需要逆序。

b1 是表示一个整数的二进制字符串,则 int(b1) 将其转换为十进制整数。

接着,n2s 函数将这个十进制整数转换为了相应的 ASCII 字符串。

import libnum

s = "u#k4ggia61egegzjuqz12jhfspfkay"
s_box = 'qwertyuiopasdfghjkzxcvb123456#$'

for k in range(5):
    b1 = k
    for i in s[::-1]:
        b1 = b1 * 31 +s_box.index(i)
    print(libnum.n2s(int(b1)))

 运行结果

 [HUBUCTF 2022 新生赛]simple_RE

第一种方法:发现密文以及自定义base加密表,直接在线解密 

 第二种脚本

import base64
str1 = "5Mc58bPHLiAx7J8ocJIlaVUxaJvMcoYMaoPMaOfg15c475tscHfM/8=="
string1 = "qvEJAfHmUYjBac+u8Ph5n9Od17FrICL/X0gVtM4Qk6T2z3wNSsyoebilxWKGZpRD"
string2 = "ABCDEFGHIJKLMNOPQRS
### NSS 逆向工程练习题与学习资料 NSS(Network Security Services)作为一套支持安全通信的应用程序编程接口库,在逆向工程领域提供了丰富的研究对象。对于想要深入理解并实践NSS逆向工程技术的学习者来说,可以从以下几个方面入手: #### 在线平台与社区资源 - **CTF 平台**:许多 CTF(Capture The Flag)竞赛网站提供专门针对二进制分析和加密算法破解的比赛题目,这些题目往往涉及对网络协议栈的安全组件如NSS的解析[^1]。 - **GitHub 和 GitLab**:开源项目托管平台上存在大量关于NSS的研究成果以及工具开发案例,通过参与其中可以获得宝贵的经验。 #### 教程书籍推荐 - **《Practical Reverse Engineering》**:这本书涵盖了Windows内核模式下的调试技巧、驱动程序工作原理等内容,虽然主要面向操作系统层面,但对于理解和操作像NSS这样的底层软件同样具有指导意义。 - **《The Art of Exploitation Programming》**:此书专注于漏洞挖掘技术及其利用方法论,有助于培养读者发现潜在安全隐患的能力,进而更好地掌握如何绕过或修复由NSS实现的安全机制。 #### 实践环境搭建指南 为了便于开展实际动手实验,建议构建一个隔离良好的虚拟化测试床: ```bash # 安装必要的依赖包 sudo apt-get install build-essential libssl-dev python3-pip qemu-kvm virt-manager # 下载目标版本的 Firefox 浏览器源码仓库,因为 Mozilla 的产品广泛采用了 NSS 库 git clone https://github.com/mozilla/gecko-dev.git cd gecko-dev/security/nss/ make nss_build_all ``` 上述命令序列展示了怎样准备一个适合探索NSS内部结构的工作空间。值得注意的是,由于NSS本身属于高度复杂且紧密集成于特定应用程序中的模块,因此直接对其进行修改可能会带来意想不到的风险;故而应当优先考虑基于已知缺陷设计的小型模拟场景来进行初步尝试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值