尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

nssctf_chicken_soup

nssctf_chicken_soup 下载查壳、64位、IDA打开、f5查看伪代码解析代码用户输入一个字符串通过两次函数操作与403000位置的值进行比对一样就输出flag所以核心函数就是那三个函数点击函数发现了经典的花指令明显标红处是脏字节先按U然后右键nop掉下面一个同样操作然后两个函数就正常显示了第一个函数sub_4010004可以看到是一个重新赋值第二个函数sub_401080可以看到是每一个字节高低4位互换第三个函数sub_401110可以看到是两者进行比较一致的话返回1。所以大概就有思路了先看unk_403000处的值是多少然后写解密脚本可以看到连续38个字节是被比较的值提取出来写解密脚本cipher[205,77,140,125,173,30,190,74,138,125,188,124,252,46,42,121,157,106,26,204,61,74,248,60,121,105,57,217,221,157,169,105,76,140,221,89,233,215]step1[]flagdefswap(b):bb0xffhigh(b0xf0)4low(b0x0f)4return(high|low)foriinrange(len(cipher)):step1.append(swap(cipher[i]))forjinrange(len(step1)-2,-1,-1):step1[j](step1[j]-step1[j1])0xff#print(step2)forninrange(len(step1)):flag(chr(step1[n]))print(flag)#print(step1)然后得到flag本题知识点1、花指令处理2、代码分析3、数据提取4、高低四位的交换要注意用0xff截断5、要逆序推算
返回列表