我的加密程序终于完成了!!

Terark-CTO-雷鹏
博客专家认证
2002-05-26 01:29:57

我的程序对别人的可执行程序进行加密保护,使得“一机一号”,并且具有强大的反跟踪功能,用了 CrptoAPI 进行签名、加密 !!爽爽爽爽!!

做的结果比预料的好的多,用了大量反跟踪,变形代码,可检测到几乎所有常见的跟踪软件,softice , wdr ,……

有检测 API 断点的功能,如果 Craker 在某 API 上设了断点,当调用该 API 时,我马上就提示这个 API 被设了端点,并结束程序 !!

变形能力使得几乎不可能跟踪,我没试过太多的 debugger ,最典型的是使 windasm 的跟踪功能不可用 !!

这些只是其中的一小部分,更厉害的还在后头 !!

...全文
217 80 打赏 收藏 转发到动态 举报
写回复
用AI写文章
80 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeaBirds 2002-06-13
  • 打赏
  • 举报
回复
up
verybigbug 2002-06-04
  • 打赏
  • 举报
回复
有问题吗?

通过OpenProcess就得到这种权限。根本就不用Debug。。。
知道FPE这种类似的游戏工具吧,就是通过OpenProcess和
ReadProcessMemory,WriteProcessMemory等函数实现的。
知道NT下的性能监视程序吧,它可以进行进程的优先度设定。
这些都必须通过OpenProcess得到权限的。

这些程序都不是Debug程序。
如果你能监视OpenProcess那么也应该能够监视ReadProcessMemory吧!
这样肯定有限制了。别的程序不能和该程序通讯,因为有可能通讯程序
利用了被你监视的函数。

不是只有Debug程序才能Dump内存的。真的。
Terark-CTO-雷鹏 2002-06-04
  • 打赏
  • 举报
回复
我非常高兴 , SoftProtector 下载次数突破 100 !!
Terark-CTO-雷鹏 2002-06-04
  • 打赏
  • 举报
回复
要简单的读写一个进程的内存当然很简单,然而,请看:

ReadProcessMemory copies the data in the specified address range from the address space of the specified process into the specified buffer of the current process. Any process that has a handle with PROCESS_VM_READ access can call the function. The process whose address space is read is typically, but not necessarily, being debugged.

The entire area to be read must be accessible. If it is not, the function fails as noted previously.

还是好好学习一下 Debugging Reference ,多谢 VeryBigBug ,您提出问题 ,俺解决问题 ,爱因斯坦说的好 :“发现问题比解决问题更重要 ,因为一个问题的解决也许只是一个数学上的技巧而已 ,而发现问题往往需要更敏锐的目光,还有——勇气 !!”

希望 VeryBigBug ,还有大家 ,继续提出问题 !!

让我们大家一起努力吧 !!
xf8zbf 2002-06-04
  • 打赏
  • 举报
回复
白马 既然非马,当然牛人一个了
surfl 2002-06-04
  • 打赏
  • 举报
回复
看看!
verybigbug 2002-06-04
  • 打赏
  • 举报
回复
谁说Dump要跟踪器的。。。。奇怪。。。。
ReadProcessMemory函数就可以了,根本就用不着调试器。
自己写一个Dump内存的程序真的很简单。。。

Terark-CTO-雷鹏 2002-06-04
  • 打赏
  • 举报
回复
谢谢 verybigbug ,我再认真的读一下 MSDN !!
继续讨论 !
woaiyajiaji 2002-06-03
  • 打赏
  • 举报
回复
o
wangtao301301 2002-06-03
  • 打赏
  • 举报
回复
给我一份好吗?我们公司的软件经常被人家破解,很头疼
wt301301@china.mail.com
superxiang2000 2002-06-03
  • 打赏
  • 举报
回复
给我发一份吧superxiang2000@163.com
lizmei001 2002-06-03
  • 打赏
  • 举报
回复
期待更清晰的思路和原码
Terark-CTO-雷鹏 2002-06-03
  • 打赏
  • 举报
回复
deadhorse(死马) :
我是“白马非马”(whinah-White Horse Is Not A Horse)
呵呵 !

要想到一个问题,如果软件本身和 Encrypt-Decrypt 结合起来,执行一个模块前先 Decrypt ,完后再 Encrypt ……
这样,我想这个软件的开发成本似乎太高?

我认为一个比较好的解决方案是,把软件保护作为编译器的一部分,这样开发者不需要关心软件保护的实现细节 。
然而仍有问题:标准化的保护,必有标准化的破解。——不同于数据加密,标准化的加密,标准化的解密,仍是不可破解。
shely 2002-06-03
  • 打赏
  • 举报
回复
给我一份吧,先谢过了!
yfl8322@yahoo.com.cn
孙亖 2002-06-03
  • 打赏
  • 举报
回复
真的那么牛吗????????????
deadhorse 2002-06-03
  • 打赏
  • 举报
回复
有那么多人真的破解吗?大多数情况是弄一分正版的然后dump出来。我觉得修复import表并不是难事,如果将程序边解密边工作,工作完再加密就无法简单的dump了,只是那必须和源程序结合。
Terark-CTO-雷鹏 2002-06-03
  • 打赏
  • 举报
回复
还有 ,加密算法库 , CryptoAPI 就差不多是最好的库了 !
还有 Crypto4.2 ——这个东西很全 !
Terark-CTO-雷鹏 2002-06-03
  • 打赏
  • 举报
回复

不是监控 Cracker 有没有 Dump ,而是监控 Cracker 有没有使用调试器跟踪——要 Dump 总要用跟踪器的吧 ?现在最流行的 ICEDump ,它一般结合 SoftICE 使用 ,ICEDump 我是可以检测出来的 !

我也已经说了很多次了 ,软件保护做不到“不可破解”,只能做到“难破解”!

还有下一个方案:
这个方法实施起来难度太高 !!就是——在 Merge 程序中把受保护软件(Client)的一些代码转移到壳程序所在的块 ,而在被转移的“那块代码”开始放一个 jmp 指令 ,跳转到转移的目标 ,那段代码执行完后 ,再跳回来 !这样, Craker 要脱壳 ,就必须把被转移的代码补回去 。

——其实这也只是增加了Cracker 破解的难度 ,而没有从根本上防止盗版 !
harry202 2002-06-03
  • 打赏
  • 举报
回复
你的程序是毕业设计吧?你查到的资料打个包发给我好不好?^_^
QQ:151586
verybigbug 2002-06-03
  • 打赏
  • 举报
回复
真的有能行吗?有一点问题。
通过对运行时程序的Dump得到IAT,根据IAT的值得到相应的Dll名和函数名,
重新建立Import Table 是不是就OK了?
关键是程序值不值得这么干。

如果不在程序中实现加密算法,而依靠外部加密壳的做法,是很容易破的。
根本就用不着Debug工具,直接Dump就实现了破解实在是没劲。。。。。
关键在于你对PE的了解程度。。。

加载更多回复(60)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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