發表文章

目前顯示的是 1月, 2012的文章

Android Java Apk 反組譯分析 decompile reflection應用--BigFont為例

有需求才有動機,最近看到一款 BigFont 的 Apk 可以修改沒有root權限的手機的系統字型大小,我覺得算實用,該作者也滿厲害的,可以持續在Android上賺錢,我都放棄了(謎之聲:沒有開始哪來放棄Orz) 直接切入正題,安裝完確定他的功能可以Work之後,就隨便google了一下關於字型放大的API,網路上有人在教root完之後可以放大的,但確定沒有官方的API。 於是讓我想玩玩看 java 反組譯的技術,所以下載了工具 dex2jar跟 jd-gui   就可以把原始碼撈出來了。初步來看感覺是有混淆過的,沒想到一個小小的程式用了這麼多個Java 先從有名稱的 Java 看起,有一個明顯的是 SetFontWnd.java,於是進去看,配合應用程式的操作流程,我首先由字串找起,像是要開始設定之前,會出現甚麼提示文字,或是之後會出現甚麼文字,搜尋了"Normal" 跟 "Wait" 都沒有看到,看起來是 dex2jar 並沒有解出 android 的資源檔。於是開始做苦工,大略看了一下,看到了BgSrvc的叫用,看起來主功能就是在這個java裡面了,於是打開。 在BgSrvc.b()的呼叫,還滿像的,因為修改系統字型大小只有一個參數,float paramFloat 開頭如下,看起來很恐怖。       Object localObject1 = Class.forName(c).getMethod(d, new Class[0]).invoke(null, new Object[0]);       Object localObject2 = localObject1.getClass();       Configuration localConfiguration = (Configuration)((Class)localObject2).getMethod(e, new Class[0]).invoke(localObject1, new Object[0]);       localConfiguration.fontScale = paramFloat;    最近同事剛好問我 Reflection 是甚麼?上面就是他的應用,其實iOS的一些非官方API也是透過Reflectio

全面啟動心得

很久以前,我就覺得我的腳有問題,很多次再練習跑步衝刺的時候,覺得自己的腳完全抬不起來,我很努力的想要把大腿抬起來,但就是感覺很重、超級重的,幾乎可以看到自己的腳是慢動作在舉起來一樣。可是我記得以前自己沒有這麼不擅長跑步啊? 今天終於了解原因了,由於昨晚發生一些事情,讓我很想大跑離開一個地方,又發生了同樣的現象,為什麼一開始可以衝,但一下子就累了,只能大哭收場。接著 鬧鐘響了,我終於知道原來之前都是在作夢。 結論跟 全面啟動裡面的一樣,你在夢中不會知道自己在作夢,我甚至以為自己已經不能再跑短跑,但很奇怪的是在現實中我也不會來試試看以釐清這項事實。 第二點是夢中的時間過得很慢,不知道我進入了第幾層睡眠啊~ 第三點是作夢的時候被吵醒你才會記得夢中的情境。