吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3813|回复: 20

[原创逆向图文] 某CM分析

  [复制链接]
label 发表于 2014-10-18 16:30 | 显示全部楼层 |阅读模式

本帖最后由 label 于 2014-10-18 16:33 编辑

这个CM是今天在吾爱上瞎转悠看到的 觉得有点意思,就玩了下
首先查壳
1.jpg
UPX的 直接用脱壳机脱了!!

脱完壳之后
2.jpg
点击运行.程序 发现无反应我想应该是自校验了~放入OD 下个ExitProcess断点。木有反应  。蛋疼有木有~~~~
在CM下面点评也有
3.jpg
其实这个作者HOOK了自身好些函数的。。就算在ExitProcess中断了  你回溯过去这个地址还是不对的。因为A函数调用 它居然从B函数返回、。。(正常是A函数调用 执行完之后从A函数尾返回)
那么我们下个自校验常用的断点吧
GetFileSize
4.jpg

5.jpg
程序将返回到

  1. 00401189    50              push eax
  2. 0040118A    68 01000000     push 0x1
  3. 0040118F    BB 58020000     mov ebx,0x258
  4. 00401194    E8 770D0100     call KingCeac.00411F10
  5. 00401199    83C4 10         add esp,0x10                             ; 程序将返回到此处
  6. 0040119C    8945 F8         mov dword ptr ss:[ebp-0x8],eax           ; 保存取得文件大小到变量
  7. 0040119F    8B5D FC         mov ebx,dword ptr ss:[ebp-0x4]
  8. 004011A2    85DB            test ebx,ebx
  9. 004011A4    74 09           je short KingCeac.004011AF
  10. 004011A6    53              push ebx
  11. 004011A7    E8 5EFE0000     call KingCeac.0041100A
  12. 004011AC    83C4 04         add esp,0x4
  13. 004011AF    817D F8 0AC4010>cmp dword ptr ss:[ebp-0x8],0x1C40A       ; 比较当前文件大小是否小于0x1c40a   (未脱壳文件大小0x1c40a)
  14. 004011B6    0F8C 0A000000   jl KingCeac.004011C6                     ; 如果小于等于 则跳转实现 将这里改成JMP
  15. 004011BC    6A 00           push 0x0
  16. 004011BE    E8 2FFE0000     call KingCeac.00410FF2                   ; 退出函数
  17. 004011C3    83C4 04         add esp,0x4
  18. 004011C6    68 01030080     push 0x80000301
  19. 004011CB    6A 00           push 0x0




复制代码
6.jpg

保存文件,打开 文件之后 程序正常运行

7.jpg
随便输入注册码
点击注册
提示

8.jpg
程序重启了
典型的重启验证啊


重新载入 程序
搜索ASCII

9.jpg

10.jpg

11.jpg



  1. 00401EEA    58              pop eax
  2. 00401EEB    8945 F8         mov dword ptr ss:[ebp-0x8],eax
  3. 00401EEE    6A 00           push 0x0
  4. 00401EF0    6A 00           push 0x0
  5. 00401EF2    6A 00           push 0x0
  6. 00401EF4    68 01030080     push 0x80000301
  7. 00401EF9    6A 00           push 0x0
  8. 00401EFB    68 01000000     push 0x1
  9. 00401F00    68 04000080     push 0x80000004
  10. 00401F05    6A 00           push 0x0
  11. 00401F07    68 78334300     push KingCeac.00433378                   ; user32
  12. 00401F0C    68 03000000     push 0x3
  13. 00401F11    BB 70020000     mov ebx,0x270
  14. 00401F16    E8 650A0100     call KingCeac.00412980                   ; 读取文件夹下User32内容
  15. 00401F1B    83C4 28         add esp,0x28
  16. 00401F1E    A3 F5434300     mov dword ptr ds:[0x4343F5],eax
  17. 00401F23    6A 00           push 0x0
  18. 00401F25    6A 00           push 0x0
  19. 00401F27    6A 00           push 0x0
  20. 00401F29    68 01030080     push 0x80000301
  21. 00401F2E    6A 00           push 0x0
  22. 00401F30    68 01000000     push 0x1
  23. 00401F35    68 04000080     push 0x80000004
  24. 00401F3A    6A 00           push 0x0
  25. 00401F3C    68 7F334300     push KingCeac.0043337F                   ; CallWindowProcA.dll
  26. 00401F41    68 03000000     push 0x3
  27. 00401F46    BB 70020000     mov ebx,0x270
  28. 00401F4B    E8 300A0100     call KingCeac.00412980                   ; 读取文件夹下CallWindowProcA.dll内容
  29. 00401F50    83C4 28         add esp,0x28
  30. 00401F53    A3 F9434300     mov dword ptr ds:[0x4343F9],eax
  31. 00401F58    833D F5434300 0>cmp dword ptr ds:[0x4343F5],0x0          ; 判断读取当前目录user32内容是否为空
  32. 00401F5F    90              nop                                      ; 这里直接NOP
  33. 00401F60    90              nop
  34. 00401F61    90              nop
  35. 00401F62    90              nop
  36. 00401F63    90              nop
  37. 00401F64    90              nop
  38. 00401F65    68 01030080     push 0x80000301
  39. 00401F6A    6A 00           push 0x0
  40. 00401F6C    FF35 F5434300   push dword ptr ds:[0x4343F5]
  41. 00401F72    68 01000000     push 0x1
  42. 00401F77    BB A4020000     mov ebx,0x2A4
  43. 00401F7C    E8 DF0A0100     call KingCeac.00412A60
  44. 00401F81    83C4 10         add esp,0x10
  45. 00401F84    8945 E8         mov dword ptr ss:[ebp-0x18],eax
  46. 00401F87    8B45 E8         mov eax,dword ptr ss:[ebp-0x18]
  47. 00401F8A    50              push eax
  48. 00401F8B    8B5D F4         mov ebx,dword ptr ss:[ebp-0xC]
  49. 00401F8E    85DB            test ebx,ebx
  50. 00401F90    74 09           je short KingCeac.00401F9B
  51. 00401F92    53              push ebx
  52. 00401F93    E8 72F00000     call KingCeac.0041100A
  53. 00401F98    83C4 04         add esp,0x4
  54. 00401F9B    58              pop eax
  55. 00401F9C    8945 F4         mov dword ptr ss:[ebp-0xC],eax
  56. 00401F9F    68 01030080     push 0x80000301
  57. 00401FA4    6A 00           push 0x0
  58. 00401FA6    FF35 F9434300   push dword ptr ds:[0x4343F9]
  59. 00401FAC    68 01000000     push 0x1
  60. 00401FB1    BB A4020000     mov ebx,0x2A4
  61. 00401FB6    E8 A50A0100     call KingCeac.00412A60
  62. 00401FBB    83C4 10         add esp,0x10
  63. 00401FBE    8945 E8         mov dword ptr ss:[ebp-0x18],eax
  64. 00401FC1    8B45 E8         mov eax,dword ptr ss:[ebp-0x18]
  65. 00401FC4    50              push eax
  66. 00401FC5    8B5D F0         mov ebx,dword ptr ss:[ebp-0x10]
  67. 00401FC8    85DB            test ebx,ebx
  68. 00401FCA    74 09           je short KingCeac.00401FD5
  69. 00401FCC    53              push ebx
  70. 00401FCD    E8 38F00000     call KingCeac.0041100A
  71. 00401FD2    83C4 04         add esp,0x4
  72. 00401FD5    58              pop eax
  73. 00401FD6    8945 F0         mov dword ptr ss:[ebp-0x10],eax
  74. 00401FD9    68 04000080     push 0x80000004
  75. 00401FDE    6A 00           push 0x0
  76. 00401FE0    8B45 F4         mov eax,dword ptr ss:[ebp-0xC]
  77. 00401FE3    85C0            test eax,eax
  78. 00401FE5    75 05           jnz short KingCeac.00401FEC
  79. 00401FE7    B8 A0324300     mov eax,KingCeac.004332A0
  80. 00401FEC    50              push eax
  81. 00401FED    68 01000000     push 0x1
  82. 00401FF2    BB 98010000     mov ebx,0x198
  83. 00401FF7    E8 34010100     call KingCeac.00412130
  84. 00401FFC    83C4 10         add esp,0x10
  85. 00401FFF    8945 E8         mov dword ptr ss:[ebp-0x18],eax
  86. 00402002    68 05000080     push 0x80000005
  87. 00402007    6A 00           push 0x0
  88. 00402009    8B45 E8         mov eax,dword ptr ss:[ebp-0x18]
  89. 0040200C    85C0            test eax,eax
  90. 0040200E    75 05           jnz short KingCeac.00402015
  91. 00402010    B8 C3324300     mov eax,KingCeac.004332C3
  92. 00402015    50              push eax
  93. 00402016    68 01000000     push 0x1
  94. 0040201B    BB 08000000     mov ebx,0x8
  95. 00402020    B8 D08E4100     mov eax,KingCeac.00418ED0
  96. 00402025    E8 A6FD0000     call KingCeac.00411DD0
  97. 0040202A    83C4 10         add esp,0x10
  98. 0040202D    8945 E4         mov dword ptr ss:[ebp-0x1C],eax
  99. 00402030    8B5D E8         mov ebx,dword ptr ss:[ebp-0x18]
  100. 00402033    85DB            test ebx,ebx
  101. 00402035    74 09           je short KingCeac.00402040
  102. 00402037    53              push ebx
  103. 00402038    E8 CDEF0000     call KingCeac.0041100A
  104. 0040203D    83C4 04         add esp,0x4
  105. 00402040    8B45 E4         mov eax,dword ptr ss:[ebp-0x1C]
  106. 00402043    50              push eax
  107. 00402044    8B5D EC         mov ebx,dword ptr ss:[ebp-0x14]
  108. 00402047    85DB            test ebx,ebx
  109. 00402049    74 09           je short KingCeac.00402054
  110. 0040204B    53              push ebx
  111. 0040204C    E8 B9EF0000     call KingCeac.0041100A
  112. 00402051    83C4 04         add esp,0x4
  113. 00402054    58              pop eax
  114. 00402055    8945 EC         mov dword ptr ss:[ebp-0x14],eax
  115. 00402058    68 01030080     push 0x80000301
  116. 0040205D    6A 00           push 0x0
  117. 0040205F    FF35 F5434300   push dword ptr ds:[0x4343F5]
  118. 00402065    68 01000000     push 0x1
  119. 0040206A    BB 78020000     mov ebx,0x278
  120. 0040206F    E8 FC0B0100     call KingCeac.00412C70
  121. 00402074    83C4 10         add esp,0x10
  122. 00402077    68 01030080     push 0x80000301
  123. 0040207C    6A 00           push 0x0
  124. 0040207E    FF35 F9434300   push dword ptr ds:[0x4343F9]
  125. 00402084    68 01000000     push 0x1
  126. 00402089    BB 78020000     mov ebx,0x278
  127. 0040208E    E8 DD0B0100     call KingCeac.00412C70
  128. 00402093    83C4 10         add esp,0x10
  129. 00402096    FF75 F0         push dword ptr ss:[ebp-0x10]
  130. 00402099    FF75 EC         push dword ptr ss:[ebp-0x14]
  131. 0040209C    B9 02000000     mov ecx,0x2
  132. 004020A1    E8 56F0FFFF     call KingCeac.004010FC
  133. 004020A6    83C4 08         add esp,0x8
  134. 004020A9    8945 E8         mov dword ptr ss:[ebp-0x18],eax
  135. 004020AC    8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
  136. 004020AF    50              push eax
  137. 004020B0    FF75 E8         push dword ptr ss:[ebp-0x18]
  138. 004020B3    E8 C4F7FFFF     call KingCeac.0040187C
  139. 004020B8    83C4 08         add esp,0x8
  140. 004020BB    83F8 00         cmp eax,0x0
  141. 004020BE    B8 00000000     mov eax,0x0
  142. 004020C3    0F94C0          sete al
  143. 004020C6    8945 E4         mov dword ptr ss:[ebp-0x1C],eax
  144. 004020C9    8B5D E8         mov ebx,dword ptr ss:[ebp-0x18]
  145. 004020CC    85DB            test ebx,ebx
  146. 004020CE    74 09           je short KingCeac.004020D9
  147. 004020D0    53              push ebx
  148. 004020D1    E8 34EF0000     call KingCeac.0041100A                   ; 判断注册码是否正确
  149. 004020D6    83C4 04         add esp,0x4
  150. 004020D9    837D E4 00      cmp dword ptr ss:[ebp-0x1C],0x0
  151. 004020DD    90              nop                                      ; NOP
  152. 004020DE    90              nop
  153. 004020DF    90              nop
  154. 004020E0    90              nop
  155. 004020E1    90              nop
  156. 004020E2    90              nop
  157. 004020E3    E8 68000000     call KingCeac.00402150                   ; 成功CALL
  158. 004020E8    E9 05000000     jmp KingCeac.004020F2

复制代码

12.jpg

算法 分析简要说明
取注册码MD5保存到运行目录下CallWindowProcA.dll
保存00到 运行目录user32
13.jpg
CM下载地址
http://yunpan.cn/cssXJPRqzS55z (提取码:2da8)



评分

参与人数 21HB +28 THX +15 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
29590 + 1
Jawon + 1
创客者V2.0 + 1
一路走来不容易 + 1
Soul1999 + 1
冷亦飞 + 1
消逝的过去 + 1
三月十六 + 1
侠客行 + 1
SmallEXpel + 1
y_jiping + 1
hnymsh + 1
lies + 1
逍遥枷锁 + 2 + 1 论坛有你更精彩!感谢楼主!
十月 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
pnccm + 3 + 1 你将受到所有人的崇拜!
小明同学 + 3 + 1 Get!Thanks!
Shark恒 + 10 + 1 支持原创,感谢楼主!
pililei + 1 + 1 我想说我还看不懂
AoQc + 1 --------

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
keke120 发表于 2014-10-18 16:57 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
彡墨鱼灬丶 发表于 2014-10-18 17:32 | 显示全部楼层

{:5_190:}又懂了一点知识,感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-18 22:25 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
小明同学 发表于 2014-10-19 08:15 | 显示全部楼层

看不懂.....
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
bigeorry 发表于 2014-10-27 17:31 来自手机端 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
bigeorry 发表于 2014-10-27 17:39 来自手机端 | 显示全部楼层

感谢楼主分享!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
520Kelly 发表于 2014-11-19 16:43 | 显示全部楼层

膜拜玩mfc的大神、、
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
飞行太保 发表于 2014-11-19 17:48 | 显示全部楼层

支持原创教程 谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ryangroup 该用户已被删除
ryangroup 发表于 2014-11-25 15:48 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!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

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