3.6日志(练习+继续学汇编)

先附上每日一练:(重做开学考)

1.re

python 复制代码
x = ord(j) ^ (0x1F + i % 8)
x = ((x >> 3) | (x << 5)) & 0xFF

干扰的被我删了,真正加密flag的只是这两个式子

python 复制代码
base64.b64encode(bytes(Franxx)).decode()

#redcordage(text)=yKrpS0nrCELPgojiCMJoAmUiIgjIgmLCb0Ij6AiDo+gF4mIC4mIL
python 复制代码
import base64

def decode_redcordage(m):
    Franxx = base64.b64decode(m)
    flag = []
    for i, y in enumerate(Franxx):
        # 循环左移3位恢复原值
        x = ((y << 3) | (y >> 5)) & 0xFF
        key = 0x1F + (i % 8)
        f = x ^ key
        flag.append(f)
    return bytes(flag).decode('')

m = 'yKrpS0nrCELPgojiCMJoAmUiIgjIgmLCb0Ij6AiDo+gF4mIC4mIL'
result = decode_redcordage(m)
print(result)

flag{3v3ryb0dy's_f1rst_Dar1ing}

2.crypto

python 复制代码
h1=pow(2022*p+2021*q,1919,n)
h2=pow(2021*p+2022*q,9191,n)
#h1,h2
#n; c; e = 65537;

'''
其实就是pq出来了就好
'''

梦回新高考,还好做过

NSSCTF{Math_1s_re4lly_imp0rtant_1n_Crypt0graphy}

3.crypto

python 复制代码
from Crypto.Util.number import long_to_bytes
import random
import math

def factorize_n(e, d, n):
    k = e * d - 1
    # 将 k 表示为 t * 2^s
    t = k
    s = 0
    while t % 2 == 0:
        t //= 2
        s += 1
    # 随机选择 g 直到找到因子
    while True:
        g = random.randint(2, n - 2)
        x = pow(g, t, n)
        if x == 1 or x == n - 1:
            continue
        for _ in range(s - 1):
            x_prev = x
            x = pow(x, 2, n)
            if x == 1:
                p = math.gcd(x_prev - 1, n)
                if p != 1 and p != n:
                    return p, n // p
                else:
                    break
            elif x == n - 1:
                break
        else:
            continue
'''
#n,e,d
m_xor = pow(cipher, d, n)
p, q = factorize_n(e, d, n)

# 计算 p XOR q
x = p ^ q
m = m_xor ^ x

print(long_to_bytes(m))
'''

NSSCTF{XOR_Reveals_The_Hidden_Key}

4.明天继续

*这题我做不动(加盐md5),找不到这个算法怎么解MD5(salt.pass),毫无头绪【问题1】

---------------------------------------------------我是分割线---------------------------------------------------------------

学了:

要掌握什么:数据处理、运算的两个问题

1.处理的数据在什么地方?

2.要处理的数据有多长?

*问题2回答:

【指令中必明确/隐含说明】在哪里用过:

复制代码
db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1
dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2
dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4

与危险函数read()

填4个db,到dword_60106C

python 复制代码
'''
b'a'*4+p64(1853186401)
'''
#remote连接,recvutil
#sendline,print(p.recv())

其他:

div,dup掌握一下除法和重复

*问题1回答:处理的数据在什么地方

接下来就是把今天看过的这页目录里的内容再多看看:

因为经常碰到各种ret2题:

碰到过在可写的bss段试图构造system('/bin/sh'),使程序跳转(覆写return address)至shellcode所在内存

ret2shellcode是指攻击者需要自己将调用shell的机器码(也称shellcode)注入至内存中,随后利用栈溢出复写return_address,进而使程序跳转至shellcode所在内存。

要实现上述目的,就必须在内存中找到一个可写(这允许我们注入shellcode)且可执行(这允许我们执行shellcode)的段,并且需要知道如何修改这些段的内容。不同的程序及操作系统采取的保护措施不尽相同,因此如何注入shellcode也应当灵活选择。

相关推荐
Codingwiz_Joy41 分钟前
Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器
android·安全·web安全·安全性测试
snpgroupcn2 小时前
ECC升级到S/4 HANA的功能差异 物料、采购、库存管理对比指南
运维·安全·数据库架构
旭华智能3 小时前
地下井室可燃气体监测装置:守护地下安全,防患于未“燃”!
安全
暴躁的小胡!!!3 小时前
Linux权限维持之vim python 扩展后门(五)
linux·运维·服务器·网络·安全
TinTin Land4 小时前
后 Safe 时代:多签钱包安全新范式与防范前端攻击的新思路
前端·安全
开开心心就好4 小时前
电脑睡眠智能管控:定时、依状态灵活调整,多模式随心选
javascript·windows·python·安全·django·pdf·电脑
福鸦4 小时前
C++ STL深度解析:现代编程的瑞士军刀
开发语言·c++·算法·安全·架构
网络安全Ash5 小时前
2025网络安全漏洞
安全·web安全
独行soc5 小时前
2025年渗透测试面试题总结-长某亭科技-安全服务工程师(二面) (题目+回答)
网络·科技·安全·面试·红蓝攻防·护网·2015年
内向的小农5 小时前
Vue3安全新防线:RSA加密密码的实现与优化指南
前端·vue.js·安全