日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7.破解的最简单例子

發布時間:2025/6/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7.破解的最简单例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

書上分析的那些東西,我手里沒有相關PE文件,我就自己隨便寫一個最簡單的,然后來破解下吧(代碼我最后公布):

先雙擊運行下,發現是這個樣子:

?

OK?看到的是?MessageInt.NO,點擊確定之后,程序就退出了。到底是個啥,當然此時我們也不知道,直接先定位到這個字符串附近,看看代碼啥意思:

雙擊

然后突然覺得應該是搜索MessageBoxW才對,這樣如果上層是if判斷實處NO或者YES啥的也方便看,結果:

發現只有一次調用。而且之前字符串查找的時候也只發現一個MessageInt.NO沒有發現什么別的YES啥的字符串,其實這個地方是我的問題,我不是說自己寫的Demo然后分析嗎,我開了優化,自動把代碼優化掉了。最后看我C++代碼就知道啦。所以這個地方把優化全都關閉了,或者VS的直接Debug生成程序。然后再分析:

直接查函數調用

?

OK是兩個,點進去看下:

jnz?如果不相等,直接跳轉到013B1758執行,否則執行繼續執行下一行。OK第一反應是直接把這個jnz改成je或者jz就好了。看看效果:

?

在匯編代碼區域右鍵,復制可執行文件。然后點擊保存,生成XXX.exe文件,雙擊XXX的EXE文件看效果:

OK?破解成功了。其實分析那塊匯編部分破解方式還有很多種,比如:

分析完是這樣,我都寫在注釋里了。

可以用IDA看一下:

繼續IDA按F5反編譯:

?

額...看到的是這么個東西。好吧。

然后我修訂了0x1234+0x5678的正確值

繼續執行,發現輸出YES。保存文件之后,重新點擊PE文件是破解了的。

IDA看下發現其實比較的地方那個值已經修改了:

還有其他的破解方式,大家自己探索吧,我把源代碼貼到下面(很簡單,經過上面也都看出來了)VS2015?C++

#include "stdafx.h" #include <iostream> #include <windows.h> using namespace std; int main(){DWORD dwNumber1 = 0x1234;DWORD dwNumber2 = 0x5678;if (dwNumber1 + dwNumber2 == 0x1234) {MessageBox(NULL ,L"MessageInt.YES" , L"Title", NULL);}else {MessageBox(NULL, L"MessageInt.NO", L"Title", NULL);}return 0; }

?

總結

以上是生活随笔為你收集整理的7.破解的最简单例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。