破解軟體的思路

來源:互聯網
上載者:User

核心思想:objdump -d 找到關鍵彙編代碼,然後用ghex2 開啟可執行程式,修改和彙編對應的機器碼,當然前提是對彙編足夠瞭解。

下面講一個簡單在linux上的例子:

1.   先建立一個簡單的程式,

 

#include <iostream>using namespace std; bool abc(){return false; }int main(int argc, char *argv[]){if(abc()){cout  <<  "hacked" << endl; }else{cout  <<  "not hacked" << endl; }return 0; }

2.  用g++ main.cpp編譯成可執行程式a.out,

 

3.    運行./a.out 輸出:

 not hacked

4.  調用 objdump -d a.out > simple.txt

5.  在simple.txt中搜尋abc,找到如下代碼

 

080486f4 <_Z3abcv>: 80486f4:55                   push   %ebp 80486f5:89 e5                mov    %esp,%ebp 80486f7:b8 00 00 00 00       mov    $0x0,%eax 80486fc:5d                   pop    %ebp 80486fd:c3                   ret 

6.   然後用ghex2開啟a.out, 搜 55 89  e5 b8 00 00 00 00, 找到這段彙編對應的機器碼的位置,

 

7.   最後到了關鍵一步, 把上面的一段機器碼改成 55 89  e5 b8 01 00 00 00, 其實只改了一個字,意思是把返回false改成返回true。

8.   再次運行./a.out 輸出: hacked。大功告成。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.