2021-09-08刷题攻防世界

本文介绍了两篇关于静态分析的博客,涉及ida工具的使用来理解加密函数,并通过编写C脚本来解密得到flag。在第一个案例中,通过对authenticate函数的分析,解密了s和a2得到flag。第二个案例中,64位PE文件的分析揭示了对t和s字符串的加密操作,通过调整脚本得到了正确的flag。
摘要由CSDN通过智能技术生成

5.no—strings-attached

静态分析

根据文件打开ida32程序,同时F5打开伪代码

跟进函数,发现authenticate()函数有点东西,其中decrypt(英文 解密)函数为加密函数,跟进——在这里插入图片描述

红框则为加密代码,对s和a2进行加密操作得到flag字符串dest。通过编写c脚本得到本题flag

#include<stdio.h>
int main(){
	char s[]={0x143A,0x1436,0x1437,0x143B,0x1480,0x147A,0x1471,0x1478,0x1463,0x1466,0x1473,0x1467,0x1462,0x1465,0x1473,0x1460,0x146B,0x1471,0x1478,0x146A,0x1473,0x1470,0x1464,0x1478,0x146E,0x1470,0x1470,0x1464,0x1470,0x1464,0x146E,0x147B,0x1476,0x1478,0x146A,0x1473,0x147B,0x1480};
	char a2[]={0x1401,0x1402,0x1403,0x1404,0x1405};
	int v6=strlen(s);
	int v7=strlen(a2);
//	printf("%s\n",s); 
	int v4,i=0;
	while(v4<v6){
		for(i=0;i<v7;++i){
			s[v4++]-=a2[i];
			
		}
	}
	printf("%s",s);
	return 0;
}
//得flag--9447{you_are_an_international_mystery}

6.getit

打开PE分析,是64位文件,通过ida64位打开,同时F5进入伪代码。在这里插入图片描述

红框即为关键代码,对t和s字符串进行加密操作。编写C脚本。关键加密代码就是 *(&t + v5 + 10)=s[v5] + v3

#include<stdio.h>
#include<string.h>
int main(){
	char s[]="c61b68366edeb7bdce3c6820314b7498";
    char t[]="harifCTF{????????????????????????????????}";
	int v5=0;
	int len=strlen(s);
//	printf("%d",len);
	int v3=0;
	for(;v5<len;v5++){
		if(v5 & 1)
			v3=1;
		else
			v3=-1;
		*(t + v5 + 10)=s[v5] + v3;	
	}
	printf("%s",t);
} 

得flag–harifCTF{?b70c59275fcfa8aebf2d5911223c6589,验证失败,查看前辈的wp,发现不知是坑还是内容出错[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wl6x7rE0-1631112227581)(C:\Users\86182\AppData\Roaming\Typora\typora-user-images\image-20210825153808728.png)]

灵感来源(4条消息) getit 攻防世界 (有个坑)_爱党人士-CSDN博客

对脚本得到的flag做出修改得真正的flag–SharifCTF{b70c59275fcfa8aebf2d5911223c6589}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值