今天看完魚c論壇的od教程之後,嘗試用自己的思路做一做。
目標: ①去除使用次數限制。
②去除退出時的廣告。
思路:①先讓使用次數達到上限,開啟時出現註冊對話方塊。這時在od裡暫停,通過檢視堆疊呼叫,可以大致定位到判斷節點。
②對照未達到使用上限的軟體,觀察①中節點附近的執行狀況,並進行修改。
具體步驟:
1、 首先將軟體反覆執行,直至出現次數限制提示,如下:
2、 載入可執行檔案,f9執行,出現上面的對話方塊之後暫停。
這時程式停在系統領空,等待接受訊息。ctrl+k檢視堆疊內的函式呼叫,如下圖:
從「呼叫來自」視窗可以看到,程式領域內的visualsi.004899b3處呼叫了系統領空的mfc43模組,雙擊檢視該位置。並按下f2設定下斷點。對於使用次數是否為0的檢測大概就在這之前。
往前觀察,發現以下函式被呼叫:
regqeurtvalueexa()
regclosekey()
到這裡猜到程式應該是根據登錄檔來判斷是否達到使用限制,這也就將判斷點定位到了乙個區間內(從讀登錄檔到出現提示註冊對話方塊)。
下面對未到達使用上限的程式進行除錯。定位到該區間內,並留意具體的每個跳轉語句是否實現跳轉,並在對應語句後面寫下注釋(y代表跳轉實現,n代表跳轉未實現)。
這裡我是在另外一台主機上進行的,因為在原先主機上,即使開啟新的軟體依然會提醒使用限制,因為登錄檔內容已經被修改。
然後返回已經被限制的程式,單步執行,對比上述區間內差異,同時修改。
應該跳轉的時候未跳轉,可以用無條件跳轉指令jmp替換條件跳轉指令;
不應該跳轉的地方跳轉了,可以用nop將跳轉指令填充掉。
實際上修改的只有下面這一處。
修改完成儲存上述修改,並在修改處作注釋。執行結果ok。
二、去除退出時的煩人廣告。
1、重新載入可執行檔案,f9執行,退出程式,出現廣告。暫停執行,這時程式應該停在系統領空,等待接受訊息。與之前一樣,ctrl+k撥出堆疊,檢視函式呼叫,如下圖:
觀察到在使用者領空00480c24處呼叫了mfc24,雙擊跟進。
f2下斷點。ctrl+f2重新載入,執行到斷點,單步執行,顯示廣告,關閉廣告後,程式停在下一條語句。所以可以把整條語句用nop填掉,不影響程式退出。儲存修改之後可以發現廣告已經去除。
一次軟工嘗試
轉眼間一學期的軟體工程的課程就結束了,我覺得經過這乙個學期軟工的學習,從最初的個人的程式設計規範到測試,到團隊的協作去共同完成乙個稍大一點的專案,以及周二的需求分析的課程,我覺得在軟工課上學到的有兩個方面,乙個是如何對自己頭腦中的模糊的目標進行一步步逐漸加強的設計,到自己對這個目標或者專案的各個環節...
第一次嘗試
python是資料結構筆記一 引入 以一道題來展示 如果a b c 1000,且a 2 b 2 c 2 a,b,c為自然數 求a,b,c可能的組合 解析 列舉法 思路 a 0.b 0.c 先讓其中的乙個數a去不變,b變化,當b確定乙個數的時候c去變化 也就是利用迴圈巢狀的方式 乙個個的試,那麼就有多...
第一次嘗試
第一次嘗試呢 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展...