吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 1988|回复: 7

[转载技术] DFX 验证分析

[复制链接]
Shark_鹏 发表于 2015-3-26 21:14 | 显示全部楼层 |阅读模式

DFX 是一款PC的音效增强软件,未注册版无法使用3D音效环绕(3D Surround),点关于也显示未注册(Unregistered(Trial Mode))。

程序没有注册的窗口,早期版本注册文件保存在注册表中,8.X 之后的注册文件保存在KeyFile。我们不看算法,简单的看下注册流程。

OD 搜索未注册字符串:



双击未注册,来到代码:

  1. 0043E017   .  8B83 A4C40100 MOV     EAX, DWORD PTR DS:[EBX+1C4A4]
  2. 0043E01D   .  3BC5          CMP     EAX, EBP
  3. 0043E01F   .  75 53         JNZ     SHORT DFX.0043E074
  4. 0043E021   .  8D4424 18     LEA     EAX, DWORD PTR SS:[ESP+18]
  5. 0043E025   .  83C0 FE       ADD     EAX, -2
  6. 0043E028   .  EB 06         JMP     SHORT DFX.0043E030
  7. 0043E02A      8D9B 00000000 LEA     EBX, DWORD PTR DS:[EBX]
  8. 0043E030   >  66:8B48 02    MOV     CX, WORD PTR DS:[EAX+2]
  9. 0043E034   .  03C5          ADD     EAX, EBP
  10. 0043E036   .  66:85C9       TEST    CX, CX
  11. 0043E039   .^ 75 F5         JNZ     SHORT DFX.0043E030
  12. 0043E03B   .  8B15 942A4E00 MOV     EDX, DWORD PTR DS:[4E2A94]       ;  Registered    // 这里是注册版 ...
  13. 0043E041   .  8B0D 982A4E00 MOV     ECX, DWORD PTR DS:[4E2A98]       ;  gistered
  14. 0043E047   .  8910          MOV     DWORD PTR DS:[EAX], EDX          ;  ntdll.KiFastSystemCallRet
  15. 0043E049   .  8B15 9C2A4E00 MOV     EDX, DWORD PTR DS:[4E2A9C]       ;  stered
  16. 0043E04F   .  8948 04       MOV     DWORD PTR DS:[EAX+4], ECX
  17. 0043E052   .  8B0D A02A4E00 MOV     ECX, DWORD PTR DS:[4E2AA0]       ;  ered
  18. 0043E058   .  8950 08       MOV     DWORD PTR DS:[EAX+8], EDX        ;  ntdll.KiFastSystemCallRet
  19. 0043E05B   .  8B15 A42A4E00 MOV     EDX, DWORD PTR DS:[4E2AA4]       ;  ed
  20. 0043E061   .  8948 0C       MOV     DWORD PTR DS:[EAX+C], ECX
  21. 0043E064   .  66:8B0D A82A4>MOV     CX, WORD PTR DS:[4E2AA8]
  22. 0043E06B   .  8950 10       MOV     DWORD PTR DS:[EAX+10], EDX       ;  ntdll.KiFastSystemCallRet
  23. 0043E06E   .  66:8948 14    MOV     WORD PTR DS:[EAX+14], CX
  24. 0043E072   .  EB 3A         JMP     SHORT DFX.0043E0AE
  25. 0043E074   >  8D7C24 18     LEA     EDI, DWORD PTR SS:[ESP+18]
  26. 0043E078   .  83C7 FE       ADD     EDI, -2
  27. 0043E07B   .  83F8 03       CMP     EAX, 3
  28. 0043E07E   .  75 17         JNZ     SHORT DFX.0043E097
  29. 0043E080   >  66:8B47 02    MOV     AX, WORD PTR DS:[EDI+2]
  30. 0043E084   .  03FD          ADD     EDI, EBP
  31. 0043E086   .  66:85C0       TEST    AX, AX
  32. 0043E089   .^ 75 F5         JNZ     SHORT DFX.0043E080
  33. 0043E08B   .  B9 0C000000   MOV     ECX, 0C
  34. 0043E090   .  BE 642A4E00   MOV     ESI, DFX.004E2A64                ;  Registration Unverified   // 这里是未注册
  35. 0043E095   .  EB 15         JMP     SHORT DFX.0043E0AC
  36. 0043E097   >  66:8B47 02    MOV     AX, WORD PTR DS:[EDI+2]
  37. 0043E09B   .  03FD          ADD     EDI, EBP
  38. 0043E09D   .  66:85C0       TEST    AX, AX
  39. 0043E0A0   .^ 75 F5         JNZ     SHORT DFX.0043E097
  40. 0043E0A2   .  B9 0D000000   MOV     ECX, 0D
  41. 0043E0A7   .  BE 302A4E00   MOV     ESI, DFX.004E2A30                ;  Unregistered (Trial Mode)  // 未注册
  42. 0043E0AC   >  F3:A5         REP     MOVSD
  43. 0043E0AE   >  39AB F4C40100 CMP     DWORD PTR DS:[EBX+1C4F4], EBP
  44. 0043E0B4   .  8DAB 28180000 LEA     EBP, DWORD PTR DS:[EBX+1828]
复制代码
我们观察到:
0043E017   .  8B83 A4C40100 MOV     EAX, DWORD PTR DS:[EBX+1C4A4]
0043E01D   .  3BC5          CMP     EAX, EBP
0043E01F   .  75 53         JNZ     SHORT DFX.0043E074

只要这里不跳转,就不会走到未注册流程,而是现实注册。

所以猜测这里是是否注册的全局变量保存值。

我们右键查找地址常量,观察一下该数据在哪里赋值的:



只有一处赋值:


我们双击到代码:

  1. 0040879F  |.  FFD2          CALL    NEAR EDX                         ;  ntdll.KiFastSystemCallRet
  2. 004087A1  |>  83BB 00C50100>CMP     DWORD PTR DS:[EBX+1C500], 0
  3. 004087A8  |.  74 2B         JE      SHORT DFX.004087D5
  4. 004087AA  |.  83BB E0C40100>CMP     DWORD PTR DS:[EBX+1C4E0], 0A
  5. 004087B1  |.  75 22         JNZ     SHORT DFX.004087D5
  6. 004087B3  |.  C783 A4C40100>MOV     DWORD PTR DS:[EBX+1C4A4], 2
  7. 004087BD  |>  33C0          XOR     EAX, EAX
  8. 004087BF  |.  5B            POP     EBX                              ;  kernel32.7C816037
复制代码
// 猜测这里应该是对全局变量赋值为 2 代表注册:
MOV     DWORD PTR DS:[EBX+1C4A4], 2

所以将上方两处挑战NOP掉



选中修改,右键另存为,将修改文件保存:




运行选中文件,查看程序关于,显示已注册,3D环绕功能已经可以使用。





至此,程序已成功暴破。


评分

参与人数 16HB +14 THX +6 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
Soul1999 + 1
shaokui123 + 1
李卓吾 + 1
后学真 + 1
Wayne + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
娄胖胖 + 1
行行行行行行 + 1
消逝的过去 + 2
飞刀梦想 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
l278785481 + 1
jaunic + 2
叶落花开 + 1
lies + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-3-11 04:10 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2022-11-4 18:31 | 显示全部楼层

论坛遍地大神 666
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
仙仙猫 发表于 2022-11-5 08:38 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2022-11-24 06:32 | 显示全部楼层

留个脚印,下去试试过
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2022-12-16 08:02 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2023-4-18 12:55 | 显示全部楼层

正在学习了。。。。。!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2023-5-17 20:22 | 显示全部楼层

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

本版积分规则

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

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

免责声明

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

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


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

Powered by Discuz!

吾爱汇编 www.52hb.com

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