飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 9939|回复: 13

[原创] ActiveSMART v2.9.7.144 简单分析

  [复制链接]

该用户从未签到

发表于 2015-8-8 02:03:03 | 显示全部楼层 |阅读模式
HomePage: http://www.ariolic.com/

误打误撞错下了该软件,快下班的时候简单分析了一下,不遂人愿,居然是双进程,紫禁城还有壳 ...

Active SMART0.jpg

虽然难度不大,还是发帖子整理下,权当好久没写文章了,灌水冒个泡。OD 带参来搞紫禁城:

Active SMART1.jpg

不会脱壳,带壳操,运行软件后,输入错误的注册码后,bp MessageBoxW :



  1. <a href="tel:<a href="tel:00407862">00407862</a>">00407862</a>  |.  51            PUSH    ECX                              ;  Name
  2. <a href="tel:<a href="tel:00407863">00407863</a>">00407863</a>  |.  50            PUSH    EAX                              ;  Key
  3. <a href="tel:<a href="tel:00407864">00407864</a>">00407864</a>  |.  E8 0B8F1700   CALL    ASmartCo.00580774
  4. <a href="tel:<a href="tel:00407869">00407869</a>">00407869</a>  |.  85C0          TEST    EAX, EAX
  5. 0040786B  |.  74 73         JE      SHORT ASmartCo.004078E0          ;  跳向失败
  6. ... ...

  7. 004078E0  |> \8B55 D8       MOV     EDX, DWORD PTR SS:[EBP-28]
  8. 004078E3  |.  6A 00         PUSH    0                                ; /Style = MB_OK|MB_APPLMODAL
  9. 004078E5  |.  <a href="tel:<a href="tel:68 40875900">68 40875900</a>">68 40875900</a>   PUSH    ASmartCo.00598740                ; |Active SMART
  10. 004078EA  |.  52            PUSH    EDX                              ; |Text = "Wrong registration information. Please check it and try again."
  11. 004078EB  |.  6A 00         PUSH    0                                ; |hOwner = NULL
  12. 004078ED  |.  FF15 E4785900 CALL    NEAR DWORD PTR DS:[5978E4]       ; \MessageBoxW
  13. 004078F3  |>  8B85 7CFCFFFF MOV     EAX, DWORD PTR SS:[EBP-384]


复制代码


跟进CALL看下:


  1. <a href="tel:<a href="tel:00580762">00580762</a>">00580762</a>   $- FF25 38795900 JMP     NEAR DWORD PTR DS:[597938]       ;  version.VerQueryValueW
  2. <a href="tel:<a href="tel:00580768">00580768</a>">00580768</a>   $- FF25 34795900 JMP     NEAR DWORD PTR DS:[597934]       ;  version.GetFileVersionInfoW
  3. 0058076E   $- FF25 30795900 JMP     NEAR DWORD PTR DS:[597930]       ;  version.GetFileVersionInfoSizeW
  4. <a href="tel:<a href="tel:00580774">00580774</a>">00580774</a>   $- FF25 64705900 JMP     NEAR DWORD PTR DS:[597064]       ;  弹窗验证是否成功
  5. 0058077A   $- FF25 60705900 JMP     NEAR DWORD PTR DS:[597060]
  6. <a href="tel:<a href="tel:00580780">00580780</a>">00580780</a>   $- FF25 68705900 JMP     NEAR DWORD PTR DS:[597068]

复制代码


提示重启验证 ...  在这里下硬件断点 : 00580774 , 无果, 于是只能靠猜 ...  对这里 0058077A,00580780 下硬件断点 。


重启后中断了,中断在这里:程序有四处调用:
00580780   $- FF25 68705900 JMP     NEAR DWORD PTR DS:[597068]

DS:[00597068]=0037CF20
本地调用来自 004081BC, 0040C4F2, 0040E5CC, 004354D1


一处是启动时弹窗,一处是验证是否成功修改标题,一处是点HELP下拉菜单,一处是显示关于。(这些不是猜的啦,是调试看到的 ... )

我们就先来看下验证成功修改标题这里:


  1. 0040E5CC  |.  E8 AF211700   CALL    ASmartCo.00580780
  2. 0040E5D1  |.  8B07          MOV     EAX, DWORD PTR DS:[EDI]
  3. 0040E5D3  |.  85C0          TEST    EAX, EAX
  4. 0040E5D5  |.  0F84 81000000 JE      ASmartCo.0040E65C             // 首先这里不能跳
  5. 0040E5DB  |.  B9 CC7E5900   MOV     ECX, ASmartCo.00597ECC
  6. 0040E5E0  |>  8A10          /MOV     DL, BYTE PTR DS:[EAX]           // 若不跳则 EAX = 0 必异常
  7. 0040E5E2  |.  3A11          |CMP     DL, BYTE PTR DS:[ECX]
  8. 0040E5E4  |.  75 1A         |JNZ     SHORT ASmartCo.0040E600
  9. 0040E5E6  |.  84D2          |TEST    DL, DL
  10. 0040E5E8  |.  74 12         |JE      SHORT ASmartCo.0040E5FC
  11. 0040E5EA  |.  8A50 01       |MOV     DL, BYTE PTR DS:[EAX+1]
  12. 0040E5ED  |.  3A51 01       |CMP     DL, BYTE PTR DS:[ECX+1]
  13. 0040E5F0  |.  75 0E         |JNZ     SHORT ASmartCo.0040E600
  14. 0040E5F2  |.  83C0 02       |ADD     EAX, 2
  15. 0040E5F5  |.  83C1 02       |ADD     ECX, 2
  16. 0040E5F8  |.  84D2          |TEST    DL, DL
  17. 0040E5FA  |.^ 75 E4         \JNZ     SHORT ASmartCo.0040E5E0
  18. 0040E5FC  |>  33C0          XOR     EAX, EAX
  19. 0040E5FE  |.  EB 05         JMP     SHORT ASmartCo.0040E605
  20. 0040E600  |>  1BC0          SBB     EAX, EAX
  21. 0040E602  |.  83D8 FF       SBB     EAX, -1
  22. 0040E605  |>  85C0          TEST    EAX, EAX
  23. 0040E607  |.  74 53         JE      SHORT ASmartCo.0040E65C
  24. 0040E609  |.  6A 00         PUSH    0
  25. 0040E60B  |.  <a href="tel:<a href="tel:68 20050000">68 20050000</a>">68 20050000</a>   PUSH    520
  26. 0040E610  |.  8BCE          MOV     ECX, ESI
  27. 0040E612  |.  E8 3A140600   CALL    ASmartCo.0046FA51
  28. 0040E617  |.  8BC8          MOV     ECX, EAX
  29. 0040E619  |.  E8 8F160600   CALL    ASmartCo.0046FCAD
  30. 0040E61E  |.  6A 00         PUSH    0
  31. 0040E620  |.  8D8E F8780000 LEA     ECX, DWORD PTR DS:[ESI+78F8]
  32. 0040E626  |.  E8 82160600   CALL    ASmartCo.0046FCAD
  33. 0040E62B  |.  6A 00         PUSH    0
  34. 0040E62D  |.  68 1D050000   PUSH    51D
  35. 0040E632  |.  8BCE          MOV     ECX, ESI
  36. 0040E634  |.  E8 18140600   CALL    ASmartCo.0046FA51
  37. 0040E639  |.  8BC8          MOV     ECX, EAX
  38. 0040E63B  |.  E8 6D160600   CALL    ASmartCo.0046FCAD
  39. 0040E640  |.  6A 00         PUSH    0
  40. 0040E642  |.  68 1E050000   PUSH    51E
  41. 0040E647  |.  8BCE          MOV     ECX, ESI
  42. 0040E649  |.  E8 <a href="tel:<a href="tel:03140600">03140600</a>">03140600</a>   CALL    ASmartCo.0046FA51
  43. 0040E64E  |.  8BC8          MOV     ECX, EAX
  44. 0040E650  |.  E8 58160600   CALL    ASmartCo.0046FCAD
  45. 0040E655  |.  6A 00         PUSH    0
  46. 0040E657  |.  E9 D8000000   JMP     ASmartCo.0040E734
  47. 0040E65C  |>  8B45 B0       MOV     EAX, DWORD PTR SS:[EBP-50]    ;这里就是显示那个 trial version 的标题了
  48. 0040E65F  |.  8B8D 10FFFFFF MOV     ECX, DWORD PTR SS:[EBP-F0]
  49. 0040E665  |.  50            PUSH    EAX
  50. 0040E666  |.  51            PUSH    ECX
  51. 0040E667  |.  8D95 20FFFFFF LEA     EDX, DWORD PTR SS:[EBP-E0]
  52. 0040E66D  |.  68 309E5900   PUSH    ASmartCo.00599E30                ;  %s - [ %s ]
  53. 0040E672  |.  52            PUSH    EDX
  54. 0040E673  |.  E8 E858FFFF   CALL    ASmartCo.00403F60
  55. 0040E678  |.  8B9D 20FFFFFF MOV     EBX, DWORD PTR SS:[EBP-E0]       ;  ASmartCo.005F85A0
  56. 0040E67E  |.  83C4 10       ADD     ESP, 10
  57. 0040E681  |.  53            PUSH    EBX                              ;  ASmartCo.005F85A0
  58. 0040E682  |.  8BCE          MOV     ECX, ESI
  59. 0040E684  |.  E8 59150600   CALL    ASmartCo.0046FBE2
  60. 0040E689  |.  8D85 0CFFFFFF LEA     EAX, DWORD PTR SS:[EBP-F4]
  61. 0040E68F  |.  50            PUSH    EAX
  62. 0040E690  |.  8D8D F4FEFFFF LEA     ECX, DWORD PTR SS:[EBP-10C]
  63. 0040E696  |.  51            PUSH    ECX
  64. 0040E697  |.  6A 01         PUSH    1
  65. 0040E699  |.  E8 DC201700   CALL    ASmartCo.0058077A
  66. 0040E69E  |.  8B85 0CFFFFFF MOV     EAX, DWORD PTR SS:[EBP-F4]       ;  USER32.75386D91
  67. 0040E6A4  |.  8986 FC220000 MOV     DWORD PTR DS:[ESI+22FC], EAX
  68. 0040E6AA  |.  85C0          TEST    EAX, EAX
  69. 0040E6AC  |.  74 20         JE      SHORT ASmartCo.0040E6CE
  70. 0040E6AE  |.  8B8E 70240000 MOV     ECX, DWORD PTR DS:[ESI+2470]
  71. 0040E6B4  |.  50            PUSH    EAX
  72. 0040E6B5  |.  51            PUSH    ECX
  73. 0040E6B6  |.  8D95 20FFFFFF LEA     EDX, DWORD PTR SS:[EBP-E0]
  74. 0040E6BC  |.  52            PUSH    EDX
  75. 0040E6BD  |.  E8 9E58FFFF   CALL    ASmartCo.00403F60
  76. 0040E6C2  |.  8B9D 20FFFFFF MOV     EBX, DWORD PTR SS:[EBP-E0]       ;  ASmartCo.005F85A0
  77. 0040E6C8  |.  83C4 0C       ADD     ESP, 0C
  78. 0040E6CB  |.  53            PUSH    EBX                              ;  ASmartCo.005F85A0
  79. 0040E6CC  |.  EB 05         JMP     SHORT ASmartCo.0040E6D3
  80. 0040E6CE  |>  <a href="tel:<a href="tel:68 20955900">68 20955900</a>">68 20955900</a>   PUSH    ASmartCo.00599520                ;  You are running evaluating ActiveSMART. Register to remove limitations.


复制代码


综上所述,修改方案为: 0040E5D7  81==>2E  请仔细体会 。。。

我们发现,这四处关键点类似(特征码 ...):

0040E5FC  |> \33C0          XOR     EAX, EAX                         ;  这里EAX不能清零
0040E5FE  |.  EB 05         JMP     SHORT ASmartCo.0040E605
0040E600  |>  1BC0          SBB     EAX, EAX
0040E602  |.  83D8 FF       SBB     EAX, -1
0040E605  |>  85C0          TEST    EAX, EAX
0040E607  |.  74 53         JE      SHORT ASmartCo.0040E65C          ;  这里不能跳


所以其他几处我们 33CO ==> B801

于是PATCH这四处,但是程序显示注册处为空,so ... 跟踪看下,Patch内存数据让其显示注册给 Nisy ...

Active SMART2.jpg


但是大家发现这样貌似不妥,启动时就会报一个错误,why ... 因为我们把注册信息path进去,程序读取之后很不爽 ...

所以我们还得动个小聪明,这样就不报错了,有兴趣的朋友请去查看补丁自行收藏学习,多改一个字节即可。


Active SMART.jpg

最终成品 ~ (~﹃~)~zZ 去, 虽然玩OD会很累,也不是风华正茂的年纪了,但是我发现自己还是喜欢OD下自己感兴趣的软件,这个爱好自己还是可以收获快乐的。

评分

参与人数 4威望 +108 飘云币 +108 收起 理由
GeekCat + 40 + 40 双进程的没玩过,跟着N大学习~
MOV + 40 + 40 赞一个!N大,还是这么精彩~
0xcb + 8 + 8 赞一个!
sdnyzjzx + 20 + 20 赞一个!

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 1969 天

    [LV.Master]伴坛终老

    发表于 2015-8-8 10:35:02 | 显示全部楼层
    大神出手,教材简单实用

    点评

    软件难度中等,看破文可能难以得其精妙,若有兴趣可以先调试后再来对照破文。  详情 回复 发表于 2015-8-8 10:44
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2021-9-29 15:05
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2015-8-8 10:41:18 | 显示全部楼层
    应该将path => patch, 感谢分享方法,学习了
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2015-8-8 10:44:56 | 显示全部楼层
    轩轩1018 发表于 2015-8-8 10:35
    大神出手,教材简单实用

    软件难度中等,看破文可能难以得其精妙,若有兴趣可以先调试后再来对照破文。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 22:05
  • 签到天数: 2300 天

    [LV.Master]伴坛终老

    发表于 2015-8-8 11:23:52 | 显示全部楼层
    就像是破解对方设置好的一道道关卡,一旦全部通过,心情自然是很愉悦。这叫智慧的挑战。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 15:21
  • 签到天数: 487 天

    [LV.9]以坛为家II

    发表于 2015-8-8 11:27:58 | 显示全部楼层
    我想知道的是这个带参调试的参数是怎么取得的{:soso_e154:}
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 15:21
  • 签到天数: 487 天

    [LV.9]以坛为家II

    发表于 2015-8-8 12:06:16 | 显示全部楼层
    跟踪的时候有看到过这个-O 但是不晓得那个就是参数 是不是需要下 双进程的断点

    点评

    OD 打开调试程序的时候输入从process explorer中获取的参数即可  详情 回复 发表于 2015-8-8 13:16
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 16:07
  • 签到天数: 1093 天

    [LV.10]以坛为家III

    发表于 2015-8-8 12:19:13 | 显示全部楼层

    膜拜神贴,后面的请保持队形~
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2015-8-8 13:16:59 | 显示全部楼层
    Rooking 发表于 2015-8-8 12:06
    跟踪的时候有看到过这个-O 但是不晓得那个就是参数 是不是需要下 双进程的断点

    OD 打开调试程序的时候输入从process explorer中获取的参数即可

    点评

    那个启动跟刷新的时候 会弹出来参数错误 怎么跟呢  详情 回复 发表于 2015-8-8 16:39
    我是跟到最后 跟到那里了 发现可以patch掉这个参数  详情 回复 发表于 2015-8-8 14:01
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 15:21
  • 签到天数: 487 天

    [LV.9]以坛为家II

    发表于 2015-8-8 14:01:08 | 显示全部楼层
    Nisy 发表于 2015-8-8 13:16
    OD 打开调试程序的时候输入从process explorer中获取的参数即可

    我是跟到最后 跟到那里了 发现可以patch掉这个参数

    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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