吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 2361|回复: 15

[原创逆向图文] 某仓库管理软件最新版本另类爆破

[复制链接]
57907103 发表于 2018-10-22 22:04 | 显示全部楼层 |阅读模式

本帖最后由 57907103 于 2018-10-23 22:01 编辑

说明:通过下面的分析很容易找到内存中的注册码,但是用这个注册码注册后当单据大于200张时启动后任然会弹出未注册窗口,将未注册窗口强制跳过后打印单据时任然会在单据上显示试用版请注册字样。不知道这个注册码的设置是作者的一个陷阱还是其他什么意思。经过多处代码综合分析可通过改一处代码进行爆破,但是这种改法应该不是软件正常注册后所走的流程,哪位同学能按照正常的注册流程完成逆向欢迎补充。

首先OD载入运行程序,智能搜索查找可用字符串,将试用、未注册字样的全部下段,然后在各断点处查看上下代码进行分析,如下:

字符串断点

字符串断点







0072A8E1      C680 6E050000>mov byte ptr ds:[eax+0x56D],0x1          ;  \\关键点,nop掉即为注册码方式爆破,将56D改为56E即为加密狗方式爆破

改这里后会影响下面的3处,实现注册成功。
-----------------------------------------------------------------------------------------------------------------------------
第1处:
0074498B  |.  80B8 6E050000>cmp byte ptr ds:[eax+0x56E],0x0
00744992  |.  75 20         jnz short SQLDepot.007449B4                          ;  \\加密狗方式的登录注册验证
00744994  |.  A1 645F7500   mov eax,dword ptr ds:[0x755F64]
00744999  |.  8B00          mov eax,dword ptr ds:[eax]                           ;  SQLDepot.007291F8
0074499B  |.  80B8 6D050000>cmp byte ptr ds:[eax+0x56D],0x1
007449A2  |.  75 10         jnz short SQLDepot.007449B4                          ;  \\注册码方式的登录注册验证



第2处:
00747F60  |. /0F85 FA000000 jnz SQLDepot.00748060                    ;  //加密狗方式的入库单打印注册验证
00747F66  |. |A1 645F7500   mov eax,dword ptr ds:[0x755F64]
00747F6B  |. |8B00          mov eax,dword ptr ds:[eax]
00747F6D  |. |80B8 6D050000>cmp byte ptr ds:[eax+0x56D],0x1
00747F74  |. |0F85 E6000000 jnz SQLDepot.00748060                    ;  //注册码方式的入库单打印注册验证
00747F7A  |. |BA 00887400   mov edx,SQLDepot.00748800                ;  mmoTry
00747F7F  |. |8BC3          mov eax,ebx
00747F81  |. |E8 36E5F0FF   call SQLDepot.006564BC
00747F86  |. |85C0          test eax,eax
00747F88  |. |0F85 B6000000 jnz SQLDepot.00748044                    ;  //
ds:[01927812]=00
ds:[01927811]=01

第3处:
00748396  |. /0F85 FA000000 jnz SQLDepot.00748496                    ;  \\加密狗方式的出库单打印注册验证
0074839C  |. |A1 645F7500   mov eax,dword ptr ds:[0x755F64]
007483A1  |. |8B00          mov eax,dword ptr ds:[eax]
007483A3  |. |80B8 6D050000>cmp byte ptr ds:[eax+0x56D],0x1
007483AA  |. |0F85 E6000000 jnz SQLDepot.00748496                    ;  \\注册码方式的出库单打印注册验证
007483B0  |. |BA 00887400   mov edx,SQLDepot.00748800                ;  mmoTry
007483B5  |. |8BC6          mov eax,esi
007483B7  |. |E8 00E1F0FF   call SQLDepot.006564BC
007483BC  |. |85C0          test eax,eax
007483BE  |. |0F85 B6000000 jnz SQLDepot.0074847A                    ;  \\





==============================================================================================
注册码逆向:(不完美,任然会在打印单据时提示试用版需要注册字样)


0072A91A   .  E8 C9A5CDFF   call SQLDepot.00404EE8                   ;  \\关键call,真假犸对比,出现真假码,可用内存注册机
0072A91F   .  75 72         jnz short SQLDepot.0072A993              ;  \\注册码注册成功后不跳与200张比较,未成功跳去与50张比较
0072A921   .  A1 185F7500   mov eax,dword ptr ds:[0x755F18]
0072A926   .  8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A928   .  C680 6C070000>mov byte ptr ds:[eax+0x76C],0x0
0072A92F   .  81FB C8000000 cmp ebx,0xC8                             ;  \\EBX存的是单据的张数,大于200就跳向试用版提示
0072A935   .  7D 0C         jge short SQLDepot.0072A943              ;  1
0072A937   .  81FE E8030000 cmp esi,0x3E8                            ;  \\ESI存的是使用次数,大于1000就不跳,后面再次比较可能提示试用版
0072A93D   .  0F8C 81000000 jl SQLDepot.0072A9C4
0072A943   >  8B45 FC       mov eax,dword ptr ss:[ebp-0x4]
0072A946   .  80B8 6D050000>cmp byte ptr ds:[eax+0x56D],0x0
0072A94D   .  75 10         jnz short SQLDepot.0072A95F              ;  1
0072A94F   .  A1 185F7500   mov eax,dword ptr ds:[0x755F18]
0072A954   .  8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A956   .  C680 6C070000>mov byte ptr ds:[eax+0x76C],0x0
0072A95D   .  EB 65         jmp short SQLDepot.0072A9C4
0072A95F   >  A1 185F7500   mov eax,dword ptr ds:[0x755F18]
0072A964   .  8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A966   .  C680 6C070000>mov byte ptr ds:[eax+0x76C],0x1
0072A96D   .  A1 185F7500   mov eax,dword ptr ds:[0x755F18]
0072A972   .  8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A974   .  33D2          xor edx,edx
0072A976   .  8990 68070000 mov dword ptr ds:[eax+0x768],edx
0072A97C   .  6A 00         push 0x0
0072A97E   .  66:8B0D E4B17>mov cx,word ptr ds:[0x72B1E4]
0072A985   .  B2 03         mov dl,0x3
0072A987   .  B8 F0B17200   mov eax,SQLDepot.0072B1F0                ;  您使用的是试用版,请联系里诺软件购买正式版本!
0072A98C   .  E8 2B41D1FF   call SQLDepot.0043EABC
0072A991   .  EB 31         jmp short SQLDepot.0072A9C4
0072A993   >  83FB 32       cmp ebx,0x32                             ;  \\EBX存的是单据的张数,大于50就跳向未注册提示
0072A996   .  7D 08         jge short SQLDepot.0072A9A0
0072A998   .  81FE E8030000 cmp esi,0x3E8
0072A99E   .  7C 24         jl short SQLDepot.0072A9C4               ;  \\ESI存的是使用次数,大于1000就不跳提示未注册
0072A9A0   >  A1 185F7500   mov eax,dword ptr ds:[0x755F18]
0072A9A5   .  8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A9A7   .  33D2          xor edx,edx
0072A9A9   .  8990 68070000 mov dword ptr ds:[eax+0x768],edx
0072A9AF   .  6A 00         push 0x0
0072A9B1   .  66:8B0D E4B17>mov cx,word ptr ds:[0x72B1E4]
0072A9B8   .  B2 03         mov dl,0x3
0072A9BA   .  B8 28B27200   mov eax,SQLDepot.0072B228                ;  程序未注册,数据超过限制,您需要注册才能继续使用本软件!
0072A9BF   .  E8 F840D1FF   call SQLDepot.0043EABC
0072A9C4   >  8D95 58FBFFFF lea edx,dword ptr ss:[ebp-0x4A8]


===================================================================
加密狗逆向:(不完美,任然会在打印单据时提示试用版需要注册字样)

0072A583   . /0F84 B4010000 je SQLDepot.0072A73D                     ;  \\判断验证方式是注册码验证还是加密狗验证,跳就注册码,不跳就加密狗
0072A589   . |A1 185F7500   mov eax,dword ptr ds:[0x755F18]
0072A58E   . |8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A590   . |C780 68070000>mov dword ptr ds:[eax+0x768],0x1
0072A59A   . |8B45 FC       mov eax,dword ptr ss:[ebp-0x4]
0072A59D   . |C680 6E050000>mov byte ptr ds:[eax+0x56E],0x1
0072A5A4   . |8D45 C4       lea eax,dword ptr ss:[ebp-0x3C]
0072A5A7   . |BA B8AF7200   mov edx,SQLDepot.0072AFB8                ;  lenojiamidog_888
0072A5AC   . |E8 B3A5CDFF   call SQLDepot.00404B64
0072A5B1   . |8B45 C4       mov eax,dword ptr ss:[ebp-0x3C]
0072A5B4   . |E8 E3A9CDFF   call SQLDepot.00404F9C
0072A5B9   . |50            push eax
0072A5BA   . |E8 1599FCFF   call <jmp.&NT77.NTFindFirst>
0072A5BF   . |8BD8          mov ebx,eax
0072A5C1   . |85DB          test ebx,ebx
0072A5C3   . |74 36         je short SQLDepot.0072A5FB               ;  \\必须跳1
0072A5C5   . |6A 20         push 0x20
0072A5C7   . |B9 CCAF7200   mov ecx,SQLDepot.0072AFCC                ;  提示
0072A5CC   . |BA D4AF7200   mov edx,SQLDepot.0072AFD4                ;  没有找到可用的加密狗设备, 您录入的数据大于软件规定条数, 如果您觉得软件对您的管理有帮助, 请您购买我们的正式版本, 谢谢支持!
0072A5D1   . |A1 A0627500   mov eax,dword ptr ds:[0x7562A0]
0072A5D6   . |8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A5D8   . |E8 E36BD8FF   call SQLDepot.004B11C0
0072A5DD   . |8B45 FC       mov eax,dword ptr ss:[ebp-0x4]
0072A5E0   . |05 64050000   add eax,0x564
0072A5E5   . |BA 58B07200   mov edx,SQLDepot.0072B058                ;  no dog
0072A5EA   . |E8 31A5CDFF   call SQLDepot.00404B20
0072A5EF   . |A1 A0627500   mov eax,dword ptr ds:[0x7562A0]
0072A5F4   . |8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A5F6   . |E8 216BD8FF   call SQLDepot.004B111C
0072A5FB   > |8D85 9EFBFFFF lea eax,dword ptr ss:[ebp-0x462]
0072A601   . |50            push eax
0072A602   . |E8 DD98FCFF   call <jmp.&NT77.NTGetHardwareID>
0072A607   . |8BD8          mov ebx,eax
0072A609   . |85DB          test ebx,ebx
0072A60B   . |74 24         je short SQLDepot.0072A631               ;  \\必须跳2
0072A60D   . |6A 20         push 0x20
0072A60F   . |B9 CCAF7200   mov ecx,SQLDepot.0072AFCC                ;  提示
0072A614   . |BA 60B07200   mov edx,SQLDepot.0072B060                ;  获取加密狗序列号失败!
0072A619   . |A1 A0627500   mov eax,dword ptr ds:[0x7562A0]
0072A61E   . |8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A620   . |E8 9B6BD8FF   call SQLDepot.004B11C0
0072A625   . |A1 A0627500   mov eax,dword ptr ds:[0x7562A0]
0072A62A   . |8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A62C   . |E8 EB6AD8FF   call SQLDepot.004B111C
0072A631   > |8D45 C0       lea eax,dword ptr ss:[ebp-0x40]
0072A634   . |BA 80B07200   mov edx,SQLDepot.0072B080                ;  ef0a066ed005308ce8e2dcef7fea816f
0072A639   . |E8 26A5CDFF   call SQLDepot.00404B64
0072A63E   . |8B45 C0       mov eax,dword ptr ss:[ebp-0x40]
0072A641   . |E8 56A9CDFF   call SQLDepot.00404F9C
0072A646   . |50            push eax
0072A647   . |E8 9098FCFF   call <jmp.&NT77.NTLogin>
0072A64C   . |8BD8          mov ebx,eax
0072A64E   . |85DB          test ebx,ebx
0072A650   . |74 24         je short SQLDepot.0072A676               ;  \\必须跳3
0072A652   . |6A 20         push 0x20
0072A654   . |B9 CCAF7200   mov ecx,SQLDepot.0072AFCC                ;  提示
0072A659   . |BA A4B07200   mov edx,SQLDepot.0072B0A4                ;  加密狗设备有问题,请您插入正确的加密狗!
0072A65E   . |A1 A0627500   mov eax,dword ptr ds:[0x7562A0]
0072A663   . |8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A665   . |E8 566BD8FF   call SQLDepot.004B11C0
0072A66A   . |A1 A0627500   mov eax,dword ptr ds:[0x7562A0]
0072A66F   . |8B00          mov eax,dword ptr ds:[eax]               ;  SQLDepot.0073EB68
0072A671   . |E8 A66AD8FF   call SQLDepot.004B111C
0072A676   > |B8 20000000   mov eax,0x20
0072A67B   . |BA 38000000   mov edx,0x38
0072A680   . |8D8D BFFBFFFF lea ecx,dword ptr ss:[ebp-0x441]
0072A686   . |51            push ecx
0072A687   . |52            push edx
0072A688   . |50            push eax
0072A689   . |E8 5E98FCFF   call <jmp.&NT77.NTRead>
0072A68E   . |8BD8          mov ebx,eax
0072A690   . |85DB          test ebx,ebx
0072A692   . |75 55         jnz short SQLDepot.0072A6E9              ;  \\不能跳4
0072A694   . |8D85 78FBFFFF lea eax,dword ptr ss:[ebp-0x488]
0072A69A   . |8D95 BFFBFFFF lea edx,dword ptr ss:[ebp-0x441]
0072A6A0   . |B9 01040000   mov ecx,0x401
0072A6A5   . |E8 A2A6CDFF   call SQLDepot.00404D4C
0072A6AA   . |8B85 78FBFFFF mov eax,dword ptr ss:[ebp-0x488]
0072A6B0   . |BA D8B07200   mov edx,SQLDepot.0072B0D8                ;  fzsale_321_jiami
0072A6B5   . |E8 2EA8CDFF   call SQLDepot.00404EE8                   ;  \\关键call
0072A6BA   . |0F84 04030000 je SQLDepot.0072A9C4                     ;  \\必须跳,加密狗关键跳
0072A6C0   . |6A 20         push 0x20
0072A6C2   . |B9 CCAF7200   mov ecx,SQLDepot.0072AFCC                ;  提示
0072A6C7   . |BA ECB07200   mov edx,SQLDepot.0072B0EC                ;  加密狗验证出错,请您购买正确的加密狗!


NT77.DLL文件逆向,会影响上面的对应4个跳转,可直接改上面的跳转,也可以改此DLL文件后自动影响上面4个跳转
10001074   NT77       已禁止                        jmp short NT77.10001081               \\必须跳1
100010E0   NT77       已禁止                        jmp short NT77.100010F0               \\必须跳3
1000111F   NT77       已禁止                        jmp short NT77.10001129               \\必须跳4
10001176   NT77       已禁止                        jmp short NT77.10001180               \\必须跳2



===============================================================================


评分

参与人数 10威望 +1 HB +33 THX +7 收起 理由
情绪控 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
霍华德 + 1
temp + 1 + 1
消逝的过去 + 1
慕枫二二 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
liugu0hai + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
lies + 1
zxjzzh + 5 + 1 [快捷评语] - 2018,狗年发发发,狗年旺旺旺!
syzh802618 + 3 + 1 [快捷评语] - 2018,狗年发发发,狗年旺旺旺!
Shark恒 + 1 + 20 + 1 [快捷评语] - 评分=感恩!简单却充满爱!感谢您的作品!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 57907103 发表于 2018-10-22 22:20 | 显示全部楼层

发完贴才看到有人发了个单机版6.22的追码贴,我这个是V6.65网络版的,但这个作者的软件应该都一样的,注册码是假的,通过注册码逆向是伪逆向
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
TAOGE5387 发表于 2018-10-23 07:18 | 显示全部楼层


四年弹指一挥间,匆匆往事如云烟。
流水落花思有意,今朝旧梦换新颜!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
493688702 发表于 2018-10-23 07:19 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
syzh802618 发表于 2018-10-23 08:26 | 显示全部楼层

感谢楼主分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Carl_87 发表于 2018-11-12 15:22 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
拿着雪糕 发表于 2022-2-10 22:13 | 显示全部楼层

十分感谢大佬
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-5-5 02:32 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
别来无恙 发表于 2022-5-28 10:41 | 显示全部楼层

感谢分享逆向思路,学习了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zg2600 发表于 2022-5-31 08:30 | 显示全部楼层

[吾爱汇编论坛52HB.COM]-感谢分享,虽说用的不多,有备无患,nice,谢谢,给力非常感谢逆向思路

评分

参与人数 1HB +1 收起 理由
梯云纵 + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表