寻找正确的输入
下载后打开运行
那么我们用 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:)