SMC + 花指令

[网鼎杯2020青龙组]jocker

花指令部分

image
压栈前后栈地址不变,在call调用函数处修改esp = 0
image

SMC加密部分
image

一共有两张方法,动态调试/ida脚本

ida脚本

import ida_bytes
address = 0x401500

for i in range(187):
	current_address = address + i
	origin_byte = ida_bytes.get_byte(current_address)
	xor_byte = origin_byte ^ 0x41
	ida_bytes.patch_byte(current_address, xor_byte)	

使用脚本后先undefine,然后转为code
修改后效果
image

针对encrypt

flag1 = [

    14,

    13,

    9,

    6,

    19,

    5,

    88,

    86,

    62,

    6,

    12,

    60,

    31,

    87,

    20,

    107,

    87,

    89,

    13

]

  

word = "hahahaha_do_you_find_me?"

flag = []

for i in range(len(flag1)):

    flag.append(chr(ord(word[i]) ^ flag1[i]))

print("".join(flag))

针对后5个
image

最后字符为'}'
image

str = "%tp&:"

flag2 = []

for i in range(len(str)):

    flag2.append((chr(ord(str[i]) ^ 71)))

flag = flag + flag2

print("".join(flag))

flag{d07abccf8a410cb37a}

posted @ 2025-07-10 15:03  iHtAlgorithm  阅读(12)  评论(0)    收藏  举报