nss合集

本文概述了多个IT竞赛中的加密技术(如MD5、Base64、XOR和XTEA)以及逆向工程技巧(如IDA工具、函数解密和控制流分析),参赛者如何通过解密和调试获取flag的过程。
摘要由CSDN通过智能技术生成

1.[羊城杯 2020]login

python逆向之后

解函数

顺序换了

md5加密得到flag 58964088b637e50d3a22b9510c1d1ef8

2.[SWPUCTF 2022 新生赛]xor

3.[羊城杯 2020]easyre

先看第一个加密函数

本判断为base64加密

第二个加密函数

分成四段重组

第三个加密函数自定义,写脚本解密

结果base64解密一下

4.[SWPUCTF 2022 新生赛]贪吃蛇

ida64位打开

第三个函数里有flag关键字

直接动调没有结果

jnz改成jz(75改成74)

在跳转下断点,动调

改zf,f8,双击t_flag,提取数据

5.[HNCTF 2022 WEEK2]getflag

ctrl+x找到引用函数

改条件,jg改成jle(7F改7E)

再次运行得到flag

6.[HNCTF 2022 WEEK2]TTTTTTTTTea

xtea加密

from ctypes import *
import binascii
from Crypto.Util.number import *


def encrypt(v, key):
    v0, v1 = c_uint32(v[0]), c_uint32(v[1])
    delta = 0x61C88647

    total = c_uint32(0)
    for i in range(32):
        v0.value += (((v1.value * 16) ^ (v1.value >> 5)) +
                     v1.value) ^ (total.value + key[total.value & 3])
        total.value += delta
        v1.value += (((v0.value * 16) ^ (v0.value >> 5)) +
                     v0.value) ^ (total.value + key[(total.value >> 11) & 3])

    return v0.value, v1.value


def decrypt(v, key):
    v0, v1 = c_uint32(v[0]), c_uint32(v[1])
    delta = 0x61C88647

    total = c_uint32(delta * -32) 
    for i in range(32):
        v1.value -= (((v0.value << 4) ^ (v0.value >> 5)) +
                     v0.value) ^ (total.value + key[(total.value >> 11) & 3])
        total.value += delta  
        v0.value -= (((v1.value << 4) ^ (v1.value >> 5)) +
                     v1.value) ^ (total.value + key[total.value & 3])

    return v0.value, v1.value


# test
if __name__ == "__main__":
  
    key = [0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F]


    res = [0xC11EE75A, 0xA4AD0973, 0xF61C9018,
           0x32E37BCD, 0x2DCC1F26, 0x344380CC]
    res2 = [0x1, 0x1]
    for i in range(0, len(res), 2):
        # print(i)
        res2 = [0x1, 0x1]
        res2[0] = res[i]
        res2[1] = res[i + 1]
        res22 = decrypt(res2, key)
        print(str(long_to_bytes(res22[0])[::-1]) +
              str(long_to_bytes(res22[1])[::-1]), end="")
"""
Data is :  0x12345678 0x78563412
Encrypted data is :  0xae685ec7 0x59af4238
Decrypted data is :  0x12345678 0x78563412
"""

7.[BJDCTF 2020]JustRE

拖进ida查看字符串

发现一个可疑的东西

点进去交叉引用

把两个%换成19999和0

就是flag

8.[NISACTF 2022]sign-ezc++

搜索Human找到关键函数和数组

脚本

9.[广东省大学生攻防大赛 2022]pyre

下载附件

反编译之后

脚本

一开始搞错了%和除不一样

10.[SWPUCTF 2023 秋季新生赛]UPX

指令脱壳

拖进ida

11.[HNCTF 2022 WEEK2]e@sy_flower

拖进ida,发现花指令,nop掉

按p重写main函数

反编译

写脚本

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值