飄云閣(PYG官方)

 找回密碼
 加入論壇

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

查看: 282|回復: 4
打印 上一主題 下一主題

[原創] mindManager 2019 32bit 安全分析

[復制鏈接]
  • TA的每日心情
    郁悶
    2019-10-1 14:20
  • 簽到天數: 7 天

    [LV.3]偶爾看看II

    跳轉到指定樓層
    樓主
    發表于 2019-10-1 14:37:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    目標軟件:mindManager 2019 32bit
    使用工具:x32dbg
    初學入門,只為學習,如有侵權或不正確的地方還忘指教。


    找一個假的注冊碼,mindManager認為是真的注冊碼
    例如:MP78-812-2P94-D1DM-35F3
    輸入密鑰,mindManager會彈出錯誤,一般這個時候可以在MessageBoxW上下斷點
    通過調用棧往上找,直到在調用函數里發現如下字樣,基本上就到關鍵點了
    FF15 9C7FEE00  | CALL DWORD PTR DS:[<&[email protected]@@[email protected][email protected][email protected][email protected]@@@@@[email protected]@[email protected]>]
    往下看,看到這幾個比較指令,其中只有0x1才是正確的,所以把比較0x1,直接改為jmp指令
    00A4C80F       | CALL <mindmanager.sub_A4C640>
    00A4C814       | MOV DWORD PTR SS:[EBP-0x2C],EAX
    00A4C817       | MOV EDX,DWORD PTR SS:[EBP-0x2C]
    00A4C81A       | MOV DWORD PTR SS:[EBP-0x14],EDX
    00A4C81D <mind | CMP DWORD PTR SS:[EBP-0x14],0x0
    00A4C821       | JE mindmanager.A4C83C         
    00A4C823       | CMP DWORD PTR SS:[EBP-0x14],0x1
    00A4C827       | JE mindmanager.A4C989          <------------------直接改為jmp
    00A4C82D       | CMP DWORD PTR SS:[EBP-0x14],0x2
    00A4C831       | JE mindmanager.A4C9F3         
    00A4C837       | JMP mindmanager.A4CA55            
    以上的步驟完成了注冊時的驗證,會把注冊信息寫入注冊表。
    程序在重啟的時候還會進行檢測。既然是寫入注冊表的,那就要在幾個讀注冊表的API上下斷點
    如:
    <kernel32.dll.RegOpenKeyExW>                   已啟用       MOV EDI,EDI                                         0     
    <kernel32.dll.RegCloseKey>                     已啟用       MOV EDI,EDI                                         0     
    <kernel32.dll.RegCreateKeyExW>                 已啟用       MOV EDI,EDI                                         0     
    <advapi32.dll.RegQueryValueA>                  已啟用       PUSH 0x24                                           0     
    <advapi32.dll.RegQueryValueW>                  已啟用       PUSH 0x24                                           0     
    但是,經過實踐,都斷不下來。那就要想別的辦法了。
    按常理,它的注冊驗證算法在啟動時調用的和注冊時調用的應該是同一個地方,除非是不按套路出牌,非要驗證代碼復制一份給啟動時調用。雖然說這樣做沒什么問題,但是軟件以后的維護就是個大問題了。所以我們還是進比較指令前面的CALL <mindmanager.sub_A4C640> 里看看有沒有什么新發現。看到又調用了CALL <mindmanager.sub_6E4830>,后面還有個TEST EAX,EAX,比較可疑。改下返回值跑一下,OK通過了。接下來修改sub_6E4830,讓它永久返回1,代碼如下:
    | 55                    | PUSH EBP                     
    | 8BEC                  | MOV EBP,ESP                  
    | 68 60022601           | PUSH mindmanager.1260260      
    | 8B45 08               | MOV EAX,DWORD PTR SS:[EBP+0x8]
    | 50                    | PUSH EAX                     
    | E8 3FF8FFFF           | CALL <mindmanager.sub_6E4080>
    | 83C4 08               | ADD ESP,0x8                  
    | 5D                    | POP EBP                       
    | 40                    | INC EAX           <--------------------EAX本來是0,讓它加1            
    | C3                    | RET                           
    經驗證,這里返回1,上面的可以不用改jmp指令。


    評分

    參與人數 3威望 +7 飄云幣 +12 收起 理由
    Rooking + 5 + 10 PYG有你更精彩!再接再厲
    飛天 + 1 + 1 PYG有你更精彩!
    陽光宅男 + 1 + 1 感謝發布原創作品,PYG有你更精彩!

    查看全部評分

    分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友 微信微信
    收藏收藏2 轉播轉播 分享分享 分享淘帖 頂 踩 掃碼贊助 微信分享
  • TA的每日心情
    開心
    3 天前
  • 簽到天數: 975 天

    [LV.10]以壇為家III

    沙發
    發表于 2019-10-1 20:00:58 | 只看該作者
    表哥大氣,直接上代碼!
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    1 小時前
  • 簽到天數: 938 天

    [LV.10]以壇為家III

    藤椅
    發表于 2019-10-2 08:49:43 | 只看該作者
    感謝分享分析的過程,謝謝。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    昨天 10:05
  • 簽到天數: 9 天

    [LV.3]偶爾看看II

    板凳
    發表于 2019-10-2 19:43:20 | 只看該作者
    感謝大神分享,新手好好學習一下。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    6 天前
  • 簽到天數: 315 天

    [LV.8]以壇為家I

    報紙
    發表于 6 天前 | 只看該作者
    不錯,頂一下。
    回復 支持 反對

    使用道具 舉報

    您需要登錄后才可以回帖 登錄 | 加入論壇

    本版積分規則

    關閉

    站長推薦上一條 /1 下一條

    快速回復 返回頂部 返回列表
    北京pk10遗漏统计