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

【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
主站蜘蛛池模板: 国产精品久久久久久久久久影院 | 精品久久一区二区三区 | 91成人在线播放 | 看美国毛片 | 在线精品免费视频 | 亚洲免费人成在线视频观看 | 精品国产品香蕉在线观看 | 欧美成年黄网站色视频 | 在线播放另类 | 成人精品一区二区久久 | 亚洲精品区在线播放一区二区 | 亚洲一区二区三区在线视频 | 国产午夜精品理论片久久影视 | 91亚洲人成手机在线观看 | 免费一区二区三区视频狠狠 | 一级毛片在线不卡直接观看 | 久久久毛片 | 免费亚洲视频 | 欧美精品一区二区三区视频 | 亚洲图片视频在线 | 国产精品久久久香蕉 | 精品久久网 | 国产精品一区在线播放 | 99精品这里只有精品高清视频 | 成人在线网 | 国产一级久久久久久毛片 | 成人久久18网站 | 久久不见久久见免费影院www日本 | 久久99国产精品久久99无号码 | 亚洲一级免费毛片 | 国产精品videosse | 国产专区第一页 | 韩国毛片一级 | 一区二区成人国产精品 | 亚洲在线视频网站 | 久久免费视频99 | 国产成人综合95精品视频免费 | 和日本免费不卡在线v | 免费国产成人α片 | 日本卡一卡2卡3卡4精品卡无人区 | 美女一级免费毛片 |