北京理工信息安全对抗赛ISCC2012的一个题目:
最后的时刻到了,要登陆小明的账号去领取船票,我们知道他的密码是在数字10071与90089之间。同时了解到密码经过下面这个dll文件中的decode函数加密后结果是68912。现在,请你写一个小程序,找出这个密码是什么,并且提交,dll可以直接下载。提示一句:调用dll中的函数的名称为decode,函数的输入参数是一个数字~祝您好运
我的解码程序:
#include "windows.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
int num_to_decode = 68912;
typedef int (_cdecl*decode)(int);
decode d_f;
HMODULE h = LoadLibraryA("2031.dll");
d_f = (decode)GetProcAddress(h, "decode");
for (int num = 10071; num <= 90089; num++)
{
if (d_f(num) == 68912)
{
printf("decode success!\n");
printf("the num is %d\n", num);
break;
}
}
return 0;
}
得到的结果为:77777