|
发表于 2023-8-14 18:28:50
|
显示全部楼层
四川省巴中市
本帖最后由 尖叫 于 2023-8-14 18:32 编辑
首先在程序的内部指定位置用一堆“FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”的字节集代替机器码。
再用一个“EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE”字节集代替允许首次运行的截至时间。
程序启动后先取自身程序.exe的路径,载入字节集。
然后从指定位置取出机器码和允许首次运行的截至时间。
判断:如果有机器码,则判定机器码是否于本机机器码相符,如果相符,则允许运行,否则禁止运行。
如果无机器码:则判断允许首次运行的截至时间是否已经超过,如果没超过,则取本机机器码,写到本程序的机器码位置的字节集进行替换,机器码长度需要和是先预留的一致,如果已经超出了设定的时间,则禁止运行。
如何将修改了机器码的程序替换到替身?
写一个bat,先延迟2秒后覆盖替换程序。
程序自身执行该bat,然后结束自身进程。
另外下载连接做成api,后端程序生成下载连接之前,先修改字节集,将EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE字段替换为当前时间+3分钟。
也就是程序下载后3分钟内必须首次运行并写入本机机器码,否则将会失效,不允许再运行了。然后将修改后的程序生成url供客户下载。
这么做他下载的这个exe相当于独家定制了,只允许下载者运行,或者他下载了必须在3分钟内发给别人,超过时间了再拷贝和发给别人都用不了了。
|
|