国产精品久av福利在线观看_亚洲一区国产精品_亚洲黄色一区二区三区_欧美成人xxxx_国产精品www_xxxxx欧美_国产精品久久婷婷六月丁香_国产特级毛片

錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
玩壞windows掃雷之一

作者: 佚名  日期:2017-06-20 16:13:13   來源: 本站整理

本帖最后由 1364847132 于 2017-6-20 02:19 編輯

前幾天看見吾愛的一個帖子:windows掃雷玩壞系列之各種玩 好像很好玩的樣子。
反正高考完了沒事做,然后我就繼續改了一下這個。有不足之處請大家指出。
效果圖:  增加了無敵這個選項。
需要工具:
1.資源工具,這里我用的Restorator(就是吾愛破解工具包里的那個)。
2.LordPE,用來加區段的。也可以用現成的工具:[PEtools] EXE區段添加,支持區段名 空間大小設置
3.od

首先用Restorator打開掃雷,按F6打開編輯模式改成這樣
 
把每個選項后面的數字記下來(我也不知道那叫啥) 我們添加的選項后面是十進制的530,十六進制就是0x212.然后保存。
保存后打開發現菜單里已經有了這個選項,但是并沒有什么實際作用。現在來給它添加點內容
od載入,下斷bp SetMenu,F9運行。
停下來后取消斷點Alt+F9執行到用戶代碼。來到了這里。
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
01003CE5  /$  8B4424 04     mov eax,dword ptr ss:[esp+0x4]
01003CE9  |.  A3 C4560001   mov dword ptr ds:[0x10056C4],eax
01003CEE  |.  E8 23D8FFFF   call winmine.01001516
01003CF3  |.  A1 C4560001   mov eax,dword ptr ds:[0x10056C4]
01003CF8  |.  24 01         and al,0x1
01003CFA  |.  F6D8          neg al
01003CFC  |.  1BC0          sbb eax,eax
01003CFE  |.  F7D0          not eax
01003D00  |.  2305 945A0001 and eax,dword ptr ds:[0x1005A94]
01003D06  |.  50            push eax                                ; /hMenu = 00000001
01003D07  |.  FF35 245B0001 push dword ptr ds:[0x1005B24]           ; |hWnd = 01E7015A ('掃雷',class='掃雷')
01003D0D  |.  FF15 C4100001 call dword ptr ds:[<&USER32.SetMenu>]   ; \SetMenu
01003D13  |.  6A 02         push 0x2
01003D15  |.  E8 36DCFFFF   call winmine.01001950
01003D1A  \.  C2 0400       retn 0x4

我們進第一個call看看。發現里面的所有call都指向了01003CC4,再看看push的參數是不是很熟悉。沒錯就是剛剛我叫你們記下的數字(上面紅色字體)。 
下面的代碼我已經把注釋打好了。
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
01001516  /$  33C0          xor eax,eax
01001518  |.  66:3905 A0560>cmp word ptr ds:[0x10056A0],ax
0100151F  |.  0F94C0        sete al
01001522  |.  50            push eax
01001523  |.  68 09020000   push 0x209                              ;  初級
01001528  |.  E8 97270000   call winmine.01003CC4
0100152D  |.  33C0          xor eax,eax
0100152F  |.  66:833D A0560>cmp word ptr ds:[0x10056A0],0x1
01001537  |.  0F94C0        sete al
0100153A  |.  50            push eax
0100153B  |.  68 0A020000   push 0x20A                              ;  中級
01001540  |.  E8 7F270000   call winmine.01003CC4
01001545  |.  33C0          xor eax,eax
01001547  |.  66:833D A0560>cmp word ptr ds:[0x10056A0],0x2
0100154F  |.  0F94C0        sete al
01001552  |.  50            push eax
01001553  |.  68 0B020000   push 0x20B                              ;  高級
01001558  |.  E8 67270000   call winmine.01003CC4
0100155D  |.  33C0          xor eax,eax
0100155F  |.  66:833D A0560>cmp word ptr ds:[0x10056A0],0x3
01001567  |.  0F94C0        sete al
0100156A  |.  50            push eax
0100156B  |.  68 0C020000   push 0x20C                              ;  自定義
01001570  |.  E8 4F270000   call winmine.01003CC4
01001575  |.  FF35 C8560001 push dword ptr ds:[0x10056C8]
0100157B  |.  68 11020000   push 0x211                              ;  顏色
01001580  |.  E8 3F270000   call winmine.01003CC4
01001585  |.  FF35 BC560001 push dword ptr ds:[0x10056BC]
0100158B  |.  68 0F020000   push 0x20F                              ;  標記
01001590  |.  E8 2F270000   call winmine.01003CC4
01001595  |.  FF35 B8560001 push dword ptr ds:[0x10056B8]
0100159B  |.  68 0E020000   push 0x20E                              ;  聲音
010015A0  |.  E8 1F270000   call winmine.01003CC4
010015A5  \.  C3            retn

我們在“標記”前面下斷,就是 01001585。
F9運行,菜單—》游戲—》標記。 ok停下來了。
經過多次實驗發現當這個0x10056BC的值為0就是取消,為1就是勾選。
就下來就需要找到是哪個地方更改了0x10056BC的值。
右鍵—》查找—》所有常量
 
把所有的都下斷,
 
F9運行,菜單—》游戲—》標記。 ok停下來,再取消所有斷點。
這里是很標準的switch語句,
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
01001DBC  |> \0FB745 10     movzx eax,word ptr ss:[ebp+0x10]        ;  Case 111 (WM_COMMAND) of switch 01001D5B
01001DC0  |.  B9 10020000   mov ecx,0x210
01001DC5  |.  3BC1          cmp eax,ecx
01001DC7  |.  0F8F 0F010000 jg winmine.01001EDC
01001DCD  |.  0F84 FF000000 je winmine.01001ED2
01001DD3  |.  3D FE010000   cmp eax,0x1FE
01001DD8  |.  0F84 EA000000 je winmine.01001EC8
01001DDE  |.  3BC6          cmp eax,esi
01001DE0  |.  0F84 B7000000 je winmine.01001E9D
01001DE6  |.  3D 08020000   cmp eax,0x208                           ;  Switch (cases 209..20F)
01001DEB  |.  0F8E B8030000 jle winmine.010021A9
01001DF1  |.  3D 0B020000   cmp eax,0x20B
01001DF6  |.  7E 61         jle short winmine.01001E59
01001DF8  |.  3D 0C020000   cmp eax,0x20C
01001DFD  |.  74 50         je short winmine.01001E4F
01001DFF  |.  3D 0E020000   cmp eax,0x20E
01001E04  |.  74 20         je short winmine.01001E26
01001E06  |.  3D 0F020000   cmp eax,0x20F
01001E0B  |.  0F85 98030000 jnz winmine.010021A9
01001E11  |.  33C0          xor eax,eax                             ;  Case 20F of switch 01001DE6
01001E13  |.  3905 BC560001 cmp dword ptr ds:[0x10056BC],eax
01001E19  |.  0F94C0        sete al
01001E1C  |.  A3 BC560001   mov dword ptr ds:[0x10056BC],eax
01001E21  |.  E9 24010000   jmp winmine.01001F4A

在01001DC0 下斷。F9運行再隨便點一下菜單內的選項,斷下后看eax就是我們點的選項所對應的數字(見上)。
好了,現在所有要改的地方都找到了,但是程序并沒有空間給我們寫代碼了。于是,添加區段。
 
這里我添加了兩個區段,icode與IDAta
od載入Ctrl+G來到01001DC0。我們分析一下這個switch語句。
[Asm] 純文本查看 復制代碼
1
2
3
01001DC0  |.  B9 10020000   mov ecx,0x210
01001DC5  |.  3BC1          cmp eax,ecx
01001DC7  |.  0F8F 0F010000 jg winmine.01001EDC                     ;  eax>0x210 跳

而我們添加的選項是0x212,這個一定要跳的,所以我們跟著跳下去看看。
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
01001EDC  |> \2D 11020000   sub eax,0x211                           ;  顏色; Switch (cases 211..251)
01001EE1  |.  74 36         je short winmine.01001F19
01001EE3  |.  83E8 3D       sub eax,0x3D                            ;  這下面是另一個菜單了
01001EE6  |.  74 23         je short winmine.01001F0B
01001EE8  |.  48            dec eax
01001EE9  |.  74 1A         je short winmine.01001F05
01001EEB  |.  48            dec eax
01001EEC  |.  74 11         je short winmine.01001EFF
01001EEE  |.  48            dec eax
01001EEF  |.  0F85 B4020000 jnz winmine.010021A9
01001EF5  |.  E8 231E0000   call winmine.01003D1D                   ;  Case 251 of switch 01001EDC
01001EFA  |.^ E9 5FFDFFFF   jmp winmine.01001C5E
01001EFF  |>  6A 00         push 0x0                                ;  Case 250 of switch 01001EDC
01001F01  |.  6A 04         push 0x4
01001F03  |.  EB 0A         jmp short winmine.01001F0F
01001F05  |>  6A 02         push 0x2                                ;  Case 24F of switch 01001EDC
01001F07  |.  6A 01         push 0x1
01001F09  |.  EB 04         jmp short winmine.01001F0F
01001F0B  |>  6A 00         push 0x0                                ;  Case 24E of switch 01001EDC
01001F0D  |.  6A 03         push 0x3
01001F0F  |>  E8 621E0000   call winmine.01003D76
01001F14  |.  E9 90020000   jmp winmine.010021A9
01001F19  |>  33C0          xor eax,eax                             ;  Case 211 of switch 01001EDC
01001F1B  |.  33FF          xor edi,edi                             ;  ntdll.7C93005D
01001F1D  |.  393D C8560001 cmp dword ptr ds:[0x10056C8],edi        ;  ntdll.7C93005D
01001F23  |.  0F94C0        sete al

01001EE1 是判斷是顏色選項就跳,而01001EE3是下一個菜單了,所以我們要把代碼插這中間。但是這中間沒有空間怎么辦,這時候我們添加的區段就派上用場了。
改 
[Asm] 純文本查看 復制代碼
1
01001DC7    - 0F8F 33D20100 jg winmine.0101F000                     ; 跳轉的地址改為我們添加區段的首地址

而0101F000這么寫
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
0101F000    2D 11020000     sub eax,0x211
0101F005  - 0F84 0E2FFEFF   je winmine.01001F19                     ; 先把本來的兩句抄過來
0101F00B    83F8 01         cmp eax,0x1                             ; 因為這里我們的是0x212,減去0x211后就是0x1了,和0x1比較
0101F00E    74 05           je short winmine.0101F015
0101F010  - E9 CE2EFEFF     jmp winmine.01001EE3                    ; 不是0x212就跳回到之前的代碼執行
0101F015    33C0            xor eax,eax
0101F017    3905 00000201   cmp dword ptr ds:[0x1020000],eax
0101F01D    0F94C0          sete al
0101F020    A3 00000201     mov dword ptr ds:[0x1020000],eax        ; 這4句是給0x1020000值取反的,就是1變成0,0變成1
0101F025  - E9 202FFEFF     jmp winmine.01001F4A

ps:0x1020000是我們添加的idata段的首地址,這個地址就是記錄我們添加的選項是勾選還是沒勾選。
Ctrl+G來到01001516

[Asm] 純文本查看 復制代碼
1
0100155D    - E9 CEDA0100   jmp winmine.0101F030

對應的0101F030這么寫
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
0101F030    33C0            xor eax,eax
0101F032    66:833D A056000>cmp word ptr ds:[0x10056A0],0x3
0101F03A    0F94C0          sete al
0101F03D    50              push eax
0101F03E    68 0C020000     push 0x20C
0101F043    E8 7C4CFEFF     call winmine.01003CC4
0101F048    FF35 C8560001   push dword ptr ds:[0x10056C8]
0101F04E    68 11020000     push 0x211
0101F053    E8 6C4CFEFF     call winmine.01003CC4
0101F058    FF35 BC560001   push dword ptr ds:[0x10056BC]
0101F05E    68 0F020000     push 0x20F
0101F063    E8 5C4CFEFF     call winmine.01003CC4
0101F068    FF35 B8560001   push dword ptr ds:[0x10056B8]
0101F06E    68 0E020000     push 0x20E
0101F073    E8 4C4CFEFF     call winmine.01003CC4                   ; 這里之前都是把原來的抄過來
0101F078    FF35 00000201   push dword ptr ds:[0x1020000]           ; 這里就是傳入0x1020000的值
0101F07E    68 12020000     push 0x212                              ; 這里是我們添加的選項的數字
0101F083    E8 3C4CFEFF     call winmine.01003CC4
0101F088  - E9 1825FEFF     jmp winmine.010015A5                    ; 跳到剛剛call的返回處

到此我們已經改完了。運行一下沒出錯。


最后總結一下,改的地方一共三處
1.
[Asm] 純文本查看 復制代碼
1
01001DC7    - 0F8F 33D20100 jg winmine.0101F000                     ;  地址改為我們添加區段的首地址

2.
[Asm] 純文本查看 復制代碼
1
0100155D    - E9 CEDA0100   jmp winmine.0101F030

3.
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
0101F000    2D 11020000     sub eax,0x211
0101F005  - 0F84 0E2FFEFF   je winmine.01001F19                     ; 先把本來的兩句抄過來
0101F00B    83F8 01         cmp eax,0x1                             ; 因為這里我們的是0x212,減去0x211后就是0x1了,和0x1比較
0101F00E    74 05           je short winmine.0101F015
0101F010  - E9 CE2EFEFF     jmp winmine.01001EE3                    ; 不是0x212就跳回到之前的代碼執行
0101F015    33C0            xor eax,eax
0101F017    3905 00000201   cmp dword ptr ds:[0x1020000],eax
0101F01D    0F94C0          sete al
0101F020    A3 00000201     mov dword ptr ds:[0x1020000],eax        ; 這4句是給0x1020000值取反的,就是1變成0,0變成1
0101F025  - E9 202FFEFF     jmp winmine.01001F4A
0101F02A    0000            add byte ptr ds:[eax],al
0101F02C    0000            add byte ptr ds:[eax],al
0101F02E    0000            add byte ptr ds:[eax],al
0101F030    33C0            xor eax,eax
0101F032    66:833D A056000>cmp word ptr ds:[0x10056A0],0x3
0101F03A    0F94C0          sete al
0101F03D    50              push eax
0101F03E    68 0C020000     push 0x20C
0101F043    E8 7C4CFEFF     call winmine.01003CC4
0101F048    FF35 C8560001   push dword ptr ds:[0x10056C8]
0101F04E    68 11020000     push 0x211
0101F053    E8 6C4CFEFF     call winmine.01003CC4
0101F058    FF35 BC560001   push dword ptr ds:[0x10056BC]
0101F05E    68 0F020000     push 0x20F
0101F063    E8 5C4CFEFF     call winmine.01003CC4
0101F068    FF35 B8560001   push dword ptr ds:[0x10056B8]
0101F06E    68 0E020000     push 0x20E
0101F073    E8 4C4CFEFF     call winmine.01003CC4                   ; 這里之前都是把原來的抄過來
0101F078    FF35 00000201   push dword ptr ds:[0x1020000]           ; 這里就是傳入0x1020000的值
0101F07E    68 12020000     push 0x212                              ; 這里是我們添加的選項的數字
0101F083    E8 3C4CFEFF     call winmine.01003CC4
0101F088  - E9 1825FEFF     jmp winmine.010015A5                    ; 跳到剛剛call的返回處



下一期再把無敵的功能真正加進去,其實你們也可以參考最上面的鏈接,自己改.   


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

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

    技術支持:微軟等
    亚洲理论在线| 尤物在线视频| 欧美一区二区三区在线| 日本色护士高潮视频在线观看| h视频免费高清在线观看| 欧洲天堂在线观看| 免费精品视频在线| 色婷婷**av毛片一区| 亚洲综合成人婷婷小说| 久久99久久精品国产| 丰满岳乱妇一区二区| 欧美精品一区二区三区久久| av免费观看网| 亚洲精品人成电影网| 国产福利资源在线| 自拍视频在线| 国产精品久久久久影院色老大| 中文字幕字幕中文在线中不卡视频| 亚洲女与黑人做爰| 美日韩精品免费视频| 久久久久久久久久久av| 动漫3d精品一区二区三区| 538国产精品一区二区免费视频| 国产精品亚洲аv天堂网| 欧美日韩一区在线播放| 成人在线观看免费完整| 国产毛片久久久久久久| 久久久久久少妇| 日日噜噜噜夜夜爽爽狠狠| h在线观看视频免费网站| 欧美日韩亚洲一区| 亚洲免费观看高清完整版在线观看熊 | 欧美日韩一区二区在线视频| 国产精品久久久一区麻豆最新章节| 日韩精品一区二区三区中文不卡 | 亚洲一级不卡视频| 亚洲黄色成人网| 农村妇女精品一区二区| 国产美女裸体无遮挡免费视频| 免费黄色在线视频网站| 亚洲第一成人在线视频| 日本一区二区三区久久| 亚欧洲精品视频| 日韩a级作爱片一二三区免费观看| 林ゆな中文字幕一区二区| 国产精品久久久久久久久免费丝袜| 欧美有码在线观看视频| 国产国语亲子伦亲子| 亚洲每日更新| 日本丰满少妇裸体自慰| 欧美gay1069大粗吊| av三级在线播放| 亚洲欧美在线综合| 欧美日韩在线影院| 午夜xxxxx| 亚洲视频免费播放| 一区二区电影| 日韩中文不卡| aⅴ在线视频男人的天堂| 亚洲精品国产一区二区精华液| 精品成人a区在线观看| 污污网站免费观看| 国产精品夜夜嗨| 青娱乐91视频| 欧美国产91| 精品国产av无码一区二区三区| 97视频免费| 久久一本综合| 精品国产一区三区| 波多野结衣精品| 欧美日韩久久一区| 亚洲va在线va天堂va偷拍| 日本xxxxxxx免费视频| 日本老熟俱乐部h0930| www.色五月.com| 亚洲天堂av网| 深田咏美中文字幕| 女人香蕉久久**毛片精品| 欧美一二三视频| 日本熟妇成熟毛茸茸| 欧美黑人巨大xxxx猛交| av一二三不卡影片| 天天爽天天狠久久久| 欧美bbbbbbbbbbbb精品| 电影av一区| 亚洲高清三级视频| 欧美一级免费播放| 色欲av伊人久久大香线蕉影院| 国产精品剧情| 亚洲欧洲制服丝袜| 欧美性受xxxxxx黑人xyx性爽| 久久久久久免费观看| 乱小说欧美综合| 久久不见久久见国语| 欧美日韩在线视频观看| av漫画在线观看| 国产精品视频一区视频二区 | 国产www视频在线观看| 奇米成人av国产一区二区三区| 下面一进一出好爽视频| 黄色影院在线看| av2014天堂网| 成年人国产在线观看| 国内精品久久久久久中文字幕| 黄色美女一级片| 亚洲sss视频在线视频| 在线免费av播放| 中国成人一区| 亚洲av无码国产精品久久不卡| 亚洲欧洲av| 久久99精品久久久久久三级 | 日本一极黄色片| 亚洲国产激情| 无码无套少妇毛多18pxxxx| 在这里有精品| 成人有码在线播放| 五月香视频在线观看| 成人亲热视频网站| 国产在线精品一区在线观看麻豆| 久久久久人妻精品一区三寸| 免费人成网ww777kkk手机| 中文字幕一区二区三区不卡| 天堂网2014av| 国产精品色悠悠| 国产女人在线视频| www.午夜av| 国产成人在线色| 亚洲 欧美 日韩 在线| 亚洲成人在线视频播放| 国产精品免费麻豆入口| 一本色道久久综合亚洲91| 男人用机机桶女人| 亚洲免费av观看| 三级在线观看视频| 91精品国产高清久久久久久| 亚州色图欧美色图| 亚洲精品成人久久久| www.夜色| 精品国产一区二区三区麻豆小说 | 久久激情免费视频| 日本高清不卡在线观看| 中文字幕丰满人伦在线| 成人影院在线| 91极品视频在线观看| 91免费视频网址| 在线观看日本黄色| 亚洲黄色性网站| 亚洲欧洲午夜| heyzo高清在线| 国语精品免费视频| 高清欧美日韩| 日韩欧美黄色动漫| 欧美日韩美女视频| 手机在线免费看毛片| 狠狠做六月爱婷婷综合aⅴ| 男男视频在线观看网站| 国产凹凸在线观看一区二区| 国产一区二区三区四区三区四| 久久精品国产68国产精品亚洲| 国产免费久久精品| 国产日韩一区二区三区| 黄色av网址在线| 欧美卡1卡2卡| 超碰在线公开97| 亚洲91av| 日本高清不卡三区| 欧美国产91| 成人高清免费在线| 久久久国产精品黄毛片| 国产亚洲第一区| 成人免费在线视频| 日日夜夜一区二区| 国产精品美女久久久久av爽| 欧美日韩一区二区三| 国产亚洲一区二区三区四区| 91香蕉视频在线观看| 欧美一区二区三区四区在线| 精品一区二区三| 影音先锋男人每日资源站| 国产精品激情自拍| 欧美日韩激情| 国产人成在线视频| 人人妻人人澡人人爽久久av| 亚洲精品一区二区在线观看| 久久国产精品美女| 国产精品无码专区av在线播放| 亚洲美女在线国产| 国产欧美精品一区| 亚洲精品a区| 日韩精品久久一区| 99久久婷婷国产| 91网页在线看| 欧美一区二区黄片| www.88av| 中文字幕理论片| 顶级黑人搡bbw搡bbbb搡| 亚洲第一主播视频| 国产精品的网站| 亚洲毛片在线看| 欧美精品视频www在线观看|