吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16145|回复: 9
收起左侧

[原创] x64dbg破解软件的一些小心得:

  [复制链接]
冥界3大法王 发表于 2016-9-17 13:17
无费话,唠干的!
比如这个吧http://download.jgsoft.com/magic/SetupRegexMagicDemo.exe
似乎官方有32位的 和  64位的
貌似新版本 只有  64位的
该软件是评估版本,网站下载时会要求你提供邮箱,付费给你激活码,否则填了也白搭!
由于是64位的,本身只能用x64dbg来调试,OD发挥不了作用
本人为了汉化而用它。

第1关,解掉自校验
平日的F12 暂停堆栈法,有时能看到 寄存器地址,有时却狗屁没有。x64dbg这软件真的不太稳定,这个新同学可以试下练手吧。
Peitu20.jpg


第2关 每次启动总出来这个东西,烦,烦,烦!
Peitu19.jpg
你可以用上边的方法,不过拼人品不好拼上的
Resouce Hacker中 修改 Dear X名字随意(有N多处都一样)
CompDisam中比较下,你就能得到类似下面的地址
011FA814:  696F6E06174672  imul ebp, dword ptr [rdi+6Eh], 72461706h
x64dbg中,ctrl+G后 ,粘过去!
已知老版本中,
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\JGsoft\RegexMagic2]
"Key"=hex:2a,b7,08,25,26,dd,47,e9,1b,10,a8,0b,f5,8e,2a,f1,9f,2c,c2,eb,54,b3,75,\
  0f,1f,fc,61,99,c1,b8,82,d9,f2,0f,7c,82,1c,a9,78,a8,89,ba,9d,a7,67,b1,d8,9a,\
  36,0a,1e,9e,a9,f6,a4,86,5f,95,c7,c4,f6,91,fe,10,8f,0b,38,cd,34,46,bd,35,81,\
  50,2b,e2,68,63,2a,c2,e5,69,87,ed,88,cf,7d,98,6c,d7,df,6a,04,32,f2,d2,bc,d5,\
  e6,37,16,d1,9f,f6,80,4c,58,75,93,1e,f2,4c,f5,be,45,81,75,3f,b9,8a,85,da,65,\
  d8,87,63,ac,0b,b3,f6,36,83,9b,b7,ac,0e,6e,5b,17,dc,40,1f,54,1c,73,b0,a4,99,\
  96,f7,6d,ab,1e,9c,53,07,98,c6,b7,7e,6b,14,9e,30,44,72,9d,c4,90,68,2b,e8,d2,\
  05,03,c6,56,80,c2,67,21,d2,4a,a7,c4,32,a0,c6,81,fb,f0,10,fe,c8,e1,0c,9e,50,\
  df,8e,02,21,76,56,18,66,14,59,68,59,69,99,46,53,cb,f5,1c,b1,f1,12,3d,2d,28,\
  04,d6,82,42,21,86,94,0d,5b,61,e1,22,50,89,73,74,08,4b,d9,8a,5f,a8,d9,32,c5,\
  80,bd,92,fe,70,54,ec,0c,53,87,e2,08

Key是钥匙文件的存放形式
Demo版本中的资源结构不同,会发现demo这类的资源,而正版中没有的。
另外下注册表  文件类断点可断下,但没有有用的东西。
搜索licese to , Trial, Free Evalation字串中看不到啥内容
buy  evalation key这类的会有所发现,



[Delphi] 纯文本查看 复制代码
000007FEFCDD9E48 | 90                       | nop                                     |


000007FEFCDD9B50 | 48 89 5C 24 20           | mov qword ptr ss:[rsp+20],rbx   CheckToKenMembership 这句话很重要!检测是否会员
 checktokenmembership


0000000076C30B1C | 0F 84 33 01 00 00        | je kernel32.76C30C55                    |
0000000076C30B22 | 48 8D 15 D7 78 05 00     | lea rdx,qword ptr ds:[76C88400]         | 76C88400:"CheckTokenMembership"
0000000076C30B29 | 48 8B C8                 | mov rcx,rax                             |
0000000076C30B2C | E8 F7 2A FC FF           | call <kernel32.GetProcAddress>          |
0000000076C30B31 | 48 8B F0                 | mov rsi,rax                             |
0000000076C30B34 | 48 3B C5                 | cmp rax,rbp                             |
0000000076C30B37 | 0F 84 0C 01 00 00        | je kernel32.76C30C49                    |
0000000076C30B3D | 48 8D 44 24 60           | lea rax,qword ptr ss:[rsp+60]           |
0000000076C30B42 | 44 8D 45 20              | lea r8d,dword ptr ss:[rbp+20]           |
0000000076C30B46 | 48 8D 4C 24 6C           | lea rcx,qword ptr ss:[rsp+6C]           |
0000000076C30B4B | 48 89 44 24 50           | mov qword ptr ss:[rsp+50],rax           |
0000000076C30B50 | 89 6C 24 48              | mov dword ptr ss:[rsp+48],ebp           |
0000000076C30B54 | 89 6C 24 40              | mov dword ptr ss:[rsp+40],ebp           |
0000000076C30B58 | 89 6C 24 38              | mov dword ptr ss:[rsp+38],ebp           |
0000000076C30B5C | 89 6C 24 30              | mov dword ptr ss:[rsp+30],ebp           |
0000000076C30B60 | 41 B9 20 02 00 00        | mov r9d,220                             |
0000000076C30B66 | B2 02                    | mov dl,2                                |
0000000076C30B68 | 89 6C 24 28              | mov dword ptr ss:[rsp+28],ebp           |
0000000076C30B6C | 89 6C 24 20              | mov dword ptr ss:[rsp+20],ebp           |
0000000076C30B70 | FF 15 C2 B9 03 00        | call qword ptr ds:[<&RtlAllocateAndInit |
0000000076C30B76 | 3B C5                    | cmp eax,ebp                             |
0000000076C30B78 | 7C 2C                    | jl kernel32.76C30BA6                    |
0000000076C30B7A | 48 8B 54 24 60           | mov rdx,qword ptr ss:[rsp+60]           |
0000000076C30B7F | 4C 8D 44 24 68           | lea r8,qword ptr ss:[rsp+68]            |
0000000076C30B84 | 33 C9                    | xor ecx,ecx                             |
0000000076C30B86 | FF D6                    | call rsi                                |
0000000076C30B88 | 3B C5                    | cmp eax,ebp                             |
0000000076C30B8A | 74 2A                    | je kernel32.76C30BB6                    |
0000000076C30B8C | 39 6C 24 68              | cmp dword ptr ss:[rsp+68],ebp           |
0000000076C30B90 | 74 0D                    | je kernel32.76C30B9F                    |
0000000076C30B92 | 33 C9                    | xor ecx,ecx                             |
0000000076C30B94 | FF 15 26 C1 03 00        | call qword ptr ds:[<&RtlSetLastWin32Err |
0000000076C30B9A | 8D 5D 01                 | lea ebx,dword ptr ss:[rbp+1]            |
0000000076C30B9D | EB 19                    | jmp kernel32.76C30BB8                   |
0000000076C30B9F | B9 05 00 00 00           | mov ecx,5                               |
0000000076C30BA4 | EB 0A                    | jmp kernel32.76C30BB0                   |
0000000076C30BA6 | 8B C8                    | mov ecx,eax                             |
0000000076C30BA8 | FF 15 52 C0 03 00        | call qword ptr ds:[<&RtlNtStatusToDosEr |
0000000076C30BAE | 8B C8                    | mov ecx,eax                             |
0000000076C30BB0 | FF 15 0A C1 03 00        | call qword ptr ds:[<&RtlSetLastWin32Err |
0000000076C30BB6 | 8B DD                    | mov ebx,ebp                             |
0000000076C30BB8 | 48 8B 4C 24 60           | mov rcx,qword ptr ss:[rsp+60]           |
0000000076C30BBD | 48 3B CD                 | cmp rcx,rbp                             |
0000000076C30BC0 | 74 0B                    | je kernel32.76C30BCD                    |
0000000076C30BC2 | FF 15 68 B9 03 00        | call qword ptr ds:[<&RtlFreeSid>]       |
0000000076C30BC8 | 48 89 6C 24 60           | mov qword ptr ss:[rsp+60],rbp           |
0000000076C30BCD | 3B DD                    | cmp ebx,ebp                             |
0000000076C30BCF | 75 7A                    | jne kernel32.76C30C4B                   |
0000000076C30BD1 | 48 8D 44 24 60           | lea rax,qword ptr ss:[rsp+60]           |
0000000076C30BD6 | 45 33 C9                 | xor r9d,r9d                             |
0000000076C30BD9 | 48 8D 4C 24 6C           | lea rcx,qword ptr ss:[rsp+6C]           |
0000000076C30BDE | 48 89 44 24 50           | mov qword ptr ss:[rsp+50],rax           |
0000000076C30BE3 | 89 6C 24 48              | mov dword ptr ss:[rsp+48],ebp           |
0000000076C30BE7 | 89 6C 24 40              | mov dword ptr ss:[rsp+40],ebp           |
0000000076C30BEB | 89 6C 24 38              | mov dword ptr ss:[rsp+38],ebp           |
0000000076C30BEF | 89 6C 24 30              | mov dword ptr ss:[rsp+30],ebp           |
0000000076C30BF3 | 45 8D 41 12              | lea r8d,dword ptr ds:[r9+12]            |
0000000076C30BF7 | B2 01                    | mov dl,1                                |
0000000076C30BF9 | 89 6C 24 28              | mov dword ptr ss:[rsp+28],ebp           |
0000000076C30BFD | 89 6C 24 20              | mov dword ptr ss:[rsp+20],ebp           |
0000000076C30C01 | FF 15 31 B9 03 00        | call qword ptr ds:[<&RtlAllocateAndInit |
0000000076C30C07 | 3B C5                    | cmp eax,ebp                             |
0000000076C30C09 | 7C 2E                    | jl kernel32.76C30C39                    |
0000000076C30C0B | 48 8B 54 24 60           | mov rdx,qword ptr ss:[rsp+60]           |
0000000076C30C10 | 4C 8D 44 24 68           | lea r8,qword ptr ss:[rsp+68]            |
0000000076C30C15 | 33 C9                    | xor ecx,ecx                             |
0000000076C30C17 | FF D6                    | call rsi                                |
0000000076C30C19 | 3B C5                    | cmp eax,ebp                             |
0000000076C30C1B | 74 2C                    | je kernel32.76C30C49                    |
0000000076C30C1D | 39 6C 24 68              | cmp dword ptr ss:[rsp+68],ebp           |
0000000076C30C21 | 74 0F                    | je kernel32.76C30C32                    |
0000000076C30C23 | 33 C9                    | xor ecx,ecx                             |
0000000076C30C25 | FF 15 95 C0 03 00        | call qword ptr ds:[<&RtlSetLastWin32Err |
0000000076C30C2B | BB 01 00 00 00           | mov ebx,1                               |
0000000076C30C30 | EB 19                    | jmp kernel32.76C30C4B                   |
0000000076C30C32 | B9 05 00 00 00           | mov ecx,5                               |
0000000076C30C37 | EB 0A                    | jmp kernel32.76C30C43                   |
0000000076C30C39 | 8B C8                    | mov ecx,eax                             |
0000000076C30C3B | FF 15 BF BF 03 00        | call qword ptr ds:[<&RtlNtStatusToDosEr |
0000000076C30C41 | 8B C8                    | mov ecx,eax                             |
0000000076C30C43 | FF 15 77 C0 03 00        | call qword ptr ds:[<&RtlSetLastWin32Err |
0000000076C30C49 | 8B DD                    | mov ebx,ebp                             |
0000000076C30C4B | 48 8B CF                 | mov rcx,rdi                             |
0000000076C30C4E | E8 D5 59 FB FF           | call <kernel32.FreeLibrary>             |
0000000076C30C53 | EB 02                    | jmp kernel32.76C30C57                   |
0000000076C30C55 | 8B DD                    | mov ebx,ebp                             |

点关于时:
0000000000D98ABF | 48 8D 05 52 03 00 00     | lea rax,qword ptr ds:[D98E18]           | D98E18:L"2.5.0"
0000000000D98AC6 | 48 89 45 68              | mov qword ptr ss:[rbp+68],rax           |
0000000000D98ACA | C6 45 70 11              | mov byte ptr ss:[rbp+70],11             |
0000000000D98ACE | 48 8D 4D 60              | lea rcx,qword ptr ss:[rbp+60]           |
0000000000D98AD2 | E8 79 66 8B FF           | call crack 3.64F150                     |
0000000000D98AD7 | 48 8B 45 60              | mov rax,qword ptr ss:[rbp+60]           |
0000000000D98ADB | 48 89 45 78              | mov qword ptr ss:[rbp+78],rax           |
0000000000D98ADF | C6 85 80 00 00 00 11     | mov byte ptr ss:[rbp+80],11             |


0000000076AF724F | E8 2C 2C FF FF           | call <user32.IsDialogMessageW>          |
0000000076AF7254 | 41 3B C7                 | cmp eax,r15d                            |
0000000076AF7257 | 75 16                    | jne user32.76AF726F                     |
0000000076AF7259 | 48 8D 4C 24 30           | lea rcx,qword ptr ss:[rsp+30]           |
0000000076AF725E | E8 AD 4A FF FF           | call <user32.TranslateMessage>          |

mov rbx, qword ptr [rsp + 0x20] 


前两处 都能干掉,注册给谁,这个貌似只能造假显示了,因为demo版本,似乎没有输入的地方。
另外x64dbg的作者 bug 改良和邮件的反馈力度 还是很大的,提了几次建议都改了。是个好雷锋。只是宽屏显示器 还不够宽!
一点心得写得不好,调试记录没怎么记录,只写个大概吧。
Peitu21.jpg
虚拟机中测试了几台,还算正常。有需要【点点生成 正则魔术师】的可以联系我。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

KaQqi 发表于 2016-9-17 13:33
本帖最后由 cqr2287 于 2016-9-25 18:01 编辑

画眉大神不是发布ollydbg64位版了么

点评

OD压根 没64的!!!1!!  发表于 2016-9-17 15:05
olaydbg64什么鬼东西  发表于 2016-9-17 15:04
Hmily 发表于 2016-9-18 18:32
写的看不懂,图片还贴的有问题给你编辑了,话说混这么久论坛了,咋发帖还有问题了?

点评

一点小心得,这个调试器的使用心得网上很难找到。不过作者很卖力!了解的太少,记录也少见笑了。  发表于 2016-9-19 08:09
不苦小和尚 发表于 2016-9-29 10:54
楼主发给我一下把,上次自己想破解的结果没成功
smile1110 发表于 2016-10-12 20:08
语言要简洁流畅
pope 发表于 2016-10-14 09:15
需要【点点生成 正则魔术师】,可以m我下载地址吗
hyh920 发表于 2016-12-11 13:30
谢谢分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 10:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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