吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3048|回复: 9

[转载技术] QQ密码监控器邮箱版 3.5 完全注册分析

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

【软件名称】QQ密码监控器邮箱版 3.5
【软件大小】
【原版下载】http://zhongyuantech.com.cn/src/EmailDDLook/index.html
【保护方式】本地验证加网络验证
【软件简介】QQ密码监控器邮箱版
QQ密码监控器邮箱版 又名 QQ密码监控器 QQ密码记录器 和 QQ密码键盘记录器
可以监控QQ2009和QQ2008所有版本的QQ密码,用户只要登录了QQ,密码马上就会被软件记录.
并且可以将记录发送到你设置的邮箱地址.
未注册用户限制:
软件里面只显示 部分密码,并且不能设置上报邮箱地址
提示: 软件打开一次,以后后台监视器会自动运行,并自动记录。


严重声明:请不要将本软件用于非法用途,否则后果自负!
【逆向声明】
------------------------------------------------------------------------
【逆向过程】首先peid查壳,Microsoft Visual C++ 6.0 ,无壳,无壳相对简单些啦。先直接跑一遍程序,了解一下程序注册流程。点一下设置密码,提示未注册,会弹出注册框,这个注册和以前注册不一样了,有机器码了,随便输入注册码和订单号。点确定,是重启验证的。以前说过,重启验证无非就是写注册表或文件了。
od载入程序,查找当前模块中的名称,找到
  1. 名称位于 QQ2009密, 条目 1915
  2. 地址=0043C2AC
  3. 区段=.rdata
  4. 类型=输入    (已知)
  5. 名称=KERNEL32.GetProfileStringA
复制代码
右键在每个参考上设置断点。F9运行程序,第一次会断在
  1. 004037D2  |.  FF15 ACC24300 call    near dword ptr [<&KERNEL32.GetPr>; \GetProfileStringA
复制代码
向上观察一下,好像是读取密码之类的,这个不是我们所要的,F2取消这个断点,F9继续 会断在下面
  1. 0040E930  |.  8B2D ACC24300 mov     ebp, dword ptr [<&KERNEL32.GetPr>;  kernel32.GetProfileStringA
  2. 0040E936  |.  68 00010000   push    100                              ; /BufSize = 100 (256.)
  3. 0040E93B  |.  F3:AB         rep     stos dword ptr es:[edi]          ; |
  4. 0040E93D  |.  8D4C24 18     lea     ecx, dword ptr [esp+18]          ; |
  5. 0040E941  |.  51            push    ecx                              ; |ReturnBuffer
  6. 0040E942  |.  68 7CED4400   push    offset                      ; |Default = ""
  7. 0040E947  |.  68 84C64400   push    offset                ; |notetext
  8. 0040E94C  |.  52            push    edx                              ; |Section
  9. 0040E94D  |.  FFD5          call    near ebp                         ; \GetProfileStringA
复制代码
以上是读取注册码,F8单步向下走
  1. 0040E98B  |.  68 00010000   push    100
  2. 0040E990  |.  51            push    ecx
  3. 0040E991  |.  68 7CED4400   push    offset
  4. 0040E996  |.  68 7CC64400   push    offset                  ;  noteid
  5. 0040E99B  |.  52            push    edx
  6. 0040E99C  |.  FFD5          call    near ebp
复制代码
以上是读取订单号。一直F8,
  1. 0040E9DA  |.  E8 718CFFFF   call                         ;  得到机器码函数
复制代码
以上这个call是读取硬盘相关的东西。大家可能会问,我怎么知道的,呵呵,单步跟出来的结果,单步跟时要注意观察OD各个窗口的变化。一直F8,因为程序读取了注册码之后一定会验证的,所以我们单步跟
  1. 00409066  |.  51            push    ecx
  2. 00409067  |.  8BCC          mov     ecx, esp
  3. 00409069  |.  896424 14     mov     dword ptr [esp+14], esp
  4. 0040906D  |.  68 6CED4400   push    offset
  5. 00409072  |.  E8 301B0200   call   
  6. 00409077  |.  B9 10ED4400   mov     ecx, offset
  7. 0040907C  |.  E8 DF5C0000   call  
复制代码
到0040907c这个call之后一定要F7跟进,然后F8单步来到
  1. 0040EDC4  |.  896424 28     mov     dword ptr [esp+28], esp
  2. 0040EDC8  |.  52            push    edx
  3. 0040EDC9  |.  E8 D9BD0100   call   
  4. 0040EDCE  |.  8BCD          mov     ecx, ebp
  5. 0040EDD0  |.  E8 7BFDFFFF   call                         ;  此处为验证处了
复制代码
到40EDD0还是F7跟进。就是算法过程了
  1. 0040EB50 >/$  6A FF         push    -1                               ;  sub_40EB50
  2. 0040EB52  |.  68 C0A54300   push                 ;  SE 处理程序安装
  3. 0040EB57  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
  4. 0040EB5D  |.  50            push    eax
  5. 0040EB5E  |.  64:8925 00000>mov     dword ptr fs:[0], esp
  6. 0040EB65  |.  83EC 10       sub     esp, 10
  7. 0040EB68  |.  53            push    ebx
  8. 0040EB69  |.  55            push    ebp
  9. 0040EB6A  |.  56            push    esi
  10. 0040EB6B  |.  57            push    edi
  11. 0040EB6C  |.  8BD9          mov     ebx, ecx
  12. 0040EB6E  |.  8D6B 20       lea     ebp, dword ptr [ebx+20]
  13. 0040EB71  |.  68 7CED4400   push    offset
  14. 0040EB76  |.  8BCD          mov     ecx, ebp
  15. 0040EB78  |.  C74424 2C 000>mov     dword ptr [esp+2C], 0
  16. 0040EB80  |.  896C24 20     mov     dword ptr [esp+20], ebp
  17. 0040EB84  |.  E8 32C40100   call   
  18. 0040EB89  |.  8D43 0C       lea     eax, dword ptr [ebx+C]
  19. 0040EB8C  |.  8D4C24 10     lea     ecx, dword ptr [esp+10]
  20. 0040EB90  |.  50            push    eax
  21. 0040EB91  |.  E8 11C00100   call   
  22. 0040EB96  |.  C64424 28 01  mov     byte ptr [esp+28], 1
  23. 0040EB9B  |.  8B4B 24       mov     ecx, dword ptr [ebx+24]
  24. 0040EB9E  |.  8B41 F8       mov     eax, dword ptr [ecx-8]
  25. 0040EBA1  |.  83F8 0A       cmp     eax, 0A
  26. 0040EBA4  |.  7D 26         jge     short
  27. 0040EBA6  |.  8D4C24 10     lea     ecx, dword ptr [esp+10]
  28. 0040EBAA  |.  C64424 28 00  mov     byte ptr [esp+28], 0
  29. 0040EBAF  |.  E8 7EC20100   call   
  30. 0040EBB4  |.  8D4C24 30     lea     ecx, dword ptr [esp+30]
  31. 0040EBB8  |.  C74424 28 FFF>mov     dword ptr [esp+28], -1
  32. 0040EBC0  |.  E8 6DC20100   call   
  33. 0040EBC5  |.  33C0          xor     eax, eax
  34. 0040EBC7  |.  E9 7F010000   jmp     
  35. 0040EBCC >|>  8B5424 10     mov     edx, dword ptr [esp+10]          ;  用户名送edx
  36. 0040EBD0  |.  837A F8 0A    cmp     dword ptr [edx-8], 0A            ;  比较用户名长度是不是为0x0A
  37. 0040EBD4  |.  7D 26         jge     short                ;  小于0x0a则跳出
  38. 0040EBD6  |.  8D4C24 10     lea     ecx, dword ptr [esp+10]
  39. 0040EBDA  |.  C64424 28 00  mov     byte ptr [esp+28], 0
  40. 0040EBDF  |.  E8 4EC20100   call   
  41. 0040EBE4  |.  8D4C24 30     lea     ecx, dword ptr [esp+30]
  42. 0040EBE8  |.  C74424 28 FFF>mov     dword ptr [esp+28], -1
  43. 0040EBF0  |.  E8 3DC20100   call   
  44. 0040EBF5  |.  33C0          xor     eax, eax
  45. 0040EBF7  |.  E9 4F010000   jmp     
  46. 0040EBFC >|>  68 7CED4400   push    offset                      ;  loc_40EBFC
  47. 0040EC01  |.  8D4C24 1C     lea     ecx, dword ptr [esp+1C]
  48. 0040EC05  |.  E8 96C20100   call   
  49. 0040EC0A  |.  68 7CED4400   push    offset
  50. 0040EC0F  |.  8D4C24 18     lea     ecx, dword ptr [esp+18]
  51. 0040EC13  |.  C64424 2C 02  mov     byte ptr [esp+2C], 2
  52. 0040EC18  |.  E8 83C20100   call   
  53. 0040EC1D  |.  C64424 28 03  mov     byte ptr [esp+28], 3
  54. 0040EC22  |.  8B4B 24       mov     ecx, dword ptr [ebx+24]
  55. 0040EC25  |.  33C0          xor     eax, eax
  56. 0040EC27  |.  8B51 F8       mov     edx, dword ptr [ecx-8]           ;  机器码长度送edx
  57. 0040EC2A  |.  85D2          test    edx, edx
  58. 0040EC2C  |.  7E 55         jle     short
  59. 0040EC2E >|>  0FBE2C08      /movsx   ebp, byte ptr [eax+ecx]         ;  将机器码逐个送ebp
  60. 0040EC32  |.  8D78 01       |lea     edi, dword ptr [eax+1]
  61. 0040EC35  |.  BE 68000000   |mov     esi, 68
  62. 0040EC3A  |.  3BFA          |cmp     edi, edx                        ;  如果edi>=机器码长度跳
  63. 0040EC3C  |.  7D 07         |jge     short
  64. 0040EC3E  |.  0FBE7408 01   |movsx   esi, byte ptr [eax+ecx+1]       ;  将机器码下一位送esi
  65. 0040EC43  |.  03F5          |add     esi, ebp                        ;  esi+=ebp
  66. 0040EC45 >|>  8D45 05       |lea     eax, dword ptr [ebp+5]          ;  eax=ebp+5
  67. 0040EC48  |.  B9 0A000000   |mov     ecx, 0A                         ;  ecx=0xA
  68. 0040EC4D  |.  0BC6          |or      eax, esi                        ;  eax|=esi
  69. 0040EC4F  |.  99            |cdq
  70. 0040EC50  |.  F7F9          |idiv    ecx                             ;  eax/0xA
  71. 0040EC52  |.  52            |push    edx
  72. 0040EC53  |.  8D5424 18     |lea     edx, dword ptr [esp+18]
  73. 0040EC57  |.  68 14BE4400   |push    offset                      ;  %d
  74. 0040EC5C  |.  52            |push    edx
  75. 0040EC5D  |.  E8 FEA50100   |call    ;  余数送给一个字符串[esp+0x18]
  76. 0040EC62  |.  83C4 0C       |add     esp, 0C
  77. 0040EC65  |.  8D4424 14     |lea     eax, dword ptr [esp+14]
  78. 0040EC69  |.  8D4C24 18     |lea     ecx, dword ptr [esp+18]
  79. 0040EC6D  |.  50            |push    eax
  80. 0040EC6E  |.  E8 D7C50100   |call    ;  合并字符串
  81. 0040EC73  |.  8B4B 24       |mov     ecx, dword ptr [ebx+24]         ;  机器码送ecx
  82. 0040EC76  |.  8BC7          |mov     eax, edi                        ;  eax=edi
  83. 0040EC78  |.  8B51 F8       |mov     edx, dword ptr [ecx-8]          ;  机器码长度送edx
  84. 0040EC7B  |.  3BC2          |cmp     eax, edx
  85. 0040EC7D  |.^ 7C AF         \jl      short
  86. 0040EC7F  |.  8B6C24 1C     mov     ebp, dword ptr [esp+1C]
  87. 0040EC83 >|>  8B4C24 10     mov     ecx, dword ptr [esp+10]          ;  loc_40EC83
  88. 0040EC87  |.  8B5424 18     mov     edx, dword ptr [esp+18]
  89. 0040EC8B  |.  51            push    ecx
  90. 0040EC8C  |.  52            push    edx
  91. 0040EC8D  |.  E8 68B80000   call    <__mbscmp>                       ;  本地验证,比较输入的注册码是否正确
  92. 0040EC92  |.  83C4 08       add     esp, 8
  93. 0040EC95  |.  85C0          test    eax, eax
  94. 0040EC97  |.  74 3F         je      short                ;  本地验证失败则跳了
  95. 0040EC99  |.  8D4C24 14     lea     ecx, dword ptr [esp+14]
  96. 0040EC9D  |.  C64424 28 02  mov     byte ptr [esp+28], 2
  97. 0040ECA2  |.  E8 8BC10100   call   
  98. 0040ECA7  |.  8D4C24 18     lea     ecx, dword ptr [esp+18]
  99. 0040ECAB  |.  C64424 28 01  mov     byte ptr [esp+28], 1
  100. 0040ECB0  |.  E8 7DC10100   call   
  101. 0040ECB5  |.  8D4C24 10     lea     ecx, dword ptr [esp+10]
  102. 0040ECB9  |.  C64424 28 00  mov     byte ptr [esp+28], 0
  103. 0040ECBE  |.  E8 6FC10100   call   
  104. 0040ECC3  |.  8D4C24 30     lea     ecx, dword ptr [esp+30]
  105. 0040ECC7  |.  C74424 28 FFF>mov     dword ptr [esp+28], -1
  106. 0040ECCF  |.  E8 5EC10100   call   
  107. 0040ECD4  |.  33C0          xor     eax, eax
  108. 0040ECD6  |.  EB 73         jmp     short
  109. 0040ECD8 >|>  C743 14 01000>mov     dword ptr [ebx+14], 1            ;  loc_40ECD8
  110. 0040ECDF  |.  8B3D C8C24300 mov     edi, dword ptr [<&KERNEL32.Sleep>;  kernel32.Sleep
  111. 0040ECE5  |.  33F6          xor     esi, esi
  112. 0040ECE7 >|>  8BCB          /mov     ecx, ebx                        ;  loc_40ECE7
  113. 0040ECE9  |.  E8 32FDFFFF   |call                        ;  此处为网络验证了
  114. 0040ECEE  |.  85C0          |test    eax, eax
  115. 0040ECF0  |.  75 0D         |jnz     short
  116. 0040ECF2  |.  68 E8030000   |push    3E8
  117. 0040ECF7  |.  FFD7          |call    near edi
  118. 0040ECF9  |.  46            |inc     esi
  119. 0040ECFA  |.  83FE 03       |cmp     esi, 3
  120. 0040ECFD  |.^ 7C E8         \jl      short
  121. 0040ECFF >|>  68 E0C64400   push    offset                      ;  loc_40ECFF
  122. 0040ED04  |.  8BCD          mov     ecx, ebp
  123. 0040ED06  |.  E8 B0C20100   call   
  124. 0040ED0B  |.  8D4C24 14     lea     ecx, dword ptr [esp+14]
  125. 0040ED0F  |.  C64424 28 02  mov     byte ptr [esp+28], 2
  126. 0040ED14  |.  E8 19C10100   call   
  127. 0040ED19  |.  8D4C24 18     lea     ecx, dword ptr [esp+18]
  128. 0040ED1D  |.  C64424 28 01  mov     byte ptr [esp+28], 1
  129. 0040ED22  |.  E8 0BC10100   call   
  130. 0040ED27  |.  8D4C24 10     lea     ecx, dword ptr [esp+10]
  131. 0040ED2B  |.  C64424 28 00  mov     byte ptr [esp+28], 0
  132. 0040ED30  |.  E8 FDC00100   call   
  133. 0040ED35  |.  8D4C24 30     lea     ecx, dword ptr [esp+30]
  134. 0040ED39  |.  C74424 28 FFF>mov     dword ptr [esp+28], -1
  135. 0040ED41  |.  E8 ECC00100   call   
  136. 0040ED46  |.  B8 01000000   mov     eax, 1
  137. 0040ED4B >|>  8B4C24 20     mov     ecx, dword ptr [esp+20]          ;  loc_40ED4B
  138. 0040ED4F  |.  5F            pop     edi
  139. 0040ED50  |.  5E            pop     esi
  140. 0040ED51  |.  5D            pop     ebp
  141. 0040ED52  |.  5B            pop     ebx
  142. 0040ED53  |.  64:890D 00000>mov     dword ptr fs:[0], ecx
  143. 0040ED5A  |.  83C4 1C       add     esp, 1C
  144. 0040ED5D  \.  C2 0400       retn    4
复制代码



评分

参与人数 19HB +24 THX +16 收起 理由
花盗睡鼠 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
attackmyth + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
Jawon + 1
24567 + 2
后学真 + 1
消逝的过去 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
liugu0hai + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
hackysh + 1
lies + 1
NLBXB + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
adae00000 + 1 + 1 感谢详细分析啊
374237370 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
rgbwcwmd + 2 + 1 好人有好报!你的热心我永远不忘!谢谢!
Shark恒 + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!!
1697817057 + 3 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
逍遥枷锁 + 4 + 1 好人有好报!你的热心我永远不忘!谢谢!
China小二 + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!
轻轻不语 + 2 + 1 评分=感恩!简单却充满爱!感谢您的作品!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
tbs007 发表于 2015-4-3 16:58 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
hackysh 发表于 2022-2-23 18:04 | 显示全部楼层


[快捷回复]-感谢楼主热心分享!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ghostxu 发表于 2022-3-9 05:01 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-3-11 04:26 | 显示全部楼层

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


[快捷回复]-软件反汇编逆向分析,软件安全必不可少!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2022-11-24 06:46 | 显示全部楼层

看起来有点复杂,收藏先,有空研究一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2022-12-17 06:52 | 显示全部楼层

正需要,过来学习内容!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2023-4-18 13:12 | 显示全部楼层

感谢分享,有备无患
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2023-5-17 20:36 | 显示全部楼层

谢谢你  好东西 支持你!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!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

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