patch
used for a reverse problem named sm4 in MoeCTF2024
当题目给了解密函数或者加解密对称的函数有一些特殊的方法,可以不去逆算法
**4C**: 这是REX前缀,用于扩展寄存器和操作数的大小。4C指定了指令使用扩展的 64 位寄存器(在此指令中为r8),并且涉及到r8这一高位寄存器**8D**: 这是LEA指令的操作码**45 10**: 这是操作数的 ModR/M 字节和位移量。45表示目标寄存器是r8(4D的时候表示rcx),源操作数的基址寄存器是rbp,并且有一个 8 位符号扩展的位移量。10是位移量
栈结构如下
1  |  | 
A0-50=50,所以上图黄色位置为50
现在要改为enc,A0-100=-60,变成A0,相当于把加密后的数据快速改成密文,也可以调试的时候一位位改
输入长度为48位(题目要求)的时候正常输出flag
                
              patch
      https://j1ya-22.github.io/2025/02/05/patch/