2017 陕西省网络安全大赛 拯救鲁班七号 100

纯靠猜,就是下标的问题控制一下就好

写代码还原,如果逻辑还原不了,可以根据给的t数组手动算

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main()
{
	char temp;
	char Key[] = "S!@#@1FD23154A34";
	int len = strlen(Key);
	for (int i = len - 3; i - 2 >= -1; i -= 2)
	{
		for (int j = len - 4; j - 4 >= -3; j -= 4)
		{
			temp = Key[j];
			Key[j] = Key[j - 4];
			Key[j - 4] = temp;
		}
		temp = Key[i];
		Key[i] = Key[i - 1];
		Key[i - 1] = temp;
	}
	printf("%s\n", Key);
	return 0;
}

结果

!@#@ASDF34511234

中间有个反调试,不过我纯静态分析也没有过多的注意它,只是无意中看了一眼,大概是TracerPid字段检测

最开始在.init_array段进行调用

Last updated