向高手 ly_liuyang(Liu Yang) 挑战!

WGYKING 2004-11-06 08:42:14
回复人: ly_liuyang(Liu Yang) ( ) 信誉:215 2004-10-16 22:17:37

上面的所谓EXE加密不可靠的

好的方法就是写PE Shell,就是写PE的壳,100% ASM代码就能OK
修改OEP指向你的Entry Point,新建Import Table
壳中处理旧的Import Table然后JMP到OEP就OK了

具体方法是商业秘密哦:)呵呵我就为一家加密狗公司开发了这样的加壳程序:)

http://lysoft.7u7.net





回复人:ly_liuyang(Liu Yang) () 信誉:215 2004-10-23 12:53:36

其实没个可靠的

API Hook轻易欺骗HDD的ID,Hook DeviceIOCOntrol就可以

CPUID?同一个系列的一样

MAC?Windows自己就可以随意设置

我用什么?无奈!只能是软件狗,你要破解?最少都要买我一个狗才有机会

http://lysoft.7u7.net



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
请提供一个加密后的软件来测试一下
看看是否能达到你所认为的可靠加密

呵呵
我知道你水平超强
但是开源的技术较少
之所以发这个帖子
是吸引你进来
主要的目的还是交流切磋
并不是真的挑战
请见谅

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
还有
昨天我发了一个主题为‘P2P之UDP穿透NAT(SOCKS5)的Indy实现(源码公布)’的帖子
您的回复好像不以为然
其实你不用见怪
我本身是个菜鸟
之所以有这个主题的贴子
我说得很清楚
技术上很简单
只是D的源码很少
或开源的INDY实现几乎没有
我倒是希望有你这样的高手来参与讨论和指点
而不是觉得没什么
...全文
433 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
WGYKING 2004-11-07
  • 打赏
  • 举报
回复
呵呵
结贴
谢谢ksaiy(消失在人海-喜欢昆明的花)!
谢谢ly_liuyang(Liu Yang)
谢谢各位参与的朋友

知道了一种新的加密算法 ^_^
ksaiy 2004-11-07
  • 打赏
  • 举报
回复
还有如果可以取到一个唯一的系列号也是可以的,你拷贝也是没有用。
ksaiy 2004-11-07
  • 打赏
  • 举报
回复
呵呵,我上面给的方法是搭配在线注册使用的,我在线给你一个号,然后进行注册,如果当前已经有软件连接,那么在数据中做一个标志,软件退出的时候又把连接取消。这样当前就只有一个软件能用,你拷贝是没有用的。
ly_liuyang 2004-11-06
  • 打赏
  • 举报
回复
上面的方法
我早就考虑过了
当然是很好
但现在的问题是:
只要有一个正版就可以复制N个盗版,这才是难的地方

就与Windows一样,一个SN,数不清的人在用呀

一个正确的注册号,你的软件能用吧?OK,Dump你,这样就搞定了
就象软件狗保护一样,没狗几乎没法解,可有了一个,Dump,Crack就死翘翘了

http://lysoft.7u7.net
ksaiy 2004-11-06
  • 打赏
  • 举报
回复
其实要想加密可靠也未必需要用到狗,毕竟现在的大部分的狗有破解。

用软件完全可以实现,那些保护我就不说了,现在可以说一个最近在研究的:

那就是代码与数据结合技术:

一般程序的代码和数据都是分开的,现在我们可以将系列号与程序代码结合在一起,在未知注册码的正确情况下以目前的技术是不能破解的。

原理:
用系列号或其散列值对程序的关键代码(比如关键的CALL)或者数据进行加密(要手动进行加密),程序在运行的时候根据你的注册码来对关键的CALL进行解密才可以继续运行你的软件,即使是破解者通过修改你加密的这个关键CALL可以得到一个看似注册的版本,但是不正确的注册码解密出来的加密部分代码都是乱码,根本没有用处,在这里面用到了SEH技术。

给个例子吧:

.............//其它代码
startdecrypt: //需要进行加密的代码的起始位置;
if ShlStr(SN)=ShlStr(UN) then
ShowMessage('注册成功!')
else
ShowMessage(注册失败!);
enddecrypt://结束位置;
.....................//其它代码
加密的时候就是对这段有标签的代码进行加密。

解密的时候如果注册码不正确的话就出现乱码,就会触发异常,这样我们就可以用SEH技术来告诉用户注册失败的信息。

在加密代码的时候可以选择HASH算法,比如MD5、SHA等。

怎么使用呢?
在开发的时候给程序加上一个开始标签和结束标签,然后用16进制工具打开,找到开始标签和结束标签地址,然后自己写一个加密用的小工具,把开始地址和结束地址写进去,把这部分代码加密。
cnhgj 2004-11-06
  • 打赏
  • 举报
回复
看热闹。      //服务生!!一杯果汁二盘干果!!~~~~~
  • 打赏
  • 举报
回复
看热闹。      //服务生!!一杯果汁二盘干果!!~~~~~

^^
zdq801104 2004-11-06
  • 打赏
  • 举报
回复
看看热闹
goodloop 2004-11-06
  • 打赏
  • 举报
回复
看热闹..好多jr
jinjazz 2004-11-06
  • 打赏
  • 举报
回复
男主角出场了
ly_liuyang 2004-11-06
  • 打赏
  • 举报
回复

强呀,哈哈

有挑战才有进步!
对于这样的技术挑战,我很欢迎的:)


PE加壳软件,UPX等都是开源的,但Delphi版的恐怕就没了吧??
我自己花了两周的时间开发的PEShell是受东莞域天科技委托的,总不能公开它的Source吧?所以才说是商业秘密

另外我所开发的PEShell这只是一个最基本的PE壳,完全没什么加密等保护的,这些工作都交由域天科技自己开发了

PE加壳确实没有一个是绝对可靠的,那个软件用了PE加壳就能避免破解??没有吧?
所以我的PEShell一样很容易搞定的


至于使用HDD的ID作为保护的,用API Hook技术截获DeviceIOControl,就可以欺骗软件,冒牌实现注册,就是有一个可用SN就任何人都可以用了,这个最常见就是EXE Loader破解方法


防止API Hook?检查Dubugger?绝对不可能在OEP上做到吧?因此一样可以先搞定你的保护防线,再破解软件(LYSoft提供Import Table的Hook方法)


另外API Hook还能搞定大部分时间限制的软件,Hook了,GetLocalTime就能搞定
如果你发现有不少软件用Loader破解的,那么Loader将可能做:API Hook,Memory Patch等实现软件欺骗


Socks5的UDP我就没有去做,Socks5的TCP就做了,LYSoft软件的LYProxy就是100%自己写协议支持的,用了N日时间,看RFC协议才搞定,而且RFC协议有个Bug,就是现在协议有一点变化,100% 按照Sock5的RFC文档写的程序不能正常工作的


想加密可靠就用软件狗吧,这样确实是安全很多的,一般破解带狗的软件都需要有原狗才好办,否则真的很头疼的;最高加密级别的是32位CPU微狗,你做的软件核心在微狗的CPU上运行,想破解真是难了,但加密成本很高,一个32位300Mhz的微狗,价格过千,开发难度也大,微狗中有专门的开发工具,看了都头大的,移植以前开发的软件更是没什么希望,几乎要重写核心,所以难以推广,而一般的微狗都是16位的,能做的事情有限,但都比普通的狗要好的

http://lysoft.7u7.net
menggirl 2004-11-06
  • 打赏
  • 举报
回复
胡说八道,J8我成了JR的翻译了
Eastunfail 2004-11-06
  • 打赏
  • 举报
回复
HSBD是什么意思啊?你上次说过的,不记得了,呵呵,哈是笨蛋?Husbend?
FrameSniper 2004-11-06
  • 打赏
  • 举报
回复
商业机密是HSBD,LY蒙你的。
了解PE结构是前提,不过我不懂,所以听课.....
ihihonline 2004-11-06
  • 打赏
  • 举报
回复
无聊的东西。
wxjh 2004-11-06
  • 打赏
  • 举报
回复
技术第二,钱对我才是最重要的!!
jinjazz 2004-11-06
  • 打赏
  • 举报
回复
观望
halfdream 2004-11-06
  • 打赏
  • 举报
回复
俺不会的东西,一向是泡茶观望的...

xzhifei 2004-11-06
  • 打赏
  • 举报
回复
什么东西
WGYKING 2004-11-06
  • 打赏
  • 举报
回复
出现了很多高手啊~~
加载更多回复(16)

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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