OllyICE手拆OCR付費引擎
原本只是Coding需要用到把驗證碼圖內的驗證碼給取出來
大致上網路上Google了一下有三種方案:
- Windows Office 插件 (不過對扭曲,有線條干擾的支持度很差)
- Tessnet (好像是個開源專案,可以丟大量圖資讓引擎學習增加辨識度,不過不好用)
- Asprise - OCR (這好像本來就開發給商業使用的所以本來是要付費der)
至於本文主角當然就是....付費的那個(?)
至於詳細怎麼調用這個函數庫不多做介紹(Google一下都有)
大致上在.NET上調用作法為:
[調用.NET的asprise-ocr-api.dll的API]→[根據平台自動切換為aocr.dll/aocr_x64.dll的函數做處理]
不過如果你用的是官方頁面上下載的試用版本會發現:
要求付費的提示
每幫開發者辨識五張驗證碼便跳出一次訊息提示付費訊息
(至於為啥我知道五次?因為後面逆向發現的XD)
大致上反編譯一下asprise-ocr-api.dll可以看到註冊機制設置的不在這裡面,而是藏在Win32的aocr.dll跟Win64的aocr_x64.dll內做檢測到底要不要幫你辨識圖片
把asprise-ocr-api.dll沒有上花,餵給.NET Reflector直接可以翻code |
看到那個訊息可以很直接了當的知道用了MessageBoxA/W(後來實測是用A)
在MessageBoxA下斷點F8跟蹤回呼叫點可以看到狀態在這
如果按是(yes)返回值為6,就會跳到0F2E67E0做一個Shell官方網站的頁面
如果兩者or完不為空則直接跳至0F2E67FD繼續做辨識圖片的行為
找到爆破點了,在這邊下強跳
理論上到這邊就可以完美不跳出請求授權的視窗(我一開始也破解到這邊就收工了)
事隔幾個月後發現大事不妙,原來這層是在試用時間測試階段
意思是它好像有個次數給你用完就不能再繼續使用了Otz.
(所以你就算爆破跳窗問題也沒用,查了一下大部分網路上教學爆破也到這裡而已)
但可以往上翻一下會看到:
OK,現在真相大白惹,整個環節是:
引擎檢測授權→沒有授權就在註冊表開一個鍵值存放剩餘次數,並且每五次跳出授權請求視窗MessageBoxA→使用期限到了就不允許繼續使用辨識功能(也不會跳出授權請求視窗)
最後我的做法是直接在寫入鍵值做patch,避免剩餘次數,那麼就可以永保試用狀態
覺得黑
回覆刪除哈哈哈超級學生很鬧誒
刪除Adr大大!小弟來膜拜一下xD
回覆刪除問號XD 這很沒技術性的東西啊 只是想說網路上好像沒啥教學文就隨手寫一下
刪除