666

使用ida打开,汇编看不懂,按f5反编译
image

分析可知先定义了名为s和v5两个字符型数组
然后为s申请内存存放,大小为0x1E,代表30字节
输入的内容给v5
将v5和s传入给encode函数
经过encode函数后,如果v5的字符串长度和key不相等就会退出程序,相等则进入下一层判断,判断s和enflag是否相等

所以flag的关键在于encode函数里面,双击进入encode函数
image

分析代码
定义了字符型数组v3,然后定义了数字v4和i
如果a1的长度与key不相等就会输出Your Length is Wrong
for循环,i从0开始,每次循环后i+3,当i大于等于key的时候结束
a1和a2代表的是传进来的参数v5和s
LL代表long long,加数据类型是为了防止数据越界
按照for循环中的公式对a2(即s)进行修改,最后return a2;即输出a2

现在需要知道key和enflag,双击key
image

可以发现enflag是'izwhroz""w"v.K".Ni',长度为18,按照上文的加密逻辑,可以知道key等于enflag的长度18,知道这些之后就可以写解密脚本了,就是倒过来,加密是明文加6再异或key,那解密就是先让密文和key异或,然后减6

#include<stdio.h>
int main(){
	int i;
	char a[]="izwhroz\"\"w\"v.K\".Ni";
	for(i=0;i<18;i+=3){
		a[i]=(a[i]^18)-6;
		a[i+1]=(a[i+1]^18)+6;
		a[i+2]=(a[i+2]^18)^6;
	}
	printf(a);
	return 0;
} 

image

posted @ 2026-03-06 19:06  大雪深埋  阅读(13)  评论(0)    收藏  举报
// 正常配置 window.cnblogsConfig = { links: {}, }; // 友链页配置 window.cnblogsConfig.links.page = [ { title: '友情链接', // 标题 icon: 'icon-lianjie', // iconfont style: 'color: #a78bfa;', links: [ { name: '2_haowen_V', // 昵称 introduction: 'IT技术类博客', // 简介 avatar: 'https://pic.cnblogs.com/face/1334215/20180504110551.png', // 头像 url: 'https://www.hehaowen.com.cn/' // 友链地址 }, ] }, ];