隐藏英雄 发表于 2014-12-14 19:17

一款智能门锁软件的破解。

本帖最后由 隐藏英雄 于 2016-12-25 17:11 编辑

由于一朋友把一款门锁软件的授权卡丢失。找不到厂价售后,所以我本着为人民服务的态度逆向了这款软件,仅做测试与学习,并不用于商业用途。所以。。。具体分析步骤如下。首先安装好程序,对主程序进行查壳。是一款由delphi编写的程序。没有加壳。http://0912itw.com/wp-content/uploads/2014/wztp/chake.jpg然后我们载入OD,进行分析。搜索关键词后发现都是一些没用的信息。如下图。http://0912itw.com/wp-content/uploads/2014/wztp/gjc.jpg到这里我们只能通过其他方法继续了,果断采用F12暂停法。结果发现找到的是通用按钮事件,会断掉很多按钮,并不是我们要的注册按钮事件。如下图http://0912itw.com/wp-content/uploads/2014/wztp/ansj.jpg通过下查找#740E8BD38B83????????FF93????????#地址,反复使用ATRL+L来下断检测发现非常累而且每找到。所以我们还得通过其他方法来解决此问题。首先考虑到程序是用delphi编写的,这样的话我们可以通过DEDE来查找按钮事件的关键CALL,于是用DEDE加载程序查看过程如下图。(Button1 此类事件即为按钮事件)http://0912itw.com/wp-content/uploads/2014/wztp/DEDEan.jpg发现单元很多,按钮也很多。找了一会感觉太繁琐。点到窗体看了一下。如下图http://0912itw.com/wp-content/uploads/2014/wztp/DEDEct.jpg看了几个窗体发现了相关东西,通过模块名。在过程中找到了关键按钮地址。如上面过程图片。中的btnregclick地址。在OD中来到此发现代码如下
005CE7F0 . E8 3778ECFF call PCloudLo.0049602C
005CE7F5 . C3 retn
005CE7F6 8BC0 mov eax,eax
005CE7F8 /. 55 push ebp
005CE7F9 |. 8BEC mov ebp,esp
005CE7FB |. B9 0C000000 mov ecx,0xC
005CE800 |> 6A 00 /push 0x0
005CE802 |. 6A 00 |push 0x0
005CE804 |. 49 |dec ecx
005CE805 |.^ 75 F9 \jnz XPCloudLo.005CE800
005CE807 |. 53 push ebx
005CE808 |. 56 push esi
005CE809 |. 57 push edi
005CE80A |. 8BD8 mov ebx,eax
005CE80C |. 33C0 xor eax,eax
005CE80E |. 55 push ebp
005CE80F |. 68 84EB5C00 push PCloudLo.005CEB84
005CE814 |. 64:FF30 push dword ptr fs:
005CE817 |. 64:8920 mov dword ptr fs:,esp
005CE81A |. FF83 30030000 inc dword ptr ds:
在005CE7F8处下断发现确实可以断下注册按钮,而且不影响到其他按钮事件。http://0912itw.com/wp-content/uploads/2014/wztp/yz.jpg于是往下看许多条件跳转,许多CALL,许多强制跳转(这些强制跳转都跳到了同一地址)。结果分析各个CALL,最终找到了注册成功的信息。上面许多验证CALL包括了。序列号检测,时间检测,注册码检测等等。同时有试用版注册成功,正式版注册成功等,如下图。
http://0912itw.com/wp-content/uploads/2014/wztp/zsbzccg.jpg最终用一个jmp直接跳到试用版版注册成功,同时nop掉下面的跳转即完成了爆破任务。http://0912itw.com/wp-content/uploads/2014/wztp/zsbzccg.jpg具体代码如下:005CE7F0   .E8 3778ECFF   call PCloudLo.0049602C
005CE7F5   .C3            retn
005CE7F6      8BC0          mov eax,eax
005CE7F8/.55            push ebp
005CE7F9|.8BEC          mov ebp,esp
005CE7FB|.B9 0C000000   mov ecx,0xC
005CE800|>6A 00         /push 0x0
005CE802|.6A 00         |push 0x0
005CE804|.49            |dec ecx
005CE805|.^ 75 F9         \jnz XPCloudLo.005CE800
005CE807|.53            push ebx
005CE808|.56            push esi
005CE809|.57            push edi
005CE80A|.8BD8          mov ebx,eax
005CE80C|.33C0          xor eax,eax
005CE80E|.55            push ebp
005CE80F|.68 84EB5C00   push PCloudLo.005CEB84
005CE814|.64:FF30       push dword ptr fs:
005CE817|.64:8920       mov dword ptr fs:,esp
005CE81A|.FF83 30030000 inc dword ptr ds:
005CE820|.83BB 30030000>cmp dword ptr ds:,0x3
005CE827      7E 21         jle XPCloudLo.005CE84A                   ;不大于3时转移到 005ce84a
005CE829      8D45 E8       lea eax,dword ptr ss:
005CE82C|.8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CE832|.81C2 F98A0000 add edx,0x8AF9
005CE838|.E8 435EE3FF   call PCloudLo.00404680                   ;小于等于3则跳,大于则CLL连续3次错误,重新读取授权卡
005CE83D|.8B45 E8       mov eax,
005CE840|.E8 87CAE6FF   call PCloudLo.0043B2CC
005CE845|.E9 ED020000   jmp PCloudLo.005CEB37
005CE84A|>8D55 E4       lea edx,
005CE84D|.A1 20945D00   mov eax,dword ptr ds:
005CE852|.8B00          mov eax,dword ptr ds:
005CE854|.E8 9FA7E3FF   call PCloudLo.00408FF8                   ;检测是否读过授权卡
005CE859|.837D E4 00    cmp ,0x0
005CE85D      75 21         jnz XPCloudLo.005CE880
005CE85F|.8D45 E0       lea eax,
005CE862|.8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CE868|.81C2 C28B0000 add edx,0x8BC2
005CE86E|.E8 0D5EE3FF   call PCloudLo.00404680                   ;没有读授权卡无法得到序列号
005CE873|.8B45 E0       mov eax,
005CE876|.E8 51CAE6FF   call PCloudLo.0043B2CC
005CE87B|.E9 B7020000   jmp PCloudLo.005CEB37
005CE880|>8D55 D8       lea edx,
005CE883|.8B83 10030000 mov eax,dword ptr ds:
005CE889|.E8 169CEAFF   call PCloudLo.004784A4
005CE88E|.8B45 D8       mov eax,
005CE891|.8D55 DC       lea edx,
005CE894|.E8 5FA7E3FF   call PCloudLo.00408FF8
005CE899|.837D DC 00    cmp ,0x0
005CE89D      75 21         jnz XPCloudLo.005CE8C0
005CE89F|.8D45 D4       lea eax,
005CE8A2|.8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CE8A8|.81C2 8B8C0000 add edx,0x8C8B
005CE8AE|.E8 CD5DE3FF   call PCloudLo.00404680                   ;没有检测到输入的注册码,提示输入注册码
005CE8B3|.8B45 D4       mov eax,
005CE8B6|.E8 11CAE6FF   call PCloudLo.0043B2CC
005CE8BB|.E9 77020000   jmp PCloudLo.005CEB37
005CE8C0|>E8 639BFBFF   call PCloudLo.00588428
005CE8C5|.84C0          test al,al
005CE8C7      75 21         jnz XPCloudLo.005CE8EA
005CE8C9|.8D45 D0       lea eax,
005CE8CC|.8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CE8D2|.81C2 96B40000 add edx,0xB496
005CE8D8|.E8 A35DE3FF   call PCloudLo.00404680                   ;检测本地时间是否错误
005CE8DD|.8B45 D0       mov eax,
005CE8E0|.E8 E7C9E6FF   call PCloudLo.0043B2CC
005CE8E5|.E9 4D020000   jmp PCloudLo.005CEB37
005CE8EA|>E8 99CEE3FF   call PCloudLo.0040B788
005CE8EF|.83C4 F8       add esp,-0x8
005CE8F2|.DD1C24      fstp qword ptr ss:
005CE8F5|.9B            wait
005CE8F6|.B8 9CEB5C00   mov eax,PCloudLo.005CEB9C                ;Index
005CE8FB|.E8 089AFBFF   call PCloudLo.00588308
005CE900|.8D55 EC       lea edx,
005CE903|.B8 ACEB5C00   mov eax,PCloudLo.005CEBAC                ;CurrReaderInfoEx1
005CE908|.E8 078EFBFF   call PCloudLo.00587714
005CE90D|.8D55 CC       lea edx,
005CE910|.8B83 10030000 mov eax,dword ptr ds:
005CE916|.E8 899BEAFF   call PCloudLo.004784A4
005CE91B|.8B45 CC       mov eax,
005CE91E|.8B55 EC       mov edx,
005CE921|.E8 025FE3FF   call PCloudLo.00404828
005CE926      75 21         jnz XPCloudLo.005CE949
005CE928|.8D45 C8       lea eax,
005CE92B|.8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CE931|.81C2 AF8F0000 add edx,0x8FAF
005CE937|.E8 445DE3FF   call PCloudLo.00404680                   ;注册失败
005CE93C|.8B45 C8       mov eax,
005CE93F|.E8 88C9E6FF   call PCloudLo.0043B2CC
005CE944|.E9 EE010000   jmp PCloudLo.005CEB37
005CE949|>33C0          xor eax,eax
005CE94B|.8945 F8       mov ,eax
005CE94E|.B8 C8EB5C00   mov eax,PCloudLo.005CEBC8                ;CurrReaderInfo
005CE953|.E8 2C8FFBFF   call PCloudLo.00587884
005CE958|.8BF0          mov esi,eax
005CE95A|.8D4D FC       lea ecx,
005CE95D|.8D55 F8       lea edx,
005CE960|.8BC3          mov eax,ebx
005CE962|.E8 A9020000   call PCloudLo.005CEC10
005CE967|.84C0          test al,al
005CE969      75 21         jnz XPCloudLo.005CE98C
005CE96B|.8D45 C4       lea eax,
005CE96E|.8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CE974|.81C2 E68E0000 add edx,0x8EE6
005CE97A|.E8 015DE3FF   call PCloudLo.00404680                   ;注册码错误
005CE97F|.8B45 C4       mov eax,
005CE982|.E8 45C9E6FF   call PCloudLo.0043B2CC
005CE987|.E9 AB010000   jmp PCloudLo.005CEB37
005CE98C|>3B75 FC       cmp esi,
005CE98F      74 21         je XPCloudLo.005CE9B2
005CE991|.8D45 C0       lea eax,
005CE994|.8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CE99A|.81C2 E68E0000 add edx,0x8EE6
005CE9A0|.E8 DB5CE3FF   call PCloudLo.00404680
005CE9A5|.8B45 C0       mov eax,
005CE9A8|.E8 1FC9E6FF   call PCloudLo.0043B2CC
005CE9AD|.E9 85010000   jmp PCloudLo.005CEB37
005CE9B2|>E8 71CDE3FF   call PCloudLo.0040B728
005CE9B7|.83C4 F8       add esp,-0x8
005CE9BA|.DD1C24      fstp qword ptr ss:
005CE9BD|.9B            wait
005CE9BE|.8B45 F8       mov eax,
005CE9C1|.E8 D2CEECFF   call PCloudLo.0049B898                   ;试用版注册成功
005CE9C6|.E8 AD42E3FF   call PCloudLo.00402C78
005CE9CB|.8BF0          mov esi,eax
005CE9CD|.C1EE 10       shr esi,0x10
005CE9D0|.8BF8          mov edi,eax
005CE9D2|.81E7 FFFF0000 and edi,0xFFFF
005CE9D8|.E8 DF41E3FF   call PCloudLo.00402BBC
005CE9DD|.B8 FEFFFF7F   mov eax,0x7FFFFFFE
005CE9E2|.E8 E944E3FF   call PCloudLo.00402ED0
005CE9E7|.8BD0          mov edx,eax
005CE9E9|.C1EA 10       shr edx,0x10
005CE9EC|.25 FFFF0000   and eax,0xFFFF
005CE9F1|.8945 F4       mov ,eax
005CE9F4|.8BCF          mov ecx,edi
005CE9F6|.C1E1 10       shl ecx,0x10
005CE9F9|.03CA          add ecx,edx
005CE9FB|.8B7D F4       mov edi,
005CE9FE|.C1E7 10       shl edi,0x10
005CEA01|.03FE          add edi,esi
005CEA03|.8BC1          mov eax,ecx
005CEA05|.33D2          xor edx,edx
005CEA07|.52            push edx
005CEA08|.50            push eax
005CEA09|.E8 7E9BFBFF   call <jmp.&PYHDKey2004.ReSore>
005CEA0E|.8BF0          mov esi,eax
005CEA10|.8BC7          mov eax,edi
005CEA12|.33D2          xor edx,edx
005CEA14|.52            push edx
005CEA15|.50            push eax
005CEA16|.E8 719BFBFF   call <jmp.&PYHDKey2004.ReSore>
005CEA1B|.8BF8          mov edi,eax
005CEA1D|.8BC7          mov eax,edi
005CEA1F|.33D2          xor edx,edx
005CEA21   .52            push edx
005CEA22   .50            push eax
005CEA23   .8D55 B8       lea edx,dword ptr ss:
005CEA26   .33C0          xor eax,eax
005CEA28   .E8 93ABE3FF   call PCloudLo.004095C0
005CEA2D   .8B45 B8       mov eax,dword ptr ss:
005CEA30   .8D4D BC       lea ecx,dword ptr ss:
005CEA33   .BA 08000000   mov edx,0x8
005CEA38   .E8 5382FBFF   call PCloudLo.00586C90
005CEA3D   .8B45 BC       mov eax,dword ptr ss:
005CEA40   .50            push eax
005CEA41   .8BC6          mov eax,esi
005CEA43   .33D2          xor edx,edx
005CEA45   .52            push edx
005CEA46   .50            push eax
005CEA47   .8D55 B0       lea edx,dword ptr ss:
005CEA4A   .33C0          xor eax,eax
005CEA4C   .E8 6FABE3FF   call PCloudLo.004095C0
005CEA51   .8B45 B0       mov eax,dword ptr ss:
005CEA54   .8D4D B4       lea ecx,dword ptr ss:
005CEA57   .BA 08000000   mov edx,0x8
005CEA5C   .E8 2F82FBFF   call PCloudLo.00586C90
005CEA61   .8B55 B4       mov edx,dword ptr ss:
005CEA64   .8D45 F0       lea eax,dword ptr ss:
005CEA67   .59            pop ecx
005CEA68   .E8 BB5CE3FF   call PCloudLo.00404728
005CEA6D   .817D F8 70010>cmp dword ptr ss:,0x170
005CEA74      EB 2A         jmp XPCloudLo.005CEAA0
005CEA76   .817D F8 85010>cmp dword ptr ss:,0x185
005CEA7D   .74 21         je XPCloudLo.005CEAA0
005CEA7F   .8D45 AC       lea eax,dword ptr ss:
005CEA82   .8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CEA88   .81C2 AF8F0000 add edx,0x8FAF
005CEA8E   .E8 ED5BE3FF   call PCloudLo.00404680
005CEA93   .8B45 AC       mov eax,dword ptr ss:
005CEA96   .E8 31C8E6FF   call PCloudLo.0043B2CC
005CEA9B   .E9 97000000   jmp PCloudLo.005CEB37
005CEAA0   >817D F8 70010>cmp dword ptr ss:,0x170
005CEAA7      EB 1C         jmp XPCloudLo.005CEAC5
005CEAA9   .8D45 A8       lea eax,dword ptr ss:
005CEAAC   .8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CEAB2   .81C2 78900000 add edx,0x9078
005CEAB8   .E8 C35BE3FF   call PCloudLo.00404680
005CEABD   .8B45 A8       mov eax,dword ptr ss:
005CEAC0   .E8 07C8E6FF   call PCloudLo.0043B2CC                   ;试用版注册成功
005CEAC5   >817D F8 85010>cmp dword ptr ss:,0x185
005CEACC      90            nop
005CEACD      90            nop
005CEACE   .33C0          xor eax,eax
005CEAD0   .8983 30030000 mov dword ptr ds:,eax
005CEAD6   .BA E0EB5C00   mov edx,PCloudLo.005CEBE0                ;ASCII "2007"
005CEADB   .B8 F0EB5C00   mov eax,PCloudLo.005CEBF0                ;ASCII "sum"
005CEAE0   .E8 1B8FFBFF   call PCloudLo.00587A00
005CEAE5   .8D45 A4       lea eax,dword ptr ss:
005CEAE8   .8B15 F88F5D00 mov edx,dword ptr ds:          ;PCloudLo.005DAEA0
005CEAEE   .81C2 41910000 add edx,0x9141
005CEAF4   .E8 875BE3FF   call PCloudLo.00404680
005CEAF9   .8B45 A4       mov eax,dword ptr ss:
005CEAFC   .E8 CBC7E6FF   call PCloudLo.0043B2CC                   ;正式版注册成功
005CEB01   >8B55 F0       mov edx,dword ptr ss:
005CEB04   .B8 FCEB5C00   mov eax,PCloudLo.005CEBFC                ;ASCII "CurrReaderInfoEx"
005CEB09   .E8 F28EFBFF   call PCloudLo.00587A00
005CEB0E   .8D55 A0       lea edx,dword ptr ss:
005CEB11   .8B83 10030000 mov eax,dword ptr ds:
005CEB17   .E8 8899EAFF   call PCloudLo.004784A4
005CEB1C   .8B55 A0       mov edx,dword ptr ss:
005CEB1F   .B8 ACEB5C00   mov eax,PCloudLo.005CEBAC                ;ASCII "CurrReaderInfoEx1"
005CEB24   .E8 D78EFBFF   call PCloudLo.00587A00
005CEB29   .E8 CA92FBFF   call PCloudLo.00587DF8
005CEB2E   .DDD8          fstp st
005CEB30   .8BC3          mov eax,ebx
005CEB32   .E8 F574ECFF   call PCloudLo.0049602C
005CEB37   >33C0          xor eax,eax                              ;跳到这里的话点注册没反映 注册功能失效
005CEB39   .5A            pop edx
005CEB3A   .59            pop ecx
005CEB3B   .59            pop ecx



梦之幻爱随风 发表于 2016-1-25 02:32

chengingcom 发表于 2016-1-14 20:27
你好 不知道你的门锁软件有没有遇到 2016不能读卡的问题。如果你解决了请告诉我一声谢谢。研究了几天 知道 ...

提醒一下,论坛禁止留QQ号

zk9320697 发表于 2014-12-15 00:33

感谢分享破路历程 。                                 

gueijiaochen 发表于 2014-12-14 19:20

楼主果然很强大啊!!!

逍遥枷锁 发表于 2014-12-14 19:27

果断给力,值得大力支持,谢谢。

雨林木风 发表于 2014-12-14 19:29

kuwo911 发表于 2014-12-14 19:51

感谢分享破路历程    学习

132177 发表于 2014-12-14 19:56

楼主果然很强大啊!!!

xiafanyi123 发表于 2014-12-14 20:12

学习了,谢谢分享

长存 发表于 2014-12-14 20:14

感谢分享。你这不像是新手啊

小碎碎 发表于 2014-12-14 20:16

楼楼好流弊呀。。学习了。

小诺 发表于 2014-12-14 20:22

页: [1] 2 3 4 5 6
查看完整版本: 一款智能门锁软件的破解。