Jarvis OJ Baby Crack Write Up

一道很简单的逆向题,拿到程序以后,打开flag.enc文件:


感觉是个加密后的文件,然后把exe文件拖进IDA分析,F5拿到伪代码:


注意观察24行开始的代码,可以知道这里是读入文件中的每一个字符,然后根据ASCII码的大小来进行加密,直接根据加密规则编写解密程序:

#include  <iostream>
#include  <cstdio>
#include  <cstring>
using namespace std;
char s[] = "jeihjiiklwjnk{ljj{kflghhj{ilk{k{kij{ihlgkfkhkwhhjgly";
int main() {
	int len = strlen(s);
	for(int i = 0; i < len; i++) {
		//printf("%c ", s[i]);
		if(s[i] >= 101 && s[i] <= 149) {
			printf("%c", s[i] - 53);
		}
		if(s[i] <= 56 && s[i] >= 0) {
			for(int j = 0; j < s[i]; j++) {
				if(j + j % 11 == s[i]) {
					printf("%c", j);
				}
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/wannafly1995/article/details/80794170