0x1.題記
手上拿到一臺港臺行貨的IPhone,隨即開始擺弄,進過一系列的越獄等工作,終於可以把玩。
由於大意電話沒有透過wifi上網而是透過GPRS,又沒有GPRS流量,所以
白白浪費了一些話費.於是萌生了安裝防火牆的念頭.
來到Rock App的主頁,很快就發現了Firewall ip這款軟體,評價還不錯,
於是就裝到了電話上.迅速瀏覽下程式的設定頁面,發現”block if not on
wifi”這項功能正是我需要的,呵呵.
由於這是Rock App上面的一個付費軟體,只能試用10天,程式啟動時也會顯示
“Trial expires x day”. 恩,這個嘛.........抄傢伙:
0x2.除錯環境及工具
1.Firewall ip 1.3.9
2.IDA pro 5.5
3.010 Editor
4.vc 2008
5.windows 7_En
黃色高亮的那一行就是引用NSDate的地方,繼續往下看,看到什麼問題沒有?
86400.0這個數字比較可疑,這是一個程式中使用的常量,什麼常量呢?(作者身高
的浮點數,薪水......), 3600 X 24 = 86400,就是一天有24個小時有86400秒鐘。
FLDD D7,=86400.0
FDIVD D6,D5,D7
結合這兩條指令來看,第一條指令是將86400.0賦給D7,下一條指令是用D5的值除
以D7然後將結果儲存到D6中,小學生現在都清楚了,它是在計算有多少天。那麼修
改這裡就可以達到我們的目的了,我們雖然尚不清楚被除數D5怎麼得來的,但是我
可以修改86400這個常量,如果我把86400修改為 86400 X 2 = 172800 的話,那
麼在程式看來,要過172800秒才算是過一天,86400 X 365,86400 X 365 X 20(二十
年又是一好漢),86400 X 2012 (-_-#)....