国产精在线-国产精欧美一区二区三区-国产精视频-国产精品 日韩-一级黄色片在线看-一级黄色片在线播放

【OD&x64dbg破解01】簡單爆破序列號驗證

本文內容是一個簡單的TraceMe,來自看雪的一個程序。

輸入用戶名和序列號,點擊Check,來判斷是否登錄賬號

輸入假碼,點擊Check,會提示序列號錯誤

話不多說,載入OD,先使用最簡單的字符串查詢方法

可以看到,有很多的假提示。那么這個程序可能就不能使用字符串方法來定位破解的程序位置了

使用API斷點好了。先來分析一下流程:

輸入用戶名序列號->程序獲取內容->判斷內容

從獲取內容的序列號來斷點,選擇插件->API斷點設置工具

獲取文本框內容的函數是GetDlgItemText

GetDlgItemTextA為ASCII版本的函數,GetDlgItemTextW為Unicode版本的函數

下好斷點,點擊運行,輸入用戶名和序列號,點擊Check

就會來到系統領空,這個是系統的API函數位置,執行到返回,可以使用Ctrl+F9執行到返回,在按一下F8,就回到了程序領空

可以看到兩個call,這個估計是獲取文本框內容的,分別獲取用戶名和序列號。

為了進一步驗證,使用F8走,可以看到在不遠處,將文本框內容,applek入棧了

執行到004011E4地址,可以看到序列號和用戶名都入棧了,并且分別寄存在EAX和EDX

接下來就會進行比較了,可以看到call一個函數,這個函數一般來說就是驗證函數了。并且在下面還有一個test函數,就是驗證是否正確的語句。并且緊跟著一個je

驗證函數如下

00401340  /$  55            push ebp
00401341  |.  8B6C24 0C     mov ebp,dword ptr ss:[esp+0xC]           ;  TraceMe.004011EA
00401345  |.  56            push esi
00401346  |.  57            push edi
00401347  |.  8B7C24 18     mov edi,dword ptr ss:[esp+0x18]
0040134B  |.  B9 03000000   mov ecx,0x3
00401350  |.  33F6          xor esi,esi
00401352  |.  33C0          xor eax,eax
00401354  |.  3BF9          cmp edi,ecx
00401356  |.  7E 21         jle short TraceMe.00401379
00401358  |.  53            push ebx
00401359  |>  83F8 07       /cmp eax,0x7
0040135C  |.  7E 02         |jle short TraceMe.00401360
0040135E  |.  33C0          |xor eax,eax
00401360  |>  33D2          |xor edx,edx
00401362  |.  33DB          |xor ebx,ebx
00401364  |.  8A1429        |mov dl,byte ptr ds:[ecx+ebp]
00401367  |.  8A98 30504000 |mov bl,byte ptr ds:[eax+0x405030]
0040136D  |.  0FAFD3        |imul edx,ebx
00401370  |.  03F2          |add esi,edx
00401372  |.  41            |inc ecx
00401373  |.  40            |inc eax
00401374  |.  3BCF          |cmp ecx,edi
00401376  |.^ 7C E1         \jl short TraceMe.00401359
00401378  |.  5B            pop ebx                                  ;  user32.GetDlgItemTextA
00401379  |>  56            push esi                                 ; /<%ld> = 0x0
0040137A  |.  68 78504000   push TraceMe.00405078                    ; |%ld
0040137F  |.  55            push ebp                                 ; |s = 0012F968
00401380  |.  FF15 9C404000 call dword ptr ds:[<&USER32.wsprintfA>]  ; \wsprintfA
00401386  |.  8B4424 1C     mov eax,dword ptr ss:[esp+0x1C]
0040138A  |.  83C4 0C       add esp,0xC
0040138D  |.  55            push ebp                                 ; /String2 = "applek"
0040138E  |.  50            push eax                                 ; |String1 = NULL
0040138F  |.  FF15 04404000 call dword ptr ds:[<&KERNEL32.lstrcmpA>] ; \lstrcmpA
00401395  |.  F7D8          neg eax
00401397  |.  1BC0          sbb eax,eax
00401399  |.  5F            pop edi                                  ;  user32.GetDlgItemTextA
0040139A  |.  5E            pop esi                                  ;  user32.GetDlgItemTextA
0040139B  |.  40            inc eax
0040139C  |.  5D            pop ebp                                  ;  user32.GetDlgItemTextA
0040139D  \.  C3            retn

執行到 004011F5? je short TraceMe.0040122E

如果不修改的話,會直接提示失敗了。程序為了迷惑我們,可以看到幾個成功的字樣。。。

那么先讓je不跳,直接使用nop填充,結果提示成功了

使用Xdbg64破解

按照上面的方法,只需要設置API斷點即可,原版的X64dbg沒有插件,這兒直接使用命令設置斷點

這個命令OD也能使用bpx GetDlgItemTextA

輸入

回車,即可添加斷點,可以看到斷點已經設置

接下來的方法和OD是一樣的了,在跳轉的函數,選擇右鍵->二進制->用NOP填充

一樣成功

課件下載

https://storage.tirr.com.cn/s/1d9tjy4b

THE END
主站蜘蛛池模板: 国产一区二区日韩欧美在线 | 欧美俄罗斯一级毛片激情 | 久久精品视频6 | 欧美一区二区三区日韩免费播 | 欧美大片一区 | α级毛片| 欧美特黄一片aa大片免费看 | 亚洲精品99久久久久中文字幕 | 欧美一区二区高清 | 久久爱一区 | 国产高清视频a在线大全 | 天天亚洲 | 欧美午夜精品久久久久免费视 | 欧美真人视频一级毛片 | 国产一区亚洲二区三区毛片 | 欧美精品一区二区在线观看 | 萌白酱喷水福利视频在线 | 久久精品国产三级不卡 | 国产精品正在播放 | 亚洲三级网址 | 国产一区二区在线观看视频 | 中文字幕一区二区小泽玛利亚 | 国产视频一区二区三区四区 | 中文字幕亚洲一区二区v@在线 | 俺来也欧美亚洲a∨在线 | 亚洲人成人毛片无遮挡 | 精品欧美亚洲韩国日本久久 | 日韩在线一区二区三区视频 | 99热久久国产综合精品久久国产 | 免费观看a毛片一区二区不卡 | 久久免费视频1 | 国产高清厕所盗摄视频 | 热热涩热热狠狠色香蕉综合 | 亚洲国产夜色在线观看 | 成人牲交一极毛片 | 色香欲综合成人免费视频 | 国产三级香港在线观看 | 欧美韩国日本一区 | 模特视频一二三区 | 日本午夜高清视频 | 欧美超高清xoxoxoxo |