錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項(xiàng)目 服務(wù)報(bào)價(jià) 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
一個(gè)新鮮CM的追碼(簡略分析)

作者: 佚名  日期:2017-08-08 19:49:32   來源: 本站整理

 因?yàn)檫@個(gè)CM要詳細(xì)寫起來實(shí)在是太麻煩 篇幅有限 我就說關(guān)鍵的
我并不是大神 所以哪里寫的太少 或者哪里有錯(cuò)誤的地方 還請指出來。。


0x0 初探

這個(gè)cm.exe是用易語言編寫(而且是靜態(tài)編譯)
先用Mrack師傅的E-Reverse3.12看一下程序調(diào)用的API 其中有三個(gè)我認(rèn)為比較重要的API

ReadProcessMemory <== 
403EB5,404316,
CallWindowProcA <== 
4044C8,
CreateProcessA <== kernel32.dll
4061E6,


這三個(gè)API我認(rèn)為很關(guān)鍵(對于分析而言)
再用E-DEBUG EVENTS探測一下信息(啟動(dòng)事件的地址)

C:\Users\Administrator\Desktop\cm.exe
中斷地址: 0041CDCD
Start......
StartAddress: 004639D7
事件發(fā)生: 00403998 //__啟動(dòng)窗口_創(chuàng)建完畢
事件發(fā)生: 0040105B //時(shí)鐘的周期事件
事件發(fā)生: 0040105B
事件發(fā)生: 0040105B
事件發(fā)生: 0040105B
事件發(fā)生: 0040105B
程序退出
......End


好了 現(xiàn)在用OD打開cm.exe 給00403998下斷點(diǎn) 然后F9
程序首先取出臨時(shí)目錄的路徑并和"tmp.tmp"合在一起

[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
004039A1  |.  68 01030080   push 0x80000301
004039A6  |.  6A 00         push 0x0
004039A8  |.  68 0B000000   push 0xB
004039AD  |.  68 01000000   push 0x1
004039B2  |.  B8 03000000   mov eax,0x3
004039B7  |.  BB A0294600   mov ebx,cm.004629A0
004039BC  |.  E8 E52D0000   call cm.004067A6                        ;  取臨時(shí)目錄
004039C1  |.  83C4 10       add esp,0x10
004039C4  |.  8945 FC       mov [local.1],eax
004039C7  |.  68 244C4800   push cm.00484C24                        ; /tmp.tmp
004039CC  |.  FF75 FC       push [local.1]                          ; |Arg1 = 00537D44 ASCII "out"
004039CF  |.  B9 02000000   mov ecx,0x2                             ; |
004039D4  |.  E8 3BE5FFFF   call cm.00401F14                        ; \cm.00401F14
004039D9  |.  83C4 08       add esp,0x8
004039DC  |.  8945 F8       mov [local.2],eax                       ;  路徑合成(臨時(shí)目錄 + tmp.tmp)


然后將一個(gè)可執(zhí)行文件的字節(jié)集寫到tmp.tmp中

[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
004039EF  |> \68 05000080   push 0x80000005
004039F4  |.  6A 00         push 0x0
004039F6  |.  68 3C4D4800   push cm.00484D3C                        ;  一個(gè)可執(zhí)行文件
004039FB  |.  68 04000080   push 0x80000004
00403A00  |.  6A 00         push 0x0
00403A02  |.  8B45 F8       mov eax,[local.2]                       ;  tmp.tmp的全路徑
00403A05  |.  85C0          test eax,eax
00403A07  |.  75 05         jnz short cm.00403A0E
00403A09  |.  B8 884C4800   mov eax,cm.00484C88
00403A0E  |>  50            push eax
00403A0F  |.  68 02000000   push 0x2
00403A14  |.  BB 007A4000   mov ebx,cm.00407A00                     ;  寫到文件
00403A19  |.  E8 8E2D0000   call cm.004067AC
00403A1E  |.  83C4 1C       add esp,0x1C


然后程序設(shè)置一個(gè)SendMessage的回調(diào)函數(shù)

[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
00403A31  |> \68 01000100   push 0x10001                            
00403A36  |.  68 00000106   push 0x6010000
00403A3B  |.  68 01000152   push 0x52010001;_啟動(dòng)窗口
00403A40  |.  68 01000000   push 0x1
00403A45  |.  BB 70694000   mov ebx,cm.00406970                     ;  取窗口句柄
00403A4A  |.  E8 5D2D0000   call cm.004067AC
00403A4F  |.  83C4 10       add esp,0x10
00403A52  |.  50            push eax                                ; /_啟動(dòng)窗口的窗口句柄
00403A53  |.  E8 76000000   call cm.00403ACE                        ; \設(shè)置SendMessage的回調(diào)函數(shù) 地址是0x404511
00403A58  |.  6A 01         push 0x1                                ; /Arg3 = 00000001
00403A5A  |.  68 D45E4000   push cm.00405ED4                        ; |Arg2 = 00405ED4
00403A5F  |.  B8 447D5300   mov eax,cm.00537D44                     ; |out
00403A64  |.  8945 FC       mov [local.1],eax                       ; |
00403A67  |.  8D45 FC       lea eax,[local.1]                       ; |
00403A6A  |.  50            push eax                                ; |Arg1 = 00000000
00403A6B  |.  E8 C00A0000   call cm.00404530                        ; \cm.00404530
00403A70  |.  8B5D FC       mov ebx,[local.1]                       ;  cm.00537D44


后面的call太長了就不看了。
這個(gè)tmp.tmp是一個(gè)可執(zhí)行文件。。
先打開cm.exe 用pchunter看看進(jìn)程間的關(guān)系
 
可以發(fā)現(xiàn) 這個(gè)cm.exe是tmp.tmp的父進(jìn)程
Mrack的神器告訴我們cm.exe有使用CreateProcessA這個(gè)api
那么給這個(gè)API下斷點(diǎn) 然后F9。
 
可以發(fā)現(xiàn):程序創(chuàng)建了一個(gè)調(diào)試進(jìn)程(進(jìn)程名是tmp.tmp)


0x1 分析被調(diào)試進(jìn)程

因?yàn)?a target="_blank" href="http://www.liuyangsem.com" class="UBBWordLink">WINDOWS下的R3調(diào)試器與被調(diào)試進(jìn)程的關(guān)系是"一個(gè)蘿卜一個(gè)坑" 即一個(gè)進(jìn)程只能被一個(gè)調(diào)試器附加
這樣我們就沒辦法用
OllyDbg去附加tmp.tmp了
所以只能用OD載入單獨(dú)分析了。。
直接F9運(yùn)行 輸入假碼 然后給GetWindowTextA下斷點(diǎn) 之后點(diǎn)擊[按鈕]
結(jié)果發(fā)現(xiàn)。。。第一次沒找到按鈕事件
那再F9一次 結(jié)果發(fā)現(xiàn)又?jǐn)嗔讼聛怼!!?br/> 這次回到0x402C5E處  找到函數(shù)頭(0x402C3B處)
刪掉GetWindowTextA 這個(gè)斷點(diǎn)  給函數(shù)頭設(shè)置斷點(diǎn)。
F9運(yùn)行 重新點(diǎn)擊[按鈕]。
程序首先取出第一個(gè)編輯框的內(nèi)容然后轉(zhuǎn)換成整數(shù)

[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
00402C4B  |.  6A FF         push -0x1
00402C4D  |.  6A 08         push 0x8
00402C4F  |.  68 B4350116   push 0x160135B4
00402C54  |.  68 01000152   push 0x52010001
00402C59  |.  E8 CD2B0000   call tmp.0040582B                       ;  獲取第一個(gè)編輯框的內(nèi)容
00402C5E  |.  83C4 10       add esp,0x10
00402C61  |.  8945 F8       mov [local.2],eax
00402C64  |.  68 04000080   push 0x80000004
00402C69  |.  6A 00         push 0x0
00402C6B  |.  8B45 F8       mov eax,[local.2]
00402C6E  |.  85C0          test eax,eax
00402C70  |.  75 05         jnz short tmp.00402C77
00402C72  |.  B8 676E4800   mov eax,tmp.00486E67
00402C77  |>  50            push eax
00402C78  |.  68 01000000   push 0x1
00402C7D  |.  BB B0604000   mov ebx,tmp.004060B0
00402C82  |.  E8 982B0000   call tmp.0040581F                       ;  再轉(zhuǎn)換成整數(shù)
00402C87  |.  83C4 10       add esp,0x10
00402C8A  |.  8945 F4       mov [local.3],eax


程序又獲取了第二個(gè)編輯框的內(nèi)容 然后轉(zhuǎn)換成字節(jié)集

[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
00402C9D  |> \6A FF         push -0x1
00402C9F  |.  6A 08         push 0x8
00402CA1  |.  68 B3350116   push 0x160135B3
00402CA6  |.  68 01000152   push 0x52010001
00402CAB  |.  E8 7B2B0000   call tmp.0040582B                       ;  獲取第二個(gè)編輯框的內(nèi)容
00402CB0  |.  83C4 10       add esp,0x10
00402CB3  |.  8945 F0       mov [local.4],eax
00402CB6  |.  68 04000080   push 0x80000004
00402CBB  |.  6A 00         push 0x0
00402CBD  |.  8B45 F0       mov eax,[local.4]
00402CC0  |.  85C0          test eax,eax
00402CC2  |.  75 05         jnz short tmp.00402CC9
00402CC4  |.  B8 676E4800   mov eax,tmp.00486E67
00402CC9  |>  50            push eax
00402CCA  |.  68 01000000   push 0x1
00402CCF  |.  BB 50674000   mov ebx,tmp.00406750
00402CD4  |.  E8 462B0000   call tmp.0040581F                       ;  轉(zhuǎn)換成字節(jié)集
00402CD9  |.  83C4 10       add esp,0x10


然后調(diào)用這個(gè)函數(shù)

[Asm] 純文本查看 復(fù)制代碼
1
2
3
4
5
6
7
8
00402CEF  |> \8D45 EC       lea eax,[local.5]                       ;  指向第二個(gè)編輯框的內(nèi)容(字節(jié)集)的指針的指針
00402CF2  |.  50            push eax                                ; /Arg3 = 0019F47C
00402CF3  |.  B8 8F784800   mov eax,tmp.0048788F                    ; |ASCII "out"
00402CF8  |.  8945 E8       mov [local.6],eax                       ; |
00402CFB  |.  8D45 E8       lea eax,[local.6]                       ; |ASCII "out"
00402CFE  |.  50            push eax                                ; |Arg2 = 0019F47C
00402CFF  |.  FF75 F4       push [local.3]                          ; |第一個(gè)編輯框的內(nèi)容(整數(shù)型)
00402D02  |.  E8 12020000   call tmp.00402F19                       ; \tmp.00402F19


F7跟進(jìn)去。
程序申請一個(gè)叫做 out 的窗口消息

[Asm] 純文本查看 復(fù)制代碼
1
2
3
4
5
6
7
8
9
00402F44  |.  FF33          push dword ptr ds:[ebx]                 ;  tmp.0048788F
00402F46  |.  B8 07000000   mov eax,0x7
00402F4B  |.  E8 C9280000   call tmp.00405819                       ;  新申請一個(gè)窗口消息(名字叫做out)
00402F50  |.  3965 EC       cmp [local.5],esp
00402F53  |.  74 0D         je short tmp.00402F62
00402F55  |.  68 06000000   push 0x6
00402F5A  |.  E8 B4280000   call tmp.00405813
00402F5F  |.  83C4 04       add esp,0x4
00402F62  |>  8945 FC       mov [local.1],eax                       ;  保存消息號 這里是0xC342


然后將第一個(gè)編輯框的內(nèi)容轉(zhuǎn)換成整數(shù)型 充當(dāng)窗口句柄 判斷這個(gè)窗口是否接受鼠標(biāo)或鍵盤輸入

[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
0040300A  |.  FF75 08       push [arg.1]                            ;  窗口句柄(第一個(gè)編輯框的內(nèi)容(整數(shù)型))
0040300D  |.  B8 0C000000   mov eax,0xC
00403012  |.  E8 02280000   call tmp.00405819                       ;  判斷窗口是否允許接受鍵盤或鼠標(biāo)輸入
00403017  |.  3965 EC       cmp [local.5],esp
0040301A  |.  74 0D         je short tmp.00403029
0040301C  |.  68 06000000   push 0x6
00403021  |.  E8 ED270000   call tmp.00405813
00403026  |.  83C4 04       add esp,0x4
00403029  |>  85C0          test eax,eax
0040302B  |.  0F84 8E030000 je tmp.004033BF                         ;  不允許則返回


如果返回的話 就直接失敗。 所以這里不能讓它返回
聯(lián)合前面cm.exe新申請的SendMessage回調(diào)函數(shù) 那這個(gè)就可能是填寫父進(jìn)程(cm.exe)的窗口句柄
用od打開cm.exe 然后直接F9運(yùn)行(要出現(xiàn)窗口) 找到這個(gè)cm.exe的窗口句柄 轉(zhuǎn)換成十進(jìn)制。

 
 
那么把1183644輸入過去。
看看這個(gè)je會(huì)不會(huì)跳走 這次就沒有跳走。
那么繼續(xù)往下
然后程序向cm.exe發(fā)送了窗口消息(中間一大部分操作我直接略過了。) 然后彈出了一個(gè)MessageBox

[Asm] 純文本查看 復(fù)制代碼
1
2
3
4
5
6
00403342  |.  FF75 D8       push [local.10]
00403345  |.  FF75 E0       push [local.8]                          ;  tmp.00441431
00403348  |.  FF75 FC       push [local.1]                          ;  out 消息
0040334B  |.  FF75 08       push [arg.1]                            ;  cm.exe的窗口句柄
0040334E  |.  B8 0E000000   mov eax,0xE
00403353  |.  E8 C1240000   call tmp.00405819                       ;  發(fā)送消息


之前cm.exe申請了一個(gè)SendMessage的回調(diào)函數(shù) 因?yàn)閤h5510大佬提醒我 說"關(guān)鍵部分在cm.exe" 所以 在這個(gè)消息發(fā)送以后 cm.exe調(diào)用之前設(shè)置的回調(diào)函數(shù)應(yīng)該是關(guān)鍵部分


0x2 再看調(diào)試器 找出
注冊碼

回到cm.exe 直接給0x404511下斷點(diǎn) 然后之前運(yùn)行cm.exe時(shí)彈出的注冊窗口的第一個(gè)輸入框中輸入 之前用pchunter探測到的cm.exe的主窗口句柄(十進(jìn)制:我這里是1183644) 第二個(gè)輸入框隨便輸入點(diǎn)東西 點(diǎn)擊[按鈕]。
直接斷了下來
這里只有一個(gè)call 那么直接跟進(jìn)去。
一看call里面 一堆代碼。。。
那么就用快捷點(diǎn)的方法 直接定位。
因?yàn)楸徽{(diào)試進(jìn)程和調(diào)試器要交換數(shù)據(jù) 而cm.exe又有調(diào)用ReadProcessMemory 那么給ReadProcessMemory下斷點(diǎn) 然后F9運(yùn)行試試。。。
斷了下來。。
結(jié)果兩次都在一個(gè)地方返回 而且都在這個(gè)call里面。。
看樣子這個(gè)API斷點(diǎn)并不適用
那換一個(gè)API 試試...這個(gè)CallWindowProcA(在剛剛在0x404511斷下時(shí)下斷點(diǎn) 然后按F9 就會(huì)在這里斷下來)

 
 
注意這個(gè)函數(shù)發(fā)送的消息是NULL。。
蠻可疑的
在這個(gè)回調(diào)函數(shù)地址下斷點(diǎn)然后F9試試。
這個(gè)函數(shù)也只有一個(gè)call 直接跟進(jìn)去(我分析的時(shí)候 這個(gè)call就是驗(yàn)證注冊碼的call)
跟進(jìn)去以后還有一個(gè)。。。來到00404EF3處
直接找到這段代碼

[Asm] 純文本查看 復(fù)制代碼
1
2
3
4
5
6
00404F9B  |.  6A 00         push 0x0                                ; /Arg3 = 00000000
00404F9D  |.  8D45 EC       lea eax,[local.5]                       ; |
00404FA0  |.  50            push eax                                ; |Arg2 = 0019FAAC
00404FA1  |.  8D45 F0       lea eax,[local.4]                       ; |輸入的假的注冊碼(在第二個(gè)框中)
00404FA4  |.  50            push eax                                ; |Arg1 = 0019FAAC
00404FA5  |.  E8 C9010000   call cm.00405173                        ; \驗(yàn)證


來到這里:

[Asm] 純文本查看 復(fù)制代碼
1
2
3
004051B8  |> \FF75 0C       push [arg.2]                            ; /Arg2 = 0019FAA8
004051BB  |.  FF75 08       push [arg.1]                            ; |假的注冊碼
004051BE  |.  E8 11000000   call cm.004051D4                        ; \cm.004051D4


跟進(jìn)去 來到驗(yàn)證CALL
這段代碼調(diào)用的call是易語言的 分割文本 函數(shù)

[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
004053B5  |.  6A 00         push 0x0
004053B7  |.  6A 00         push 0x0
004053B9  |.  6A 00         push 0x0
004053BB  |.  68 04000080   push 0x80000004
004053C0  |.  6A 00         push 0x0
004053C2  |.  68 8E7D5300   push cm.00537D8E                        ;  %
004053C7  |.  68 04000080   push 0x80000004
004053CC  |.  6A 00         push 0x0
004053CE  |.  8B5D 08       mov ebx,[arg.1]
004053D1  |.  8B03          mov eax,dword ptr ds:[ebx]              ;  假的注冊碼
004053D3  |.  85C0          test eax,eax
004053D5  |.  75 05         jnz short cm.004053DC
004053D7  |.  B8 884C4800   mov eax,cm.00484C88
004053DC  |>  50            push eax
004053DD  |.  68 03000000   push 0x3
004053E2  |.  BB 50754000   mov ebx,cm.00407550
004053E7  |.  E8 C0130000   call cm.004067AC                        ;  文本分割
004053EC  |.  83C4 28       add esp,0x28


這里面被分割的文本就是我們輸入的假注冊碼 用作分割的文本就是"%"
保險(xiǎn)起見 我們換一個(gè)注冊碼 比如說:abcdefgh%123456
輸入好后 來到004053EC處 觀察一下eax寄存器中指向的地址
 
觀察一下0076EFD8的內(nèi)容和0077F6B8的內(nèi)容
可以發(fā)現(xiàn)一個(gè)是abcdefgh另一個(gè)是123456
繼續(xù)往下。
來到一個(gè)大循環(huán)中
這個(gè)循環(huán)是有關(guān)聯(lián)的 所以我就直接發(fā)吧。。。必要的注釋我已經(jīng)標(biāo)記了 其中 注冊碼2是指第二個(gè)輸入框中的文本(第一部分是指0076EFD8中的文本 第二部分則是0077F6B8中的文本)

[Asm] 純文本查看 復(fù)制代碼
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
0040543C  |.  8945 F4       mov [local.3],eax
0040543F  |.  8B5D F4       mov ebx,[local.3]
00405442  |.  E8 49CAFFFF   call cm.00401E90                        ;  取出分割后的文本的成員個(gè)數(shù)(注冊碼2被"%"分割)
00405447  |.  33C9          xor ecx,ecx
00405449  |.  50            push eax
0040544A  |.  8D45 F0       lea eax,[local.4]
0040544D  |.  8BD8          mov ebx,eax
0040544F  |.  58            pop eax
00405450  |>  41            /inc ecx
00405451  |.  51            |push ecx
00405452  |.  53            |push ebx
00405453  |.  890B          |mov dword ptr ds:[ebx],ecx
00405455  |.  50            |push eax
00405456  |.  3BC8          |cmp ecx,eax
00405458  |.  0F8F 99030000 |jg cm.004057F7
0040545E  |.  8B5D F4       |mov ebx,[local.3]
00405461  |.  E8 DFC2FFFF   |call cm.00401745
00405466  |.  53            |push ebx
00405467  |.  51            |push ecx
00405468  |.  8B45 F0       |mov eax,[local.4]
0040546B  |.  48            |dec eax
0040546C  |.  79 0D         |jns short cm.0040547B
0040546E  |.  68 04000000   |push 0x4
00405473  |.  E8 22130000   |call cm.0040679A
00405478  |.  83C4 04       |add esp,0x4
0040547B  |>  59            |pop ecx
0040547C  |.  5B            |pop ebx
0040547D  |.  3BC1          |cmp eax,ecx
0040547F  |.  7C 0D         |jl short cm.0040548E
00405481  |.  68 01000000   |push 0x1
00405486  |.  E8 0F130000   |call cm.0040679A
0040548B  |.  83C4 04       |add esp,0x4
0040548E  |>  C1E0 02       |shl eax,0x2
00405491  |.  03D8          |add ebx,eax
00405493  |.  895D D8       |mov [local.10],ebx                     ;  注冊碼2被 "%" 分割
00405496  |.  8B5D D8       |mov ebx,[local.10]
00405499  |.  8B03          |mov eax,dword ptr ds:[ebx]
0040549B  |.  85C0          |test eax,eax
0040549D  |.  74 15         |je short cm.004054B4
0040549F  |.  50            |push eax
004054A0  |.  8BD8          |mov ebx,eax
004054A2  |.  E8 02CAFFFF   |call cm.00401EA9                       ;  取出第一部分的長度
004054A7  |.  40            |inc eax                                ;  長度 + 1
004054A8  |.  50            |push eax
004054A9  |.  E8 E6120000   |call cm.00406794                       ;  注冊碼2
004054AE  |.  59            |pop ecx
004054AF  |.  5E            |pop esi                                ;  cm.00484CB3
004054B0  |.  8BF8          |mov edi,eax
004054B2  |.  F3:A4         |rep movs byte ptr es:[edi],byte ptr ds:[esi];  拷貝第n部分(n是循環(huán)的次數(shù))
004054B4  |>  50            |push eax
004054B5  |.  8B5D EC       |mov ebx,[local.5]
004054B8  |.  85DB          |test ebx,ebx
004054BA  |.  74 09         |je short cm.004054C5
004054BC  |.  53            |push ebx
004054BD  |.  E8 CC120000   |call cm.0040678E
004054C2  |.  83C4 04       |add esp,0x4
004054C5  |>  58            |pop eax
004054C6  |.  8945 EC       |mov [local.5],eax
004054C9  |.  B8 884C4800   |mov eax,cm.00484C88
004054CE  |.  50            |push eax
004054CF  |.  8B5D E8       |mov ebx,[local.6]
004054D2  |.  85DB          |test ebx,ebx
004054D4  |.  74 09         |je short cm.004054DF
004054D6  |.  53            |push ebx
004054D7  |.  E8 B2120000   |call cm.0040678E
004054DC  |.  83C4 04       |add esp,0x4
004054DF  |>  58            |pop eax
004054E0  |.  8945 E8       |mov [local.6],eax
004054E3  |.  68 04000080   |push 0x80000004
004054E8  |.  6A 00         |push 0x0
004054EA  |.  8B45 EC       |mov eax,[local.5]
004054ED  |.  85C0          |test eax,eax
004054EF  |.  75 05         |jnz short cm.004054F6
004054F1  |.  B8 884C4800   |mov eax,cm.00484C88
004054F6  |>  50            |push eax
004054F7  |.  68 01000000   |push 0x1
004054FC  |.  BB A0694000   |mov ebx,cm.004069A0
00405501  |.  E8 A6120000   |call cm.004067AC                       ;  取第n部分文本長度
00405506  |.  83C4 10       |add esp,0x10
00405509  |.  33C9          |xor ecx,ecx
0040550B  |.  50            |push eax
0040550C  |.  8D45 E4       |lea eax,[local.7]
0040550F  |.  8BD8          |mov ebx,eax
00405511  |.  58            |pop eax
00405512  |>  41            |/inc ecx
00405513  |.  51            ||push ecx
00405514  |.  53            ||push ebx
00405515  |.  890B          ||mov dword ptr ds:[ebx],ecx
00405517  |.  50            ||push eax
00405518  |.  3BC8          ||cmp ecx,eax
0040551A  |.  0F8F 12020000 ||jg cm.00405732
00405520  |.  68 01030080   ||push 0x80000301
00405525  |.  6A 00         ||push 0x0
00405527  |.  68 01000000   ||push 0x1
0040552C  |.  68 01030080   ||push 0x80000301
00405531  |.  6A 00         ||push 0x0
00405533  |.  FF75 E4       ||push [local.7]
00405536  |.  68 04000080   ||push 0x80000004
0040553B  |.  6A 00         ||push 0x0
0040553D  |.  8B45 EC       ||mov eax,[local.5]
00405540  |.  85C0          ||test eax,eax
00405542  |.  75 05         ||jnz short cm.00405549
00405544  |.  B8 884C4800   ||mov eax,cm.00484C88
00405549  |>  50            ||push eax
0040554A  |.  68 03000000   ||push 0x3
0040554F  |.  BB 706A4000   ||mov ebx,cm.00406A70
00405554  |.  E8 53120000   ||call cm.004067AC                      ;  取出第n部分的一個(gè)字節(jié)
00405559  |.  83C4 28       ||add esp,0x28
0040555C  |.  8945 D8       ||mov [local.10],eax
0040555F  |.  8B5D FC       ||mov ebx,[local.1]
00405562  |.  E8 DEC1FFFF   ||call cm.00401745                      ;  重定義數(shù)組
00405567  |.  B8 09000000   ||mov eax,0x9
0040556C  |.  3BC1          ||cmp eax,ecx
0040556E  |.  7C 0D         ||jl short cm.0040557D
00405570  |.  68 01000000   ||push 0x1
00405575  |.  E8 20120000   ||call cm.0040679A
0040557A  |.  83C4 04       ||add esp,0x4
0040557D  |>  C1E0 02       ||shl eax,0x2
00405580  |.  03D8          ||add ebx,eax
00405582  |.  895D D4       ||mov [local.11],ebx
00405585  |.  8B5D D4       ||mov ebx,[local.11]
00405588  |.  8B03          ||mov eax,dword ptr ds:[ebx]
0040558A  |.  50            ||push eax
0040558B  |.  FF75 D8       ||push [local.10]
0040558E  |.  E8 12BBFFFF   ||call cm.004010A5                      ;  再和p比較
00405593  |.  83C4 08       ||add esp,0x8
00405596  |.  83F8 00       ||cmp eax,0x0
00405599  |.  B8 00000000   ||mov eax,0x0
0040559E  |.  0f94c0        ||sete al
004055A1  |.  8945 D0       ||mov [local.12],eax
004055A4  |.  8B5D D8       ||mov ebx,[local.10]
004055A7  |.  85DB          ||test ebx,ebx
004055A9  |.  74 09         ||je short cm.004055B4
004055AB  |.  53            ||push ebx
004055AC  |.  E8 DD110000   ||call cm.0040678E
004055B1  |.  83C4 04       ||add esp,0x4
004055B4  |>  837D D0 00    ||cmp [local.12],0x0
004055B8  |.  0F84 35000000 ||je cm.004055F3
004055BE  |.  68 B24C4800   ||push cm.00484CB2                      ; /0
004055C3  |.  FF75 E8       ||push [local.6]                        ; |Arg1 = 0077F7F8
004055C6  |.  B9 02000000   ||mov ecx,0x2                           ; |
004055CB  |.  E8 44C9FFFF   ||call cm.00401F14                      ; \cm.00401F14
004055D0  |.  83C4 08       ||add esp,0x8                           ;  相等則用'0'替換
004055D3  |.  8945 D8       ||mov [local.10],eax
004055D6  |.  8B45 D8       ||mov eax,[local.10]
004055D9  |.  50            ||push eax
004055DA  |.  8B5D E8       ||mov ebx,[local.6]
004055DD  |.  85DB          ||test ebx,ebx
004055DF  |.  74 09         ||je short cm.004055EA
004055E1  |.  53            ||push ebx
004055E2  |.  E8 A7110000   ||call cm.0040678E
004055E7  |.  83C4 04       ||add esp,0x4
004055EA  |>  58            ||pop eax
004055EB  |.  8945 E8       ||mov [local.6],eax
004055EE  |.  E9 37010000   ||jmp cm.0040572A
004055F3  |>  8B5D FC       ||mov ebx,[local.1]
004055F6  |.  E8 95C8FFFF   ||call cm.00401E90                      ;  取出asdfghjklp的長度(已經(jīng)被分割 即s[1] = 'a' s[2] = 's'...一共十個(gè)字節(jié))
004055FB  |.  33C9          ||xor ecx,ecx
004055FD  |.  50            ||push eax
004055FE  |.  8D45 E0       ||lea eax,[local.8]
00405601  |.  8BD8          ||mov ebx,eax
00405603  |.  58            ||pop eax
00405604  |>  41            ||/inc ecx
00405605  |.  51            |||push ecx
00405606  |.  53            |||push ebx
00405607  |.  890B          |||mov dword ptr ds:[ebx],ecx
00405609  |.  50            |||push eax
0040560A  |.  3BC8          |||cmp ecx,eax
0040560C  |.  0F8F 15010000 |||jg cm.00405727                       ;  小循環(huán)十次
00405612  |.  68 01030080   |||push 0x80000301
00405617  |.  6A 00         |||push 0x0
00405619  |.  68 01000000   |||push 0x1
0040561E  |.  68 01030080   |||push 0x80000301
00405623  |.  6A 00         |||push 0x0
00405625  |.  FF75 E4       |||push [local.7]                       ;  第二個(gè)循環(huán)的循環(huán)次數(shù)
00405628  |.  68 04000080   |||push 0x80000004
0040562D  |.  6A 00         |||push 0x0
0040562F  |.  8B45 EC       |||mov eax,[local.5]                    ;  注冊碼(分割后 即注冊碼[n])
00405632  |.  85C0          |||test eax,eax
00405634  |.  75 05         |||jnz short cm.0040563B
00405636  |.  B8 884C4800   |||mov eax,cm.00484C88
0040563B  |>  50            |||push eax
0040563C  |.  68 03000000   |||push 0x3
00405641  |.  BB 706A4000   |||mov ebx,cm.00406A70
00405646  |.  E8 61110000   |||call cm.004067AC                     ;  取出一個(gè)字節(jié)
0040564B  |.  83C4 28       |||add esp,0x28
0040564E  |.  8945 D8       |||mov [local.10],eax
00405651  |.  8B5D FC       |||mov ebx,[local.1]
00405654  |.  E8 ECC0FFFF   |||call cm.00401745
00405659  |.  53            |||push ebx
0040565A  |.  51            |||push ecx
0040565B  |.  8B45 E0       |||mov eax,[local.8]
0040565E  |.  48            |||dec eax
0040565F  |.  79 0D         |||jns short cm.0040566E
00405661  |.  68 04000000   |||push 0x4
00405666  |.  E8 2F110000   |||call cm.0040679A
0040566B  |.  83C4 04       |||add esp,0x4
0040566E  |>  59            |||pop ecx
0040566F  |.  5B            |||pop ebx
00405670  |.  3BC1          |||cmp eax,ecx
00405672  |.  7C 0D         |||jl short cm.00405681
00405674  |.  68 01000000   |||push 0x1
00405679  |.  E8 1C110000   |||call cm.0040679A
0040567E  |.  83C4 04       |||add esp,0x4
00405681  |>  C1E0 02       |||shl eax,0x2
00405684  |.  03D8          |||add ebx,eax
00405686  |.  895D D4       |||mov [local.11],ebx
00405689  |.  8B5D D4       |||mov ebx,[local.11]
0040568C  |.  8B03          |||mov eax,dword ptr ds:[ebx]
0040568E  |.  50            |||push eax                             ;  "asdfghjklp"的每個(gè)字符(執(zhí)行完一個(gè)小循環(huán)就換下一個(gè))
0040568F  |.  FF75 D8       |||push [local.10]
00405692  |.  E8 0EBAFFFF   |||call cm.004010A5                     ;  eax和注冊碼(分割后 即 注冊碼[n])一個(gè)字節(jié)比較
00405697  |.  83C4 08       |||add esp,0x8
0040569A  |.  83F8 00       |||cmp eax,0x0
0040569D  |.  B8 00000000   |||mov eax,0x0
004056A2  |.  0f94c0        |||sete al
004056A5  |.  8945 D0       |||mov [local.12],eax
004056A8  |.  8B5D D8       |||mov ebx,[local.10]
004056AB  |.  85DB          |||test ebx,ebx
004056AD  |.  74 09         |||je short cm.004056B8
004056AF  |.  53            |||push ebx
004056B0  |.  E8 D9100000   |||call cm.0040678E
004056B5  |.  83C4 04       |||add esp,0x4
004056B8  |>  837D D0 00    |||cmp [local.12],0x0
004056BC  |.  0F84 5D000000 |||je cm.0040571F                       ;  如果相等則不轉(zhuǎn)移
004056C2  |.  68 01030080   |||push 0x80000301
004056C7  |.  6A 00         |||push 0x0
004056C9  |.  FF75 E0       |||push [local.8]
004056CC  |.  68 01000000   |||push 0x1
004056D1  |.  BB F0784000   |||mov ebx,cm.004078F0
004056D6  |.  E8 D1100000   |||call cm.004067AC                     ;  循環(huán)次數(shù)到文本
004056DB  |.  83C4 10       |||add esp,0x10
004056DE  |.  8945 D8       |||mov [local.10],eax                   ;  循環(huán)次數(shù)
004056E1  |.  FF75 D8       |||push [local.10]                      ; /Arg2 = 0077F768
004056E4  |.  FF75 E8       |||push [local.6]                       ; |Arg1 = 0077F7F8
004056E7  |.  B9 02000000   |||mov ecx,0x2                          ; |
004056EC  |.  E8 23C8FFFF   |||call cm.00401F14                     ; \cm.00401F14
004056F1  |.  83C4 08       |||add esp,0x8
004056F4  |.  8945 D4       |||mov [local.11],eax                   ;  文本合成 LOCAL6 = LOCAL6 + 到文本(循環(huán)次數(shù))(LOCAL6的初始值是0x00)
004056F7  |.  8B5D D8       |||mov ebx,[local.10]
004056FA  |.  85DB          |||test ebx,ebx
004056FC  |.  74 09         |||je short cm.00405707
004056FE  |.  53            |||push ebx
004056FF  |.  E8 8A100000   |||call cm.0040678E
00405704  |.  83C4 04       |||add esp,0x4
00405707  |>  8B45 D4       |||mov eax,[local.11]
0040570A  |.  50            |||push eax
0040570B  |.  8B5D E8       |||mov ebx,[local.6]
0040570E  |.  85DB          |||test ebx,ebx
00405710  |.  74 09         |||je short cm.0040571B
00405712  |.  53            |||push ebx
00405713  |.  E8 76100000   |||call cm.0040678E
00405718  |.  83C4 04       |||add esp,0x4
0040571B  |>  58            |||pop eax
0040571C  |.  8945 E8       |||mov [local.6],eax
0040571F  |>  58            |||pop eax
00405720  |.  5B            |||pop ebx
00405721  |.  59            |||pop ecx
00405722  |.^ E9 DDFEFFFF   ||\jmp cm.00405604
00405727  |>  83C4 0C       ||add esp,0xC
0040572A  |>  58            ||pop eax
0040572B  |.  5B            ||pop ebx
0040572C  |.  59            ||pop ecx
0040572D  |.^ E9 E0FDFFFF   |\jmp cm.00405512
00405732  |>  83C4 0C       |add esp,0xC
00405735  |.  68 04000080   |push 0x80000004
0040573A  |.  6A 00         |push 0x0
0040573C  |.  8B45 E8       |mov eax,[local.6]
0040573F  |.  85C0          |test eax,eax
00405741  |.  75 05         |jnz short cm.00405748
00405743  |.  B8 884C4800   |mov eax,cm.00484C88
00405748  |>  50            |push eax
00405749  |.  68 01000000   |push 0x1
0040574E  |.  BB 40704000   |mov ebx,cm.00407040
00405753  |.  E8 54100000   |call cm.004067AC                       ;  將LOCAL6轉(zhuǎn)換到整數(shù)
00405758  |.  83C4 10       |add esp,0x10
0040575B  |.  68 01030080   |push 0x80000301
00405760  |.  6A 00         |push 0x0
00405762  |.  50            |push eax
00405763  |.  68 01000000   |push 0x1
00405768  |.  BB E0764000   |mov ebx,cm.004076E0
0040576D  |.  E8 3A100000   |call cm.004067AC                       ;  再轉(zhuǎn)換成字節(jié)集
00405772  |.  83C4 10       |add esp,0x10
00405775  |.  8945 D4       |mov [local.11],eax                     ;  LOCAL.11 = 到字節(jié)集(LOCAL.6(整數(shù)型))
00405778  |.  68 05000080   |push 0x80000005
0040577D  |.  6A 00         |push 0x0
0040577F  |.  8B45 D4       |mov eax,[local.11]
00405782  |.  85C0          |test eax,eax
00405784  |.  75 05         |jnz short cm.0040578B
00405786  |.  B8 4E4C4800   |mov eax,cm.00484C4E
0040578B  |>  50            |push eax
0040578C  |.  68 01000000   |push 0x1
00405791  |.  BB F0784000   |mov ebx,cm.004078F0
00405796  |.  E8 11100000   |call cm.004067AC                       ;  再轉(zhuǎn)換成文本
0040579B  |.  83C4 10       |add esp,0x10
0040579E  |.  8945 D0       |mov [local.12],eax
004057A1  |.  8B5D D4       |mov ebx,[local.11]
004057A4  |.  85DB          |test ebx,ebx
004057A6  |.  74 09         |je short cm.004057B1
004057A8  |.  53            |push ebx
004057A9  |.  E8 E00F0000   |call cm.0040678E
004057AE  |.  83C4 04       |add esp,0x4
004057B1  |>  FF75 D0       |push [local.12]                        ; /Arg2 = 00000000
004057B4  |.  FF75 DC       |push [local.9]                         ; |Arg1 = 00000000
004057B7  |.  B9 02000000   |mov ecx,0x2                            ; |
004057BC  |.  E8 53C7FFFF   |call cm.00401F14                       ; \cm.00401F14
004057C1  |.  83C4 08       |add esp,0x8
004057C4  |.  8945 CC       |mov [local.13],eax                     ;  local.9 + local.12(文本鏈接)
004057C7  |.  8B5D D0       |mov ebx,[local.12]
004057CA  |.  85DB          |test ebx,ebx
004057CC  |.  74 09         |je short cm.004057D7
004057CE  |.  53            |push ebx
004057CF  |.  E8 BA0F0000   |call cm.0040678E
004057D4  |.  83C4 04       |add esp,0x4
004057D7  |>  8B45 CC       |mov eax,[local.13]
004057DA  |.  50            |push eax
004057DB  |.  8B5D DC       |mov ebx,[local.9]
004057DE  |.  85DB          |test ebx,ebx
004057E0  |.  74 09         |je short cm.004057EB
004057E2  |.  53            |push ebx
004057E3  |.  E8 A60F0000   |call cm.0040678E
004057E8  |.  83C4 04       |add esp,0x4
004057EB  |>  58            |pop eax
004057EC  |.  8945 DC       |mov [local.9],eax                      ;  將LOCAL13的值保存到LOCAL9中
004057EF  |.  58            |pop eax
004057F0  |.  5B            |pop ebx
004057F1  |.  59            |pop ecx
004057F2  |.^ E9 59FCFFFF   \jmp cm.00405450
004057F7  |>  83C4 0C       add esp,0xC
004057FA  |.  8B45 DC       mov eax,[local.9]                       ;  這時(shí) eax 就是即將彈出的MessageBox的內(nèi)容。

[1] [2]  下一頁



熱門文章
  • 機(jī)械革命S1 PRO-02 開機(jī)不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點(diǎn)不...
  • 三星一體激光打印機(jī)SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機(jī)始終停留在開機(jī)界面...
  • 常見打印機(jī)清零步驟
  • 安裝驅(qū)動(dòng)時(shí)提示不包含數(shù)字簽名的解...
  • 共享打印機(jī)需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機(jī)的...
  • 錦州廣廈電腦上門維修

    報(bào)修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 国产成人精品无码一区二区三区| 2024你懂的网站无码内射| 亚洲综合久久精品无码色欲| 亚洲午夜国产精品无码老牛影视| 无码人妻丰满熟妇区五十路百度| 亚洲精品中文字幕无码AV| 九九久久精品无码专区| 91精品无码久久久久久五月天| 人妻少妇精品无码专区动漫| 无码av免费一区二区三区试看| 久久人妻无码一区二区| 无码国内精品人妻少妇| 狠狠噜天天噜日日噜无码| 无码专区国产精品视频| 97精品人妻系列无码人妻| 日韩人妻无码一区二区三区 | 特级小箩利无码毛片| 久久影院午夜理论片无码| 无码中文在线二区免费| 亚洲欧洲av综合色无码 | 无码欧精品亚洲日韩一区| 精品久久久久久无码人妻| 久久久久亚洲精品无码蜜桃| 人妻无码一区二区三区AV| 亚洲V无码一区二区三区四区观看 亚洲爆乳精品无码一区二区三区 亚洲爆乳无码一区二区三区 | 国产精品无码无卡无需播放器 | 久久久久亚洲AV无码专区网站| 亚洲啪AV永久无码精品放毛片| 午夜人性色福利无码视频在线观看 | 亚洲第一极品精品无码久久| 精品无人区无码乱码大片国产| 日韩毛片无码永久免费看| 日韩精品成人无码专区免费| 精品无码专区亚洲| 无码毛片一区二区三区中文字幕| 免费无码又黄又爽又刺激| 精品久久久久久久无码久中文字幕| 老司机亚洲精品影院无码| AV无码久久久久不卡网站下载 | 人妻无码久久精品人妻| 精品久久久无码中文字幕边打电话|