Feeds:
文章
留言

Archive for the ‘程式設計’ Category

話說以前遊戲破解都會說"開啟 PC Tools 搜尋 xx xx xx xx 修改為 yy yy yy yy" 當時很好奇為什麼改了這計個數字就可以不用密碼本玩遊戲, 當時的技術水平無法理解, 下圖真是讓人熟悉的畫面

圖片來源

雖然之前用 IDA 修改過 ARM64 的組語, 不過一直沒機會試試 x86 的組語, 剛好最近有個專案有綁定 key 導致無法順利測試, 想說用 IDA 試試, 運氣真好(定位到目標還是很困難,可能還是要補強動態分析)破解成功. 紀錄一下思路.

1. IDA 7.0 使用正確版本載入 .dll, 由於該應用是 32 為版本, 所以使用 ida.exe 而非 ida64.exe

 

2. 搜尋字串

 

3. 跳到字串定義的 Address

4. 列出參照這個字串的相關函數

5. 跳到代碼的 Address

6. 圖表模式

7. 在往上尋找參照, 可以發現 “sub_101ECC10″ 返回值必須不為 0 , 所以只要讓她永遠返回 1 就不用 key 啦

遇到問題

1. 產生偽代碼時出現 “xxxxx: positive sp value has been found" , 網路上說調整 sp 可以修正, 不過實作上卻出現 “call analysis failed", 這個問題還需要再看有何解法, 網路另有一說法是 IDA Pro 7.2+ 有自動修正這個問題, 不過沒有版本可以驗證.

2. IDA 的 16 進位檢視的位址和實際檔案位置不同有點奇怪, 之前分析 ARM 不會有這個問題

Read Full Post »

nim 1.0.2 練習

nim 終於出了 1.x, 不過剛出來時真的不穩定, 連 httpclient 都有問題, 今天再次嘗試 1.0.2 終於沒有低級錯誤, 準備用個小題目來試寫, 就選定酷狗音樂的歌曲和歌詞下載, 體驗後發現效果還不錯, 檔案體積也很小, 完全可攜沒有依賴, 不知道可不可以交叉編譯 …

涉及版權, 就紀錄一些編譯結果

沒有任何依賴

檔案不到 1M

 

Debug

Release

Release+UPX 剩下3xxk

 

工具提供的功能

Read Full Post »

話說有天小孩偷偷裝了一個 crazy dino park 再玩, 很好奇這個遊戲有什麼魅力, 於是手機也裝了一個來玩, 體驗過後發現遊戲真的設計不錯, 畫風也相當討喜, 只是免不了課金或需要耗費大量時間, 於是想動手調一下, 結果打開來看就傻啦, 雖然是 Unity 開發的遊戲, 不過目前已經進化到使用 il2cpp, 說白話點就是將 .NET IL Code 轉成 C++ 代碼後編譯成機械碼….

所以如果要調整遊戲邏輯必須要改機械碼, 而我的小米使用 ARM64(v8a) 指令集, 只好重頭了解指令集… 漫長之路

想要分析修改機械碼網路上大推IDA+KeyPatch, 所以還要學習這個工具…漫長之路

基礎學習完成之後, 接下來就可以直接分析 libilcpp.so, 但是直接看很難找到修改點, 還好網路上有大大開發了 il2cppdumper, 可還原 C# 的符號,表, 所以找修改點可以用 dnspy+IDA分析容易許多

學習了上述基礎之後基本上就可以順利修改這類遊戲, 不過我覺得最難的還是找到修改點…. 畢竟 IDA 產生的偽代碼還是沒有原生地 C# 好看

以下是我修改後的成果

 

Read Full Post »

今天被 Google Play 推薦了"魔女的迷宮“, 試玩之後發現還挺有趣, 不過難度還真高…. 40 層, 而且等級還不能累積…. 所以只能動點手腳快速玩一遍, 順便複習一下 .NET IL

 

其他截圖

 

 

Read Full Post »

radare2 初體驗

今天上了 KaLUG 的 radare2 課程覺得相當有趣, 決定動手試玩一下, 雖然課程示範是針對 Linux ELF 格式, 但radare2 有 Windows 版本也支援 PE 格式, 就來試玩一下如何跳過簡單的 if 條件

首先一個簡單的範例程式

gcc a.c

預期的執行

如果想 patch 成輸入任何值都要輸出 hello 該怎麼做呢

copy a.exe a-m.exe

radare2.exe -w a-m.exe

移動到 main

先用 aaaa 分析程式, 然後執行 pdf, 紅框處就是比對密碼

其中 0x004015f5 位置就是比對失敗後執行動作, 所以把該行改為 nop 忽略跳耀

驗證執行結果

比較檔案差異

Read Full Post »

Windows 還不支援, Centos7 上試玩

測試代碼

執行

執行結果

還蠻有趣的… 持續關注中…

 

 

 

Read Full Post »

PHP7.2+Adodb Session Error

今天裝 PHP 7.2 遇到 “ini_set(): Cannot set ‘user’ save handler by ini_set() or session_module_name()" 錯誤, 依據[1] 描述將出問題的

session_module_name(‘user’);

註解掉即可…

 

參考資料

[1] PHP 7.2 & session save handler. ‧ Issue #2783 ‧ symphonycms/symphony-2

Read Full Post »

Older Posts »