1. 程式人生 > >lodop列印控制元件破解思路詳解(二)

lodop列印控制元件破解思路詳解(二)

開篇介紹了本文要破解的物件,以及它的簡要截圖說明,下面正式開始說明破解過程。

準備工具:OD、偵殼工具、脫殼工具(當然大神如果是手工脫殼就不用看了)

1、 控制元件是以瀏覽器為載體的,不像c/s程式那樣直接可以用od載入程式執行,這裡我們得用瀏覽器開啟。

       首先開啟任意一款瀏覽器,找到測試的文件介面,點選列印預覽。然後用OD載入相應的程序。

 

接著我們點選OD上方的E,可執行模組,檢視呼叫了哪些DLL和OCX

發現有2個跟lodop相關的檔案,我們找到這個目錄。對這2個檔案進行分析下。

使用偵殼工具,發現lodop的編寫語言為 Delphi  ,使用了UPX加殼。

接著用Upx脫殼工具進行脫殼,我這裡使用的Upx脫殼機DLL,輕鬆的將殼脫了下來。

接下來,重新用OD載入,使用上面的步驟。OD載入之後,先用字串查詢外掛搜尋下我們要去掉的字串,

此時:我們找不到跟輸出字串一致的字串,這是許多軟體的常用手法。看來這條路走不通,我們得重新換一個思路試試。

分析:百度了一下lodop註冊,是在js的檔案裡,加入註冊帳號與密碼。在lodopfuc.js檔案中,有一處程式碼:

  //=====如下空白位置適合呼叫統一功能(如註冊碼、語言選擇等):====	     

	      var nb = LODOP.SET_LICENSES("commingsoftkkkkkk", "11111111111111111111", "", "");
	     //============================================================	     

這裡我只是按照它的規定長度範圍內,隨便輸入一個帳號密碼。

那麼,既然填入了帳號密碼?ocx程式碼中是否應該存在著一段檢測帳號密碼是否正確的地方呢 ???答案是肯定的,它肯定要檢測我的帳號密碼是否正確。

那我們再次回到字串查詢裡面,搜尋與帳號或密碼相關的字串,找到如下圖相關字串。

這裡我們隨便點選一個進去,比如該名稱被特別禁止。

點選後來到了我們除錯的ocx彙編程式碼處。分析下它的入口點在哪。

找下這段程式碼的入口點。然後下斷點。

OK.至此,我們已經可以保障除錯的順利進行了,也就是OD載入瀏覽器程序之後,點選列印預覽,在檢測帳號這段程式碼直接,會在OD中斷下來,下面就是根據彙編程式碼分析過程了 。

重複OD載入步驟,如無意外,OD會在我們下斷點的地方斷來了。

接下來就是一個耐心的過程,一步步往上的call找,因為這段程式碼在檢測使用者的時候執行的,所以離真正的檢測帳號call非常接近,細心的話幾分鐘就會發現驚喜。

因為這涉及到別人的版權,將不再貼圖發放。

在找的過程中會出現你輸入在js中的帳號字串,而在比對密碼的時候經過了加密處理,加密演算法我也沒能破解出來,但是最終你可以得到一個與你“隨便輸入帳號”的密碼相對應的一個密碼,也就是lodop把”你輸入的密碼“最終加工後的密碼字串,到這裡你把密碼填寫到你的js檔案中,就能達到破解的目地。(本人親測),同樣也可以在密碼比對的時候改變跳轉的規則(爆破),看自己喜歡了,爆破的東望各位就不要隨便的流傳出去了。

本文就著中講下瀏覽器外掛的破解思路,具體的反彙編分析過程這裡就不細談了。