文号
t56778
阅读
18904
回复
32
收藏
15
求助:如何用c++写出这样的加密程序
2013/05/12
IP:陕西
最近打算和一个同学搞一个去除网速限制的程序(学校电脑室网速很渣),卖给别的班的赚点零花钱,我负责搞放盗版程序。但是自己c++技术不够高,所以想请教各位高手如何实现下述的方法:
1.使用类似序列号的密码,一个只能使用一次,用后即废,并让我知道该密码已用。
2.每个密码不能通用,并且可以让我知道新的密码。
3.无法复制。(这个能否用bat实现?)
4.在程序使用前自动检测那些密码已使用并使其无效。
还有就是如何在密码输完后启动一个bat,而且bat和加密程序整合到一个exe里?
谢谢各位大师的帮助!
13年7个月前IP:未同步
524864
1楼
c中可以用system调用命令行命令
至于密码,我想到一个简单方法
就是用时间
对,自己想一个加密算法
然后用时间代进去算,得到密码
第二天就不能用了
引用
评论
13年7个月前IP:未同步
524925
2楼
回 楼主(yurifreeman) 的帖子
如果要针对目标机器不同生成序列号的话可以用硬盘ID、网卡MAC之类的地方。Windows API里面有有相应的函数可以查询。
引用
评论
13年7个月前IP:未同步
524943
3楼
回 楼主(yurifreeman) 的帖子
安装完自动删除安装包  而且要你亲手安装...   安装包不外流  或者在线安装
引用
评论
13年7个月前IP:未同步
524988
4楼
把你家电脑当server,软件把你给他们的序列号经过网络发送到你家电脑,然后比对你家电脑数据库里的序列号进行验证,添加序列号,删除序列号和验证你都能知道,M$的系统激活就是这么干的

无法复制是不可能的了,不过这种方法可以确保一个序列号只能用一次
-5
科创币
jrcsh
2013/05/13
想知为什么请让付费100
引用
评论
13年7个月前IP:未同步
524992
5楼
谢谢大家的好办法。本人不胜感激。
引用
评论
13年7个月前IP:未同步
524998
6楼
让对方提供 通信用的网卡 MAC    进行注册和出注册吗

3~5 天 随机更新一次本地注册码 ,必须是多种条件随机的,条件还是要偶然性的,比如 1.111G的流量后检查 上次的注册时间,  又以这次的注册时时,随机生成多少M/G 的流量时检查更新注册码,  或多少天内 多少流量作为必需更新的依据,重点是就多种条件结合,随机性大,让监听和跟踪的方法回家.

注册位置多点,和MAC 及不同批次的注册码有关,叫他跟踪。


只有注册过MAC地址 服务器才自动下发下注册,并作记录,包括申请更新注册码的记录,


还有什么邪恶的方法~~~~~~
引用
评论
13年7个月前IP:未同步
525003
7楼
道高一尺魔高一丈啊,我现在用的Adobe Acrobat 9 Pro 和Autodesk 3ds Max 2010 都是用注册机破解的,说不定别的班也出一个电脑高手把你的加密给破了[s:227]
还有,感觉你这东西不会很好卖,需求量不大,那么短短的几十分钟,用钱来换一台上世纪的电脑来玩。。。还是共享算了吧,造福大众,自己也永垂不朽[s:269]
引用
评论
13年7个月前IP:未同步
525005
8楼
既然是去除网速限制的程序,那使用的时候必然是联网状态了,所以应该用在线服务器的方式对软件进行授权,软件与服务器间通信使用ASE或DES等加密算法即可,授权服务端建议使用PHP等网页方式编写,以便可以放置在虚拟主机等低成本环境中
引用
评论
13年7个月前IP:未同步
525020
9楼
其实我有更大的疑问~~~~ 楼主用什么方法突破限止[s:178]
引用
评论
13年7个月前IP:未同步
525108
10楼
回 9楼(jrcsh) 的帖子
同一个学校里没那么多电脑高手吧
引用
评论
13年7个月前IP:未同步
525109
11楼
表示一直用AUTOIT,   jam和自动化操作很方便,截屏幕开摄像头送文件开地址一个语句就可以。aes  之类的ENCODE函数完全自带,也是一句就可以加密全文完成保存。可以混合多个函数连续覆盖。特强的优势我觉得在于操控GUI和IE还有系统实例,模拟人类操作等。因为它就是为这个而生的,加密在于算法,而且也能实现各种调用,DLL,API等。以及制作友好的界面。我自己制作了一个彩虹编码。不过AUTOIT的反调试能力为0
引用
评论
13年7个月前IP:未同步
525131
12楼
回 9楼(jrcsh) 的帖子
学校有两种ip,一种是学生用的,另一种是老师用的。
在机房上课时网速渣到爆,到老妈办公室下东西网速上800kb/s.(老妈是学校老师)
突破网络限制的程序是另一个同学整的,我只负责加密。
引用
评论
13年7个月前IP:未同步
525135
13楼
回 8楼(我说要有光) 的帖子
租服务器太贵.........
引用
评论
13年7个月前IP:未同步
525137
14楼
回 7楼(robbie) 的帖子
实际上学校有个机房电脑是新换的,性能很好
引用
评论
13年7个月前IP:未同步
525248
15楼
服务器就找个免费主机凑合用(虽然比较麻烦)
序列号的产生一定要随机,像神马硬盘id,网卡mac,以及时间,用这些生成一个机器码,同学给你机器码,
其实可以什么注册都不用,就用这个机器码
程序启动时,先向服务端发送申请,包括机器码等信息
然后,服务端查找是否有这个机器的备案,如果不存在,反回信息,让程序停止连网,提示注册...
你还可以搞更新,更新一次就要重新注册(别骂我...)
甚至,你倀
引用
评论
13年7个月前IP:未同步
525489
16楼
谢谢各位的好办法。现在又出现了一点问题。那个同学整的取消限制的bat在学校电脑上用不了,所以现在想用c++来实现这个功能。
那个bat也不复杂,就是把原有的ip地址换成我们找到的老师的ip地址。ip地址上最后几位是让用户自己输入的。
这个程序用bat简单,但是c++就不清楚了。所以请大家再出一些好主意,谢谢。
引用
评论
13年7个月前IP:未同步
525508
17楼
找命令对应的API
引用
评论
13年7个月前IP:未同步
525516
18楼
只是换个ip而已,别人随便都能自己查到ip,这搞了序列号跟没搞一样。。。
另外,换ip有windows函数可以调用,就不用bat了

其实可以用vpn,就给一个账号就行,按使用时间限制,超时禁用,充值启用,或者流量限制什么的
引用
评论
13年7个月前IP:未同步
534068
19楼
1.使用类似序列号的密码,一个只能使用一次,用后即废,并让我知道该密码已用。
答:这个很简单,用guid或者时间
2.每个密码不能通用,并且可以让我知道新的密码。
答:这个你用一个数据库表存放用过的密码,不在表的就是新的,或者一次性生成一批密码,用一个状态字段来管理
3.无法复制。(这个能否用bat实现?)
答:这个应该是界面的控制问题,你需要在你程序里面屏蔽掉Ctrl+C的事件即可
4.在程序使用前自动检测那些密码已使用并使其无效。
答:同第二步
还有就是如何在密码输完后启动一个bat,而且bat和加密程序整合到一个exe里?
答:你可以程序每次生成一个bat然后启动它,用 ShellExecute
引用
评论
13年6个月前IP:未同步
545645
20楼
可以使用不对称算法实现,注册硬件信息。  加密是这样的,由不对称算法生成一堆公钥与私钥,公钥负责公钥加密,私钥负责解密。  对需要更安全一点,并可以其他算法对公钥进行再次加密。
引用
评论
13年6个月前IP:未同步
545733
21楼
回 20楼(cs_net) 的帖子
依赖硬件信息非常容易被Crack
读取硬件信息的API很容易处理,如果用驱动IO直接读取则可以考虑截取通信之类的方式
引用
评论
13年6个月前IP:未同步
545737
22楼
谢谢大家的指点。本人受益匪浅。
引用
评论
13年6个月前IP:未同步
545745
23楼
简单的可行方案:采用标准的CS模式设计,服务器上保存每个用户的密码多次MD5运算的结果值,并保证给用的密码足够使用,这样即使服务器代码泄露也不会暴露原始密码。

理论的最安全方案,量子密码,理论上密码不可被拦截,再次基础上一次一密,确保安全,但是目前为止没有可行的民用应用方案
引用
评论
13年6个月前IP:未同步
545747
24楼
至楼上各位,安全加密方案现在没有什么是安全的,国际上最安全的加密公司产品在我们这里,也就是一次演示会议的时间,会议结束还没签订意向,产品就被爆破,在对方重视的前提下第二年卷土重来想拿我们的项目,还是一次会议时间搞定。。。。

所以别相信算法和一些私有小伎俩,老老实实一次一密最靠谱
引用
评论
13年6个月前IP:未同步
545765
25楼
是的现在的安全算法确实没有绝对安全的,但是我们可以增加别人的破解难度.可以用混淆以及加密处理.而壳只是一道墙, 阻断性高, 一旦被脱开就完全暴露
混淆是防逆向的, 阻断性中, 泄露的代码随着研究才会多,墙是硬防的, 等于防盗门一样, 混淆是里面的各种乱,不是可不可以解的问题, 是手动与自动的问题
破解关键是逆向流程, 手工分析是没法对付的,加密狗只是锁住一部分,只要源码在手调试,一样可以抽出来然后绕过, 因为太透明了。 所以现在的年代不是以前了, 破解讲究的是自动化,流程化。手工分析是绝对可以防的,,关键是防止自动化,,流程化。
引用
评论
13年6个月前IP:未同步
545766
26楼
有动态生成, 代码干扰, 混淆不在话下, 逆向短路, 重定向,还有网络, 后台参与计算, 再绝一点做硬封装最后即使被破解, 那只是一层壳而已, 真正的代码还在后面混淆.[s:227]
引用
评论
13年6个月前IP:未同步
545767
27楼
对付一般学生普通的算法就可以了,现在的大学生对逆向破解或者黑客有浓厚兴趣的,一般只需几个月就能培养出很熟了的逆向分析高手,当产品价值不大随便增加些破解难度即可,如果有一定产品价值,必须采用服务器在线验证的方式,利用目前的网络安全远超10年以前的环境做基础,很容易提升产品的安全等级
引用
评论
13年6个月前IP:未同步
545773
28楼
基于硬件就差不多了吧,我同学以前就这样做了很多了,这种东西没什么人有兴趣破解的…尤其是换个ip…人家会破解更会直接写…
引用
评论
13年6个月前IP:未同步
545787
29楼
TMD和VMP之流算是做得不错了,照样有人破[s:222]
混淆过程是自动化的,所以必然可以实现自动化的反向过程
最后还是道高一尺魔高一丈的循环>.<

或许直接ASM写源代码并且写得无比飘逸,才能对付那些自身编程水平不高的破解者
引用
评论
13年6个月前IP:未同步
545806
30楼
引用第23楼vcasm于2013-07-09 19:50发表的  :
简单的可行方案:采用标准的CS模式设计,服务器上保存每个用户的密码多次MD5运算的结果值,并保证给用的密码足够使用,这样即使服务器代码泄露也不会暴露原始密码。

理论的最安全方案,量子密码,理论上密码不可被拦截,再次基础上一次一密,确保安全,但是目前为止没有可行的民用应用方案



如果能在服务器网关上直接认证access list那就好了,如果还是单单靠客户端软件验证的话,不论加密解密多复杂,只要把
if (auth==true)
{
...
}
代码改成永真就能绕过去了
引用
评论
13年6个月前IP:未同步
545831
31楼
回 30楼(celeron533) 的帖子
一般加密强度要求高的都需要将核心算法放在远程,通过验证后远程计算再反馈
客户端简单判断这样的逻辑是最不安全的,现在硬件狗的方案也是编译的时候扣程序非热点代码移植入硬件解释执行


其实话题换回来,在咱们国内的环境安全的确是个问题,因为最安全的手段是法律保障,国内没这个环境
另外破解加密手段的成本只要高于编写产品本身就可以了,但是国内很多人不计成本喜欢搞破解,呵呵
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的