攻防世界---->ReverseMe-120

做题学习笔记。

前言:目前遇见的reverse都是,已知密文,去求解明文flag;

此题逆着来,通过明文,去求解密文flag。

base加密的识别,还算容易。 那么,base解码的识别呢?

攻防世界--ReverseMe-120 - Hk_Mayfly - 博客园 (cnblogs.com)icon-default.png?t=O83Ahttps://www.cnblogs.com/Mayfly-nymph/p/11645169.html谢谢。

下载 查壳。

32ida打开。

逆向往前看。

cmp

encode = you_know_how_to_remove_junk_code(垃圾代码?)

因为看不懂。。。默认成垃圾代码不过分吧。。。

当时看见这种明文格式,心里有底,这flag可能是某种编码,然后再XOR 25得到的encode——明文。

做题时,首先就先逆向还原 XOR 25:

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

int main()
{
	char encode[] = "you_know_how_to_remove_junk_code";
	for (int i = 0; i < strlen(encode); i++)
	{
		encode[i] ^= 37;
		printf("%c", encode[i]);
		//\JPzNKJRzMJRzQJzW@HJS@zOPKNzFJA@
	}
	printf("\n");
	system("pause");
	return 0;
}


//\JPzNKJRzMJRzQJzW@HJS@zOPKNzFJA@

然后。。。卡住了,但是知道是经过了某种算法。

但是里面的内容,我确实看不懂。(小白。。)

不懂,查资料呗:(这次真正理解了base64加密)。

base64加密原理 - Hk_Mayfly - 博客园 (cnblogs.com)icon-default.png?t=O83Ahttps://www.cnblogs.com/Mayfly-nymph/p/11644823.html

base64加密 | 我的理解:

表:

当然,前提是,表未魔改 或者 加密算法,未魔改。

C语言实现base64的解码脚本:

(因为,此题,是用C/C++去写的,异曲同工之妙。)

Base64编解码算法详解(附C/C++源码)_base64解码算法-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/prsniper/article/details/7097643

程序逻辑:

大概就是 输入的字符 进行 base64解码操作,然后XOR 25 得到的明文

那么,先XOR25() 再 对其进行编码操作即可。

//   \JPzNKJRzMJRzQJzW@HJS@zOPKNzFJA@ 进行base64加密呗。

验证:

XEpQek5LSlJ6TUpSelFKeldASEpTQHpPUEtOekZKQUA=

总结:此题挺好的。 加密算法识别,解密算法识别,都需要能掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值