如何验证远端客户端程序未被破解篡改过?

fffaaa2003 2005-12-31 08:51:38
从理论上能实现吗?

服务端和客户端用哪种方式通信验证才能保证客户端程序未被篡改过呢?
...全文
338 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
BenLeak 2006-03-29
  • 打赏
  • 举报
回复
从服务器发送一些数据,经过客户端计算再次发送回去呢?
thht4321 2006-03-28
  • 打赏
  • 举报
回复
求购视频会议源代码!
有提供者请电:
tanhua1962@163.com

Persistent8813 2006-03-26
  • 打赏
  • 举报
回复

在破解客户端文件之前把MD5值计算出来并保存,然后破解,向服务端发送MD5时发送之前保存的MD5值就可以了。

我是这样想的,如果只是简单的通过发送字符串,是不能起到验证远端程序是否被修改的。因为你完全可以另建一个程序,做好事先设定好的应答,也就是伪装原程序。

能否通过RSA体制,数字签名体制来验证?知识有限,想不明白。



如何截取得验证信息?再如何向服务器发送昵?能不能启发一下?
玄之丞 2006-03-24
  • 打赏
  • 举报
回复
或者这样,

客户端只是一个类似模拟器的东西。
要做什么都是由服务端控制的。

比如用户点一个桉钮,客户端告诉服务端用户点了一个按钮 Name=button1

服务端返回,客户端要执行的函数: button1OnClick() {}

客户端执行。

呵呵,就是速度上。

PS:有什么BCB的好群可以加么?
玄之丞 2006-03-24
  • 打赏
  • 举报
回复
重要的不是不可解,

是让解代码的人,痛苦,痛不欲生。

解的时间超过开发时间。就OK了。

我想破解的人,会自己开发一个的。
玄之丞 2006-03-24
  • 打赏
  • 举报
回复
没有办法完全防范,只能加强难度了。

客户端不定时的,发出服务端指定的代码段的哈希。

服务端根据代码段及哈希进行判定。

服务端的指令加密。代码段哈希加密。
zephyr007 2006-01-07
  • 打赏
  • 举报
回复
服务器端拥有的仅仅是一个网络的一端,网络另一端的程序只要发送的数据合法,服务器端时不可能分辨的。有个笑话可以说明这个原理:在Internet上,没有人知道聊天的是一条狗
不过,楼主可以设法增加一下破解的难度,虽然不能避免,但可以在一定程度上保护
LngDotin 2006-01-03
  • 打赏
  • 举报
回复
同意 myy() 的观点,实际上软件关键的跳点就那么一个或几个,反汇编出来,或者用 OllyDbg 出来,74 改 75 ,0F84 改 0F85 就搞定,没好法的吧。
Maconel 2006-01-03
  • 打赏
  • 举报
回复
我的意思是,在不同的时间,发送的内容不一样,使破解者不知道该发送什么内容。
myy 2006-01-03
  • 打赏
  • 举报
回复
to Maconel(Maconel) :

不发送md5,而是...

---------------------------
没有用的,人家根本不管你的的算法,
只要遵守“合法客户端发什么,模拟程序就发什么”的原则就行了。
Maconel 2005-12-31
  • 打赏
  • 举报
回复
不发送md5,而是发送一个根据md5计算得到的值,而且这个结果也是不一定的,而是根据时间变动的。
比如简单地,将本身的md5和当前日期的md5相加,发送得到的结果。不过当然不能用相加这么简单的算法,而使用一个比较复杂的算法。就算破解者知道你是根据这2个值来计算的,也不知道你的算法是什么,也就无法得到正确的结果。
虽然将你的程序反汇编后,还是能够得到你的算法,但是好歹也是增加些难度吧。
fffaaa2003 2005-12-31
  • 打赏
  • 举报
回复
你说的方法我想过,应该不可行。

破解该客户端,向服务端发送原客户端的MD5值就可以达到欺骗。
weill 2005-12-31
  • 打赏
  • 举报
回复
从原理上来说,这是一个不可完成的任务!
如果破解者有足够的技术和耐心,是完全可以做出一个模拟客户端的。

如一些网游戏的脱机外挂便是如此。

防护只能使破解者破解的难度加大,而无法从根本上防止。

一种变态的方法是定期升级客户端,也就是说,定期改变客户端与服务器端的通信加密算法与加密字典表,可能可以比较有效的产生防护效果,最主要的是使破解者疲与奔命,来查找或猜解算法。
ccrun.com 2005-12-31
  • 打赏
  • 举报
回复
客户端计算出自身文件的MD5值,然后发送给服务端,在服务端与保留的客户端数据进行比较。
fffaaa2003 2005-12-31
  • 打赏
  • 举报
回复
我不会问了一个IT界存在已久的难题吧?哈哈哈哈
fffaaa2003 2005-12-31
  • 打赏
  • 举报
回复
或者,哪位高手介绍一下现在编程界普遍使用的较难破解的服务端和客户端验证手段
fffaaa2003 2005-12-31
  • 打赏
  • 举报
回复
真的是这样吗?真的没有办法了吗?

从现有技术角度来看,真的是不可能正确验证吗?

谁能从更高角度来解释一下,从理论上证明一下,也让我绝了这个心思,省得浪费时间,谢谢了
myy 2005-12-31
  • 打赏
  • 举报
回复
如果人家想破解(并且拥有一套合法的客户端程序),我想你是没有彻底的办法防治的。
ccrun.com 2005-12-31
  • 打赏
  • 举报
回复
恩。对,你说的有道理。看来需要在通讯中做一些验证手段了。
fffaaa2003 2005-12-31
  • 打赏
  • 举报
回复
在破解客户端文件之前把MD5值计算出来并保存,然后破解,向服务端发送MD5时发送之前保存的MD5值就可以了。

我是这样想的,如果只是简单的通过发送字符串,是不能起到验证远端程序是否被修改的。因为你完全可以另建一个程序,做好事先设定好的应答,也就是伪装原程序。

能否通过RSA体制,数字签名体制来验证?知识有限,想不明白。
加载更多回复(2)

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧