crackme_zapline分析

  1 【破文标题】crackme_zapline 分析
  2 【破文作者】CloAk
  3 【作者邮箱】1211223967@qq.com
  4 【作者主页】
  5 【破解工具】OD,...
  6 【破解平台】Windows
  7 ------------------------------------------------------------------------
  8 【破解过程】//zaplineCreackme 分析
  9
 10 // 首先,  程序没有按钮 目测使用 bp GetWindowText
 11
 12 // 早先已经调试过, 但是因为没仔细看, 研究了半天
 13
 14 // 首先下 bp GetWindowTextW 断下返回来到下面,
 15
 16 00EBCA12  |.  56            PUSH ESI                                 ; /Count = 0x8
 17 00EBCA13  |.  50            PUSH EAX                                 ; |Buffer = 00000007
 18 00EBCA14  |.  8B03          MOV EAX, DWORD PTR DS:[EBX]              ; |
 19 00EBCA16  |.  50            PUSH EAX                                 ; |hWnd = 00000007
 20 00EBCA17  |.  FF15 E002ED00 CALL DWORD PTR DS:[<&USER32.GetWindowTex>; \GetWindowTextW
 21 00EBCA1D  |.  8BF0          MOV ESI, EAX
 22 00EBCA1F  |.  83FE FF       CMP ESI, -0x1
 23 00EBCA22  |.  75 13         JNZ SHORT 00EBCA37
 24
 25 // 上面的地方没有上来, 走到retn 来到下面
 26
 27 00EBCA60  /$  53            PUSH EBX
 28 00EBCA61  |.  56            PUSH ESI
 29 00EBCA62  |.  8BF1          MOV ESI, ECX
 30 00EBCA64  |.  57            PUSH EDI
 31 00EBCA65  |.  8DBE 78030000 LEA EDI, DWORD PTR DS:[ESI+0x378]
 32 00EBCA6B  |.  57            PUSH EDI
 33 00EBCA6C  |.  8D8E 84030000 LEA ECX, DWORD PTR DS:[ESI+0x384]
 34 00EBCA72  |.  E8 59FFFFFF   CALL 00EBC9D0                            ;  // 读取注册名
 35 00EBCA77  |.  8D86 7C030000 LEA EAX, DWORD PTR DS:[ESI+0x37C]        ;  ** 来到这里
 36 00EBCA7D  |.  50            PUSH EAX
 37 00EBCA7E  |.  8D8E 88030000 LEA ECX, DWORD PTR DS:[ESI+0x388]
 38 00EBCA84  |.  E8 47FFFFFF   CALL 00EBC9D0                            ;  // 读取代码
 39 00EBCA89  |.  8D9E 80030000 LEA EBX, DWORD PTR DS:[ESI+0x380]
 40 00EBCA8F  |.  53            PUSH EBX                                 ;  // 这两个参数是一样的 所以先不管了
 41 00EBCA90  |.  57            PUSH EDI                                 ; // 继续走过这个call  这个里边你可以自己跟一下
 42 00EBCA91  |.  E8 1AFDFFFF   CALL 00EBC7B0                            ;  // compare?
 43 00EBCA96  |.  83C4 08       ADD ESP, 0x8
 44 00EBCA99  |.  84C0          TEST AL, AL
 45 00EBCA9B  |.  74 33         JE SHORT 00EBCAD0
 46 00EBCA9D  |.  8B4E 04       MOV ECX, DWORD PTR DS:[ESI+0x4]
 47 00EBCAA0  |.  6A 35         PUSH 0x35                                ; /TimerID = 35 (53.)
 48 00EBCAA2  |.  51            PUSH ECX                                 ; |hWnd = NULL
 49 00EBCAA3  |.  FF15 3003ED00 CALL DWORD PTR DS:[<&USER32.KillTimer>]  ; \KillTimer
 50 00EBCAA9  |.  8B56 04       MOV EDX, DWORD PTR DS:[ESI+0x4]
 51 00EBCAAC  |.  6A 36         PUSH 0x36                                ; /TimerID = 36 (54.)
 52 00EBCAAE  |.  52            PUSH EDX                                 ; |hWnd = 009D0000
 53 00EBCAAF  |.  FF15 3003ED00 CALL DWORD PTR DS:[<&USER32.KillTimer>]  ; \KillTimer
 54 00EBCAB5  |.  57            PUSH EDI
 55 00EBCAB6  |.  8BCB          MOV ECX, EBX
 56 00EBCAB8  |.  E8 83EDFEFF   CALL 00EAB840
 57 00EBCABD  |.  8B46 04       MOV EAX, DWORD PTR DS:[ESI+0x4]
 58 00EBCAC0  |.  6A 00         PUSH 0x0                                 ; /Timerproc = NULL
 59 00EBCAC2  |.  68 C8000000   PUSH 0xC8                                ; |Timeout = 200. ms
 60 00EBCAC7  |.  6A 34         PUSH 0x34                                ; |TimerID = 34 (52.)
 61 00EBCAC9  |.  50            PUSH EAX                                 ; |hWnd = NULL
 62 00EBCACA  |.  FF15 F002ED00 CALL DWORD PTR DS:[<&USER32.SetTimer>]   ; \SetTimer
 63 00EBCAD0  |>  5F            POP EDI                                  ;  009DF938
 64 00EBCAD1  |.  5E            POP ESI                                  ;  009DF938
 65 00EBCAD2  |.  5B            POP EBX                                  ;  009DF938
 66 00EBCAD3  \.  C3            RETN
 67
 68 // 走过retn来到下面这里
 69 00EBCAE0  /$  53            PUSH EBX
 70 00EBCAE1  |.  56            PUSH ESI
 71 00EBCAE2  |.  57            PUSH EDI
 72 00EBCAE3  |.  8BF1          MOV ESI, ECX
 73 00EBCAE5  |.  E8 76FFFFFF   CALL 00EBCA60                            ;  ** 在这里
 74 00EBCAEA  |.  8B96 78030000 MOV EDX, DWORD PTR DS:[ESI+0x378]        ;  读取注册名
 75 00EBCAF0  |.  8B4A F4       MOV ECX, DWORD PTR DS:[EDX-0xC]          ;  长度
 76 00EBCAF3  |.  33DB          XOR EBX, EBX
 77 00EBCAF5  |.  33C0          XOR EAX, EAX
 78 00EBCAF7  |.  85C9          TEST ECX, ECX
 79 00EBCAF9  |.  7E 1A         JLE SHORT 00EBCB15
 80 00EBCAFB  |.  EB 03         JMP SHORT 00EBCB00
 81 00EBCAFD  |   8D49 00       LEA ECX, DWORD PTR DS:[ECX]
 82 00EBCB00  |>  85C0          /TEST EAX, EAX
 83 00EBCB02  |.  78 44         |JS SHORT 00EBCB48
 84 00EBCB04  |.  3BC1          |CMP EAX, ECX
 85 00EBCB06  |.  7F 40         |JG SHORT 00EBCB48
 86 00EBCB08  |.  0FB73A        |MOVZX EDI, WORD PTR DS:[EDX]
 87 00EBCB0B  |.  40            |INC EAX
 88 00EBCB0C  |.  03DF          |ADD EBX, EDI
 89 00EBCB0E  |.  83C2 02       |ADD EDX, 0x2
 90 00EBCB11  |.  3BC1          |CMP EAX, ECX
 91 00EBCB13  |.^ 7C EB         \JL SHORT 00EBCB00                       ;  累加用户名ascii码
 92 00EBCB15  |>  8BB6 7C030000 MOV ESI, DWORD PTR DS:[ESI+0x37C]
 93 00EBCB1B  |.  8B4E F4       MOV ECX, DWORD PTR DS:[ESI-0xC]
 94 00EBCB1E  |.  33FF          XOR EDI, EDI
 95 00EBCB20  |.  33C0          XOR EAX, EAX
 96 00EBCB22  |.  85C9          TEST ECX, ECX
 97 00EBCB24  |.  7E 17         JLE SHORT 00EBCB3D
 98 00EBCB26  |.  8BD6          MOV EDX, ESI
 99 00EBCB28  |>  85C0          /TEST EAX, EAX
100 00EBCB2A  |.  78 1C         |JS SHORT 00EBCB48
101 00EBCB2C  |.  3BC1          |CMP EAX, ECX
102 00EBCB2E  |.  7F 18         |JG SHORT 00EBCB48
103 00EBCB30  |.  0FB732        |MOVZX ESI, WORD PTR DS:[EDX]
104 00EBCB33  |.  40            |INC EAX
105 00EBCB34  |.  03FE          |ADD EDI, ESI
106 00EBCB36  |.  83C2 02       |ADD EDX, 0x2
107 00EBCB39  |.  3BC1          |CMP EAX, ECX
108 00EBCB3B  |.^ 7C EB         \JL SHORT 00EBCB28                       ;  累加注册码ascii码
109 00EBCB3D  |>  33C0          XOR EAX, EAX
110 00EBCB3F  |.  3BDF          CMP EBX, EDI                                      ; 比较累加的数值对不对
111 00EBCB41  |.  5F            POP EDI                                  ;  009DF938
112 00EBCB42  |.  5E            POP ESI                                  ;  009DF938
113 00EBCB43      0F94C0        SETE AL                        // 这里可以改 setnt
114 00EBCB46  |.  5B            POP EBX                                  ;  009DF938
115 00EBCB47  |.  C3            RETN
116
117 // 然后继续走过这个call
118
119 00EBCCCE  |.  E8 0DFEFFFF   CALL 00EBCAE0
120 00EBCCD3  |.  85C0          TEST EAX, EAX                            ;  ** 来到这里
121 00EBCCD5      74 4D         JE SHORT 00EBCD24
122 00EBCCD7  |.  8B46 04       MOV EAX, DWORD PTR DS:[ESI+0x4]
123 00EBCCDA  |.  6A 34         PUSH 0x34                                ; /TimerID = 34 (52.)
124 00EBCCDC  |.  50            PUSH EAX                                 ; |hWnd = 00000035
125 00EBCCDD  |.  FF15 3003ED00 CALL DWORD PTR DS:[<&USER32.KillTimer>]  ; \KillTimer
126 00EBCCE3  |.  8B4E 04       MOV ECX, DWORD PTR DS:[ESI+0x4]
127 00EBCCE6  |.  6A 00         PUSH 0x0                                 ; /Timerproc = NULL
128 00EBCCE8  |.  68 C8000000   PUSH 0xC8                                ; |Timeout = 200. ms
129 00EBCCED  |.  6A 35         PUSH 0x35                                ; |TimerID = 35 (53.)
130 00EBCCEF  |.  51            PUSH ECX                                 ; |hWnd = 009DFAD8
131 00EBCCF0  |.  FF15 F002ED00 CALL DWORD PTR DS:[<&USER32.SetTimer>]   ; \SetTimer
132 00EBCCF6  |.  5E            POP ESI                                  ;  // 上面开始了时钟看到下面的0x35
133 00EBCCF7  |.  5D            POP EBP                                  ;  // 果断在 0xEBCCFB下断
134 00EBCCF8  |.  C2 0400       RETN 0x4
135 00EBCCFB  |>  83F8 35       CMP EAX, 0x35
136 00EBCCFE      75 24         JNZ SHORT 00EBCD24
137 00EBCD00  |.  E8 5BFEFFFF   CALL 00EBCB60                            ;  // 又是比较F7
138 00EBCD05  |.  85C0          TEST EAX, EAX
139 00EBCD07  |.  74 1B         JE SHORT 00EBCD24
140 00EBCD09  |.  8B56 04       MOV EDX, DWORD PTR DS:[ESI+0x4]
141 00EBCD0C  |.  6A 35         PUSH 0x35                                ; /TimerID = 35 (53.)
142 00EBCD0E  |.  52            PUSH EDX                                 ; |hWnd = 00200894 (‘吾爱破解2012CM大赛作品‘,class=‘ATL:00ED82E8‘)
143 00EBCD0F  |.  FF15 3003ED00 CALL DWORD PTR DS:[<&USER32.KillTimer>]  ; \KillTimer
144 00EBCD15  |.  6A 01         PUSH 0x1
145 00EBCD17  |.  68 EE030000   PUSH 0x3EE
146 00EBCD1C  |.  8D4E 50       LEA ECX, DWORD PTR DS:[ESI+0x50]
147 00EBCD1F  |.  E8 BCFEFFFF   CALL 00EBCBE0                            ;  成功标志
148 00EBCD24  |>  5E            POP ESI                                  ;  009DFAD8
149 00EBCD25  |.  5D            POP EBP                                  ;  009DFAD8
150 00EBCD26  \.  C2 0400       RETN 0x4
151
152 //  来到0x00EBCD00, 看到类似刚才的代码我有些被弄混了!!
153 00EBCB79  |. /7E 1A         JLE SHORT 00EBCB95
154 00EBCB7B  |. |EB 03         JMP SHORT 00EBCB80
155 00EBCB7D  |  |8D49 00       LEA ECX, DWORD PTR DS:[ECX]
156 00EBCB80  |> |85C0          /TEST EAX, EAX
157 00EBCB82  |. |78 49         |JS SHORT 00EBCBCD
158 00EBCB84  |. |3BC1          |CMP EAX, ECX
159 00EBCB86  |. |7F 45         |JG SHORT 00EBCBCD
160 00EBCB88  |. |0FB73A        |MOVZX EDI, WORD PTR DS:[EDX]
161 00EBCB8B  |. |40            |INC EAX
162 00EBCB8C  |. |03DF          |ADD EBX, EDI
163 00EBCB8E  |. |83C2 02       |ADD EDX, 0x2
164 00EBCB91  |. |3BC1          |CMP EAX, ECX
165 00EBCB93  |.^|7C EB         \JL SHORT 00EBCB80
166 00EBCB95  |> \8BB6 7C030000 MOV ESI, DWORD PTR DS:[ESI+0x37C]
167 00EBCB9B  |.  8B4E F4       MOV ECX, DWORD PTR DS:[ESI-0xC]
168 00EBCB9E  |.  33FF          XOR EDI, EDI
169 00EBCBA0  |.  33C0          XOR EAX, EAX
170 00EBCBA2  |.  85C9          TEST ECX, ECX
171 00EBCBA4  |.  7E 17         JLE SHORT 00EBCBBD
172 00EBCBA6  |.  8BD6          MOV EDX, ESI
173 00EBCBA8  |>  85C0          /TEST EAX, EAX
174 00EBCBAA  |.  78 21         |JS SHORT 00EBCBCD
175 00EBCBAC  |.  3BC1          |CMP EAX, ECX
176 00EBCBAE  |.  7F 1D         |JG SHORT 00EBCBCD
177 00EBCBB0  |.  0FB732        |MOVZX ESI, WORD PTR DS:[EDX]
178 00EBCBB3  |.  40            |INC EAX
179 00EBCBB4  |.  03FE          |ADD EDI, ESI
180 00EBCBB6  |.  83C2 02       |ADD EDX, 0x2
181 00EBCBB9  |.  3BC1          |CMP EAX, ECX
182 00EBCBBB  |.^ 7C EB         \JL SHORT 00EBCBA8
183 00EBCBBD  |> \8D045B        LEA EAX, DWORD PTR DS:[EBX+EBX*2]        ;  **注册码累加的值 *3
184 00EBCBC0  |.  33C9          XOR ECX, ECX
185 00EBCBC2  |.  3BC7          CMP EAX, EDI
186 00EBCBC4  |.  0F94C1        SETE CL
187 00EBCBC7  |.  5F            POP EDI                                  ;  crackme_.00EBCD05
188 00EBCBC8  |.  5E            POP ESI                                  ;  crackme_.00EBCD05
189 00EBCBC9  |.  5B            POP EBX                                  ;  crackme_.00EBCD05
190 00EBCBCA  |.  8BC1          MOV EAX, ECX
191 00EBCBCC  |.  C3            RETN
192
193 // 当上面的判断比较成功的话 即出现注册成功, 但是因为自己没细心看, 浪费了很多时间
194
195
196
197
198
199
200 ------------------------------------------------------------------------
201 【破解总结】参考sdzzb大神的破文
202 http://www.52pojie.cn/forum.php?mod=viewthread&tid=146265
203
204 // 总结
205 对每一个retn后的数据需要仔细观察!  , 特别是多层嵌套的call , 不要弄混了!
206 ------------------------------------------------------------------------
207 【版权声明】
时间: 2024-11-03 21:32:43

crackme_zapline分析的相关文章

爱奇艺、优酷、腾讯视频竞品分析报告2016(一)

1 背景 1.1 行业背景 1.1.1 移动端网民规模过半,使用时长份额超PC端 2016年1月22日,中国互联网络信息中心 (CNNIC)发布第37次<中国互联网络发展状况统计报告>,报告显示,网民的上网设备正在向手机端集中,手机成为拉动网民规模增长的主要因素.截至2015年12月,我国手机网民规模达6.20亿,有90.1%的网民通过手机上网. 图 1  2013Q1~2015Q3在线视频移动端和PC端有效使用时长份额对比 根据艾瑞网民行为监测系统iUserTracker及mUserTrac

Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)

原文:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量) 用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读.在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值.接着判断当前目录下是否存在bin\catalina.bat,如果文件

C# 最佳工具集合: IDE 、分析、自动化工具等

C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言.如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理.但是,这个工具列表可能会改变您编写C#代码的方式. C#编程的最佳工具有以下几类: IDE VS扩展 编译器.编辑器和序列化 反编译和代码转换工具 构建自动化和合并工具 版本控制 测试工具和VS扩展 性能分析 APM 部署自动化 容器 使用上面的链接直接跳转到特定工具,或继续阅读以浏览完整列表.

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,

Openfire分析之二:主干程序分析

引言 宇宙大爆炸,于是开始了万物生衍,从一个连人渣都还没有的时代,一步步进化到如今的花花世界. 然而沧海桑田,一百多亿年过去了-. 好复杂,但程序就简单多了,main()函数运行,敲个回车,一行Hello World就出来了,所以没事多敲敲回车,可以练手感-. 一.程序入口 Java的程序入口是main方法,Openfire也不例外.可以全局检索一下"void main",可以看到,Openfire的main函数有两个: (1)org.jivesoftware.openfire.lau

gecode FunctionBranch 源码分析

从名字上看,这个类的核心就在于function, 那么看代码: /// Function to call SharedData<std::function<void(Space& home)>> f; /// Call function just once bool done; 的确是定义了一个function,然后一个状态,猜测是调用了function之后会设置为true,往下看代码: ExecStatus FunctionBranch::commit(Space&

爬虫难点分析

难点分析 1.网站采取反爬策略 2.网站模板定期变动 3.网站url抓取失败 4.网站频繁抓取ip被封 1.网站采取反爬策略 >网站默认对方正常访问的方式是浏览器访问而不是代码访问,为了防止对方使用大规模服务器进行爬虫从而导致自身服务器承受过大的压力,通常网站会采取反爬策略 根据这一特性,我们用代码模拟实现浏览器访问 2.网站模板定期变动-解决方案 >标签变动,比如<div>变动,那么我们不能把代码给写死了 (1)不同配置文件配置不同网站的模板规则 (2)数据库存储不同网站的模板规

R语言学习-词频分析

概念 1.语料库-Corpus 语料库是我们要分析的所有文档的集合,就是需要为哪些文档来做词频 2.中文分词-Chinese Word Segmentation 指的是将一个汉字序列切分成一个一个单独的词语. 3.停用词-Stop Words 数据处理的时候,自动过滤掉某些字或词,包括泛滥的词如Web.网站等,又如语气助词如的.地.得等. 需要加载的包 1.tm包 安装方式:install.packages("tm") 语料库: Corpus(x,readerControl) x-语料

/proc/meminfo分析

参考: 1. linux/Documentation/filesystems/proc.txt 2. Linux 中 /proc/meminfo 的含义 分析文件信息最权威的就是linux自带的文档,Documentation/filesystems/proc.txt较详细地介绍了proc内容. meminfo: Provides information about distribution and utilization of memory.  This varies by architect