逆向板块就做出这一题。
思路大概就是先进行转换然后SHA1加密
#include<stdio.h>
#include<Windows.h>
#include <stdint.h>
#include <string.h>
#include"defs.h"
unsigned int box[10000] = {
//data
}
int main()
{
char encflag[49] = { 0 };
char flag[49] = { 0 };
unsigned int *memory = box;
unsigned int aaa = 0;
for (int i = 0; i < 48; ++i)
{
for(int j=32;j<128;j++)
{
int v5 = memory[2 * j];
if (j - 5 == v5)
{
encflag[i] = ~(j + 1);
}
else
{
if (j + 5 != v5)
{
continue;
}
encflag[i] = ~(j - 1);
}
flag[i] = j;
memory = &box[(box[j * 2 + 1 + memory-box] - 0x169078)/4];
aaa = j * 2 + 1;
break;
}
}
printf("%s", flag);
}
有函数可知,

文章描述了一个涉及字符串转换和SHA1加密的过程,通过C语言代码展示了如何根据特定规则生成48位字符串,并对这个字符串进行加密。作者还提到需要通过手搓步骤逐步找到flag。
最低0.47元/天 解锁文章





