od開啟 明顯有殼
f9先執行程式 2、ctrl+g輸入401000到解碼段,如果出現db **
說明已經解碼過,脫離了程式本身的殼
滑鼠右鍵->分析->從模組中刪除分析 在這可以搜尋字串
搜尋字串 「未購買」
004bc939 ba 8cca4b00 mov edx,engydt.004bca8c ; - 未購買使用者因為這裡顯示未購買,那麼前面一定有個地方是判斷了註冊碼的正確與否,我們向上翻
004bc8a0 ba 40ca4b00 mov edx,engydt.004bca40 ; software\engydt這裡是關於登錄檔項的資訊,程式肯定時在啟動的時候訪問了登錄檔,提取了我們輸入的使用者名稱和假碼,然後判斷是錯誤,所以註冊失敗,我們在這裡下斷點。重新執行
ps;為何選擇在這裡下斷點呢?因為軟體讀取登錄檔裡的註冊碼後,會和真碼進行比較,斷在這裡,然後進行單步除錯,就可以找到真碼了。
下個getstartupinfoa斷點,重新執行,讓程式在解碼後未真正"執行"前斷下來
ps:為何要在這個api下斷點?我的理解是由於加了殼,所以程式中登錄檔項下的那個斷點是不能用的,只得在軟體脫殼後且未驗證之前再下乙個斷點,讓我們有時間來手動啟用登錄檔項中的斷點。
f9 執行
發現程式已經在初始化之前斷了下來
現在我們檢視下斷點
觀察斷點視窗,前面下的斷點a,b,c如果顯示是add byte ******表示還
沒解碼完成。繼續f9執行程式,直到顯示正常匯程式設計序**,
刪除或禁用getstartupinfoa斷點,因為是有殼的程式,這時下的a,b,c斷點
是禁用的,我們右鍵啟用它,f9執行,程式會斷在a,b,c斷點處斷下。
f9執行 可以看到成功在登錄檔項處斷了下來
然後我們開始f8單步執行 來分析
直到註冊碼在堆疊視窗出現
有殼的程式不能儲存,需要打補丁,這裡直接複製了註冊碼就成功註冊了。
posted @
2019-04-15 09:44
卿先生 閱讀(
...)
編輯收藏
shark介面1分析(二) suspend流程
shark流程掛起過程 1 得到執行管理器介面 executionadministrationea shark.getinstance getadmininte ce getexecutionadministration 2 連線工作流伺服器 ea.connect username,password...
菜鳥筆記 1 暴力破解簡單程式
輸入任意數值,單擊登陸 記錄關鍵字 經過查殼後發現無殼 將login.exe載入ollydbg程式,單擊執行按鈕 或快捷鍵f9 單擊反彙編視窗,按ctrl g快捷鍵,在彈出的對話方塊中輸入 00401000 單擊 確定 按鈕。然後右鍵選單選擇 中文搜尋引擎 智慧型搜尋 在彈出字串介面,按快捷鍵ctr...
破解 彙編學習筆記
1.迴圈,用得比較多,也是加密 驗證常用的 mov eax,dword ptr ss ebp 4 call xx 這一般是取長度 test eax,eax loop jbe xx 長度為0,不做迴圈 mov edx,1 從第乙個開始 delphi程式 mov ecx,dword ptr ss ebp...