OllyDbg 使用筆記 (十)

來源:互聯網
上載者:User

標籤:ollydbg   反組譯碼   

OllyDbg 使用筆記 (十)


參考

書:《加密與解密》

視頻:小甲魚 解密系列 視頻


樣本程式:http://pan.baidu.com/s/1kT1ce83



這個程式可以從標題列的“ unregistered”入手,尋找所有參考文本字串,搜尋 “unregistered”


可以找到這段代碼:


004046DD      90            nop004046DE      90            nop004046DF      90            nop004046E0  /$  8A4424 04     mov     al, byte ptr [esp+4]004046E4  |.  84C0          test    al, al004046E6  |.  74 12         je      short 004046FA004046E8  |.  A1 440A4300   mov     eax, dword ptr [430A44]004046ED  |.  68 F09C4200   push    00429CF0                         ; /Text = "Flash Jigsaw Producer"004046F2  |.  50            push    eax                              ; |hWnd => NULL004046F3  |.  FF15 5C924200 call    dword ptr [<&USER32.SetWindowTex>; \SetWindowTextA004046F9  |.  C3            retn004046FA  |>  8B0D 440A4300 mov     ecx, dword ptr [430A44]00404700  |.  68 C89C4200   push    00429CC8                         ; /Text = "Flash Jigsaw Producer (unregistered)"00404705  |.  51            push    ecx                              ; |hWnd => NULL00404706  |.  FF15 5C924200 call    dword ptr [<&USER32.SetWindowTex>; \SetWindowTextA0040470C  \.  C3            retn0040470D      90            nop0040470E      90            nop


可以發現004046E0~0040470C 是一段函數。

我們可以發現je跳轉比較關鍵,在這裡可以先嘗試讓je不跳轉。但是這樣只能使標題中不會出現(unregistered),被屏蔽的功能還是不能使用。

直接改je跳轉不行,我們可以看看引起je跳不跳轉到al,al是call這個函數的參數,我們需要找到call這個函數的地方,查看al的變化。


在004046E0下斷點。重新載入程式。按F9運行到斷點處。

可以在資訊版本中看到調用這個函數的地址。

圖片1



選中右鍵即可跳到call的地址。


想要找出call這個函數的地址,還可以選中004046E0,右鍵--〉尋找參考--〉選定命令,即可看到call這個函數的地址。

圖片2



我們可以看到,有兩地方call這個函數,在這兩個地方都下斷點。重新載入程式,按F9運行到第一個調用函數的命令。

004047AB  |.  68 60034300   push    00430360                         ; /IniFileName = "C:\Users\vbox32\AppData\Local\YavSoft\fjproducer\startup.ini"004047B0  |.  6A 28         push    28                               ; |BufSize = 28 (40.)004047B2  |.  68 34034300   push    00430334                         ; |ReturnBuffer = fjproduc.00430334004047B7  |.  68 089D4200   push    00429D08                         ; |Default = "<-No Pass->"004047BC  |.  51            push    ecx                              ; |Key => "Password"004047BD  |.  68 149D4200   push    00429D14                         ; |Section = "Registration"004047C2  |.  FF15 68904200 call    dword ptr [<&KERNEL32.GetPrivate>; \GetPrivateProfileStringA004047C8  |.  68 34034300   push    00430334                         ;  ASCII "<No Pass>"004047CD  |.  E8 6EFEFFFF   call    00404640004047D2  |.  50            push    eax004047D3  |.  E8 08FFFFFF   call    004046E0004047D8  |.  83C4 08       add     esp, 8004047DB  |.  5E            pop     esi004047DC  |.  83C4 28       add     esp, 28004047DF  \.  C3            retn


我們可以發現改變al的是call 004046E0,在它上面下斷點,進入這個函數,可以發現這個函數是計算金鑰組不對的函數。


00404640  /$  83EC 2C       sub     esp, 2C00404643  |.  56            push    esi00404644  |.  8B7424 34     mov     esi, dword ptr [esp+34]00404648  |.  8BC6          mov     eax, esi0040464A  |.  8D50 01       lea     edx, dword ptr [eax+1]0040464D  |.  8D49 00       lea     ecx, dword ptr [ecx]00404650  |>  8A08          /mov     cl, byte ptr [eax]00404652  |.  40            |inc     eax00404653  |.  84C9          |test    cl, cl00404655  |.^ 75 F9         \jnz     short 0040465000404657  |.  2BC2          sub     eax, edx00404659  |.  83F8 04       cmp     eax, 40040465C  |.  73 07         jnb     short 004046650040465E      32C0          xor     al, al00404660  |.  5E            pop     esi00404661  |.  83C4 2C       add     esp, 2C00404664  |.  C3            retn00404665  |>  6A 03         push    300404667  |.  68 C49C4200   push    00429CC4                         ;  ASCII "fjr"0040466C  |.  56            push    esi0040466D  |.  E8 6EAA0100   call    0041F0E000404672  |.  83C4 0C       add     esp, 0C00404675  |.  85C0          test    eax, eax00404677  |.^ 75 E5         jnz     short 0040465E


F8單步運行,可以發現是xor al,al 把al變成0的,可以把xor al,al  改成mov  al,1。在運行,可以發被屏蔽的功能已經可以用了。








OllyDbg 使用筆記 (十)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.