zhaojun_guo 发表于 2017-2-8 13:04

[吾爱破解论坛]价值18万的工程设计软件破解之另类注册机

本帖最后由 zhaojun_guo 于 2017-2-17 13:40 编辑

[吾爱破解论坛]价值18万的工程设计软件的破解

       在破解这个软件之前我从来没有接触过软件破解。连OD、脱壳、爆破什么的都没听说过。破解这个软件总共花费了我整整三个月的时间,从2016年04号找到该软件,到2017年2月6号破解完成。从刚开始的学OD、看教程、看视频、查参考书,然后再到找各种重要函数原型、分析算法,再到最后跟设计者斗智斗勇的思想交锋。
破解过程中的各种心酸,各种纠结,各种难受说是说不清楚,中间有好几次都差点放弃。
      之所以要选择我破解这个软件,是因为在工程设计过程中需要出工程制图,我的整个设计软件体系中就缺少这么一款热控设计软件。因为公司规模较小,公司是不会花钱买这种东西的,而且这种软件售价也比较贵,单个软件授权是5万元,如果公司组建一个5人用的平台至少也需要20万。如果10个人已上就更高了了
       这个软件破解过程中有几个大坑,首先出现“授权正确”之后,并不代表软件破解成功。其次,如果你不能整出注册码,客户端软件就根本就启动不起来,就算爆破之后启动起来了,运行过程中也会出现很多次的内存访问错误,而且很可能出现软件异常中断。再有CAD的绘图功能也因没有正确授权而不能正常运行。对于CAD插件的破解没有找到合适的破解方法,所以现实要求必须完整的整出授权字符串。
       再说说,关于“吾爱破解论坛”上活动的事情吧。双11的时候注册的帐号,之所以注册帐号是因为我在搜索为题的时候发现很多连接都直接指向了这个论坛。因为群里经常有公告说不发表原创文章就可能被封号,所以就一直想整个原创文章发表,而且经常签到,避免不被封号。但是由于自己是新手,能原创的东西并不多,发表文章呢只能拿来主义粘贴上去。但是我觉得这样子没啥意思,对自己的能力提升没有帮助,随后就想等我把这个软件破解完了精心做一篇文章发表,争取被纳入论坛精华。
       鉴于这个软件涉及到厂家的只是产权,源文件就不往论坛里发了,但是我可以很负责的说,这个软件破解的精华都已经在下面的描述中给出来了。如果找到源文件按照我的方法可定是可以破解的。。。
   经过这次软件破解之后的感悟:习惯了失败之后,成功已不算是成功,失败也不再是失败。坚持就是胜利。。。

现在将我破解过程中的东西进行总结,以方便跟我有共同目标的人少走弯路,坚持自己的路。。。早日成功。

一、软件介绍







二、基础知识
    1.破解入门参考教程
      暴力逆向第一季 逆向分析技术          https://pan.baidu.com/share/link?shareid=715997097&uk=4198334880#list/path=%2F
      暴力科技第二季 OD全面精通 (我认为最好的OD入门教程)   https://pan.baidu.com/s/1i3w12RV#list/path=%2F
      吾爱技术吧vip全套破解教程(118课)      https://pan.baidu.com/s/1c2s57w#list/path=%2F
       还有小甲鱼系列脱壳篇与调试篇 天草系列教程
   2.使用到的软件
         吾爱破解专用版Ollydbg            PEiD 0.95          IDR (Interactive Delphi Reconstructor)       IDA Pro v6.6         AspackDie      

   3.参考书籍
   揭秘数据解密的关键技术-刘颖东(这本书强烈推荐)      https://pan.baidu.com/share/link?shareid=3441447906&uk=4198334880&fid=737029704242803
   加密与解密(第三版)      https://pan.baidu.com/share/link?shareid=725226255&uk=674033726&fid=619796960341408

    4.破解常用网址
       吾爱破解论坛            强烈推荐   http://www.52pojie.cn/
       Delphi库文件(delphi破解必须要有的函数库)   http://delphi.ktop.com.tw/download/upload/00019969_Classes.pas
       TSL内置对象使用大全       http://www.tinysoft.com.cn/tsdn/helpdoc/display.tsl?id=1519
       Delphi反汇编内部字符串处理函数/过程列表      http://www.th7.cn/Program/delphi/201407/251050.shtml

三、破解记录

      1. 软件安装
         软件安装之后共有两个主要运行文件,如图所示。
    2.查壳脱壳
          1)、用PEiD 0.95查壳                       两个软件均为ASPack2.12压缩壳
         2)用AspackDie脱壳之后判断软件的变成语言,均为delphi

      3.找出服务器Server软件关键CALL          用IDR反编译Server软件后,单击下图方框中内的选项,进入到关键CALL
fServer::TfrmServer.LicBtnClick
00734C5C push ebp
00734C5D mov ebp,esp
00734C5F mov ecx,5
00734C64 push 0
00734C66 push 0
00734C68 dec ecx
<00734C69 jne 00734C64
00734C6B push ecx
00734C6C push ebx
00734C6D push esi
00734C6E mov ebx,eax
00734C70 xor eax,eax
00734C72 push ebp
00734C73 push 734E76
00734C78 push dword ptr fs:
00734C7B mov dword ptr fs:,esp
00734C7E lea edx,
00734C81 mov eax,dword ptr ;
00734C87 call TCustomMaskEdit.GetText
00734C8C mov eax,dword ptr
00734C8F call FileExists //判断授权文件是否存在
00734C94 test al,al
>00734C96 jne 00734CAE //al不为0则授权文件存在
00734C98 mov ecx,734E8C; '授权文件不存在!'
00734C9D mov dl,1
00734C9F mov eax,; Exception
00734CA4 call EOutOfResources.Create; Exception.Create
00734CA9 call @RaiseExcept
00734CAE xor eax,eax
00734CB0 push ebp
00734CB1 push 734E1F
00734CB6 push dword ptr fs:
00734CB9 mov dword ptr fs:,esp
00734CBC mov dl,1
00734CBE mov eax,; TStringList
00734CC3 call TdxInplaceTextEdit.Create; TStringList.Create
00734CC8 mov dword ptr ,eax
00734CCB lea edx,
00734CCE mov eax,dword ptr ; TfrmServer.LicenseEdit:TComboEdit
00734CD4 call TCustomMaskEdit.GetText
00734CD9 mov edx,dword ptr
00734CDC mov eax,dword ptr
00734CDF mov ecx,dword ptr
00734CE1 call dword ptr ; TStrings.LoadFromFile
00734CE4 lea ecx,
00734CE7 xor edx,edx
00734CE9 mov eax,dword ptr
00734CEC mov esi,dword ptr
00734CEE call dword ptr ; TStringList.Get
00734CF1 cmp dword ptr ,0
>00734CF5 je 00734E09
00734CFB lea ecx, //这个地方存放
00734CFE mov edx,734EA4;
'kjjuoiu987*(&*(uuiyui*&^*789897UIOUI&*^*&^&*Tuytu'
00734D03 mov eax,dword ptr //这个地方存放授权字符串
00734D06 call 0070DDC0 //这个是主要解密函数
00734D0B mov edx,dword ptr //解密后的字符串
00734D0E mov eax,dword ptr
00734D11 mov ecx,dword ptr
00734D13 call dword ptr ; //这个是看似没多大作用但非常重要的函数
00734D16 mov edx,734EE0; 'MacAddress'
00734D1B mov eax,dword ptr
00734D1E mov ecx,dword ptr
00734D20 call dword ptr ; TStrings.IndexOfName
00734D23 inc eax //定位到MacAddress之后返回位置数值
>00734D24 je 00734DFF //也就是说eax的返回值不能为-1
00734D2A lea eax,
00734D2D mov edx,dword ptr
00734D30 call @WStrFromLStr
00734D35 mov eax,dword ptr
00734D38 push eax
00734D39 mov eax,dword ptr ; TfrmServer.util:Tutil
00734D3F xor ecx,ecx
00734D41 mov edx,734EF0
00734D46 call 004DF858 //向注册表值写值
00734D4B lea eax,
00734D4E push eax
00734D4F mov eax,dword ptr ; TfrmServer.util:Tutil
00734D55 xor ecx,ecx
00734D57 mov edx,734F34
00734D5C call 004DF8C8 //读取注册表值
00734D61 mov eax,dword ptr
00734D64 xor edx,edx
00734D66 call @WStrCmp //\Software\Classes\VBS AUTHOR\OLEScript这个注册表的值是否为空,值不为零提示软件已经注册,不能再注册,如果为0才可以注册。
>00734D6B jne 00734DF3
00734D71 call 007310F4 //判断一个文件是否存在,这个不用分析
00734D76 test al,al
>00734D78 jne 00734DB4 //这个跳转应该让它实现才对
00734D7A lea ecx,
00734D7D mov edx,734F8C;
')(*979798LJOJLJOIU&*(876876YGUGJGJGHIYI(*&*(^&*678678)(*)(IO'
00734D82 mov eax,734FD4; '0'
00734D87 call 0070DC94
00734D8C mov edx,dword ptr
00734D8F lea eax,
00734D92 call @WStrFromLStr
00734D97 mov eax,dword ptr
00734D9A push eax
00734D9B mov eax,dword ptr ; TfrmServer.util:Tutil
00734DA1 xor ecx,ecx
00734DA3 mov edx,734F34
00734DA8 call 004DF858
00734DAD call 0073102C
>00734DB2 jmp 00734DE7
00734DB4 mov edx,734F8C;
')(*979798LJOJLJOIU&*(876876YGUGJGJGHIYI(*&*(^&*678678)(*)(IO'
00734DB9 lea ecx,
00734DBC mov eax,734FE0; '9999'
00734DC1 call 0070DC94 //这个是主要加密函数,非常重要。在此处事件999加密
00734DC6 mov edx,dword ptr
00734DC9 lea eax,
00734DCC call @WStrFromLStr
00734DD1 mov eax,dword ptr
00734DD4 push eax
00734DD5 mov eax,dword ptr ; TfrmServer.util:Tutil
00734DDB xor ecx,ecx
00734DDD mov edx,734F34
00734DE2 call 004DF858 //将999加密过之后写入注册表
00734DE7 mov eax,734FF0; '授权成功!'
00734DEC call 006AC330
>00734DF1 jmp 00734E09
00734DF3 mov eax,735004; '已有授权,不能再次授权!'
00734DF8 call 006AC330
>00734DFD jmp 00734E09
00734DFF mov eax,735024; '非法授权!'
00734E04 call 006AC2C8
00734E09 xor eax,eax
00734E0B pop edx
00734E0C pop ecx
00734E0D pop ecx

      4.客户端软件关键CALL         鉴于这个CALL太长且功能比较简单,暂不列出代码。具体分析见第四部分

四、软件的破解核心

       下面的图是我对整个软件仔细分析之后画出的注册框图,也是破解的核心。理解下列之后再通过代码定位就可以很容易分析出自己的破解方法
注:上图中的0是经过服务器软件检测授权文件之后发送的授权正确的代码。      

       经过半个月的破文全细节破解展示,现将软件破解细节进行删减(请见谅,如有异议敬请回复或留言)

      至此软件破解工作结束

说明


      经过半个月的破文全细节破解展示,鉴于本篇破文与精华贴无缘,再者本软件涉及到版权,为了避免被起诉的风险,和报着不随意践踏别人劳动成果的信念,现将文件关键处的破解部分进行删减和隐藏。仅以我的破解经历为主要内容来勉励大家继续坚持自己的初衷,努力的走下去。。。
如果有人已经获得了该软件并想破解的话,请及时给我联系沟通具体的破解方法和细节。。。留言和私心都可以。。。
谢谢大家的支持

枫MapleLCG 发表于 2017-2-8 13:42

感觉自己赚了18W
从文章叙述中得知LZ真的很辛哭呢OVO
而且对一件想完成的事十分的执着,精神可嘉!这是许多人都没有的品质。
然后美中不足的就是这标题...还不如直接给我18W呢- -
分享的是技术,而不是那有的无的。

以上纯属仿Peace口吻,不要打我,呜呜哒~

zhaojun_guo 发表于 2017-2-10 09:07

Hmily 发表于 2017-2-9 17:22
加油,这个文章写的很用心,技术含量不是特别高,从程序看是明码比较的一个注册,通过内存注册机应该就可以 ...

好吧   既然版主这么说了也就无缘精华了虽然这是明码比较软件但是作者采用了很多技术障碍比如说注册表传输密文三组明码字符串交替传输密文IdTcpServer/IdTcpClient通信加密等技术因为时间有限没有全部写出 只是通过最简单直接方式呈现给大家 勉励大家继续坚持自己所坚持的    其实技术只是一层窗户纸不知道金不换知道了净扯淡

a3512740 发表于 2017-2-9 16:47

我是来赚钱的哈哈



楼主精神可嘉   支持下

zhaojun_guo 发表于 2018-7-23 20:47

mkmodern 发表于 2018-7-22 19:24
有毅力坚持下去!

坚持就是胜利

zhaojun_guo 发表于 2017-3-22 15:00

萌萌哒新人 发表于 2017-3-22 13:02
楼主 能够把第一个教材的解压码发我邮箱吗?谢谢了十分感谢

已经发送到你的邮箱请查收如果觉得可以请帮忙评热心值哦

qichen 发表于 2017-2-8 13:16

如此专业性的软件,发表出来不知合不合适,大牛们勿喷,只是个人看法

a87284415 发表于 2017-2-8 13:08

可以的。

君如兰 发表于 2017-2-8 13:12

这么坚持 真的厉害了

BananaProject 发表于 2017-2-8 13:12

不明觉厉,我是不是赚了18万?

小神龙001 发表于 2017-2-8 13:15

6666,有毅力。支持下

ghvmy12 发表于 2017-2-8 13:15

支持一下

liuxinming67 发表于 2017-2-8 13:16

没有看到破解版本的下载地址

yibai 发表于 2017-2-8 13:16

虽然看不懂,但是楼主的精神可嘉

酒醒黄昏 发表于 2017-2-8 13:17

楼主大牛膜拜一下
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: [吾爱破解论坛]价值18万的工程设计软件破解之另类注册机