首页
社区
课程
招聘
[求助]如何防止'SetWindowText'
发表于: 2005-10-25 15:24 5413

[求助]如何防止'SetWindowText'

2005-10-25 15:24
5413
大家好:
  我写了一个MFC程序,进入考试界面后,等待用户输入明文(数字,字母,汉字),然后开始判断答案是否正确,判断对错,打分.
  
  别人写了个欺骗程序,当进入考试界面后,用户按下快捷键调用欺骗程序,GetDlgItem EditBox, SetWindowText, 把答案直接添到了EditBox.

  怎么才能有效判断EditBox中的输入是用户手工输入 还是 欺骗程序输入的?

  用'GetAsyncKeyState'能有效解决这个问题么?

Thanks

Yours LoseSpeed

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
很难,别人可以先写在记事本上算题, 然后把结果用鼠标粘贴到你的Edit中
2005-10-25 15:33
0
雪    币: 288
活跃值: (112)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
3
关键问题不在于判断是否 手工输入。

就算你能判断是否手工输入,既然写出了欺骗程序,那它完全可以把答案放到记事本里面,然后手工输入。

关键想想 怎么会出现欺骗程序,
是因为你的题目太简单了?欺骗程序太智能了?能算出答案?

还是你的题库和答案被欺骗程序收编了?

在题目的灵活性上多下功夫,
选择题可以试着动态变换选择项的内容和顺序。
计算题可以动态变换某个量的数值。
........
2005-10-26 10:16
0
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
一种方法:
添加一个PreTranslateMessage()函数
一但用户按某个键后就设置一个全局变量为1,
不过这个键就是要每一次答题都一定要被按下的
比较难想
2005-10-26 12:11
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 LoseSpeed 发布
大家好:
我写了一个MFC程序,进入考试界面后,等待用户输入明文(数字,字母,汉字),然后开始判断答案是否正确,判断对错,打分.

别人写了个欺骗程序,当进入考试界面后,用户按下快捷键调用欺骗程序,GetDlgItem EditBox, SetWindowText, 把答案直接添到了EditBox.

........


加个猛壳好了。
2005-10-26 13:04
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
楼主是中行的?
2005-10-26 14:34
0
雪    币: 230
活跃值: (180)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
7
若采用标准的Edit控件,可以用窗口子类化试一下处理WM_SETTEXT消息.不过还是自己写个输入控件比较好.
2005-10-26 19:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我也在想,那个所谓的"欺骗程序"的答案是从那里来的,
是人家手工算的吗,还是抄袭的,还是程序自己算的?
如果是人家自己算得,那也无所谓吧,不算是作弊的吧
2005-10-27 10:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有了这几种方法,应该行了
人多力量大,呵呵
多谢各位
2005-10-27 21:04
0
雪    币: 212
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
可以这样,用自绘的界面,所谓的输入框都是自己画出来的,本身不存在这个窗口,这样就可以防止hack了
2005-10-28 20:29
0
游客
登录 | 注册 方可回帖
返回
//