NSSCTF逆向刷题记录

目录

[GDOUCTF 2023]easy_pyc

[GWCTF 2019]xxor 

[MoeCTF 2022]checkin 

[LitCTF 2023]程序和人有一个能跑就行了 

[LitCTF 2023]For Aiur 

[HNCTF 2022 WEEK2]TTTTTTTTTea 

 [GKCTF 2020]Check_1n

​[SWPUCTF 2022 新生赛]py1

[HNCTF 2022 Week1]给阿姨倒一杯Jvav 

[CISCN 2023 初赛]babyRE 

[HGAME 2023 week1]encode 

[SWPUCTF 2022 新生赛]android 

[zer0pts 2020]easy strcmp 

 [HNCTF 2022 WEEK2]来解个方程?

[GDOUCTF 2023]easy_pyc

pyc在线反编译python反编译 - 在线工具 (tool.lu)

已知 pqec求m,套用密码学模板

【Crypto】RSA_轻闲一号机的博客-CSDN博客

import gmpy2​
import binascii​
​
​
e = 306645347334662727966285107364291531289​
q = 7021910101974335245794950722131367118195509913680915814438898999848788125908122655583911434165700354149914056221915541094395668546921268189522005629523759​
p = 8228801334907462855397256098699556584084854642543205682719705217859576250443629616812386484797164506834582095674143447181804355696220642775619711451990971​
c = 21812306272967730147845738706030680242331165675981994115949615844012361551700506020612445969402056602389411244248745130826969002161047213415607978602535719418999319494842608994479027676787499235277662156571617957720793923983451286566879014875330118016740706736991981355194846993958405444652507211603807160958​
​
# 计算私钥 d​
phi = (p - 1) * (q - 1)​
d = gmpy2.invert(e, phi)​
​
# 解密 m​
m = gmpy2.powmod(c, d, p * q)​
print(binascii.unhexlify(hex(m)[2:]))

 

[GWCTF 2019]xxor 

输入六个数,for ( j = 0; j <= 2; ++j )外循环三次

 sub_400686(&dword_601078, &unk_601060)函数 tea算法,找到key,delta,内循环64次

(unsigned int)sub_400770(v7) z3方程组

from z3 import *​
s=Solver()​
a1=[Int('a[' + str(i) + ']') for i in range(6)]​
for i in range(6):​
    s.add(a1[2] - a1[3] == 2225223423)​
    s.add(a1[3] + a1[4] == 4201428739)​
    s.add(a1[2] - a1[4] == 1121399208)​
    s.add(a1[0] == -548868226)​
    s.add(a1[5] == -2064448480)​
    s.add(a1[1] == 550153460)​
​
if s.check()==sat:​
    print()​
print(s.model())

 

Key

#include <stdio.h>​
#include <stdint.h>​
​
​
int main() {​
    uint32_t key[4] = { 2, 2, 3, 4 };​
    uint32_t a[6] = { -548868226, 550153460, 3774025685, 1548802262, 2652626477, -2064448480 };​
    unsigned int v5;​
    unsigned int v3;​
    unsigned int v4;​
​
    for (int j = 0; j <= 4; j += 2) ​
       {​
        v3 = a[j];​
        v4 = a[j + 1];​
        v5 = 1166789954 * 64;​
​
        for (int i = 0; i < 64; i++) {​
            v4 -= ((v3 + v5 + 20) ^ ((v3 << 6) + key[2]) ^ (v3 >> 9) + key[3]) ^ 0x10;​
            v3 -= ((v4 + v5 + 11) ^ ((v4 << 6) + key[0]) ^ (v4 >> 9) + key[1]) ^ 0x20;​
            v5 -= 1166789954;​
        }​
        a[j] = v3;​
        a[j + 1] = v4;​
       ​
​
    }​
    for (int i = 0; i < 6; i++)​
    {​
        printf("%x", a[i]);​
    }​
​
    return 0;​
}​

 在线hex转字符

[MoeCTF 2022]checkin 

flag直接喂嘴里

[LitCTF 2023]程序和人有一个能跑就行了 

流程图中发现两组数据

F5反编译

### 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、付费专栏及课程。

余额充值