函数指针的用法

来源:互联网 发布:java桌面程序开发 编辑:程序博客网 时间:2024/05/30 04:45

北京理工信息安全对抗赛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

 

原创粉丝点击