CTF题库>实验吧>10000000

寻找正确的输入

下载后打开运行

那么我们用 ollydbg打开看看 (说实话我不太会动态调试)

主要是看看这个 

还是用IDA打开看看把

找到主函数  并且F5反编译得到 伪代码 进行分析

把输入字符串的每一位和0x80进行与操作,然后与预置在程序中的值进行比较,相同则正确。

提出来字符串 {230,236,225,231,186,244,229,243,244,244,229,243,244} 

(这里的 字符可以对着它 按 R  或者  H 得到 ASCII码的值 )

C语言进行解决

#include<stdio.h>
#include<string.h>

int main(){
	unsigned char i;
	int j;
	unsigned char k;
	int key[13]={230,236,225,231,186,244,229,243,244,244,229,243,244};
	for(j=0;j<13;j++){
		for(i=32;i<127;i++){
			k=i;
			k=k|0x80;
			if(k==key[j])
			printf("%c",i);
		}
	}
} 

运行得到

提交即可  (去掉flag:)

发布了218 篇原创文章 · 获赞 309 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/qq_42777804/article/details/100079282
今日推荐