日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS APP 反编译

發布時間:2024/3/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS APP 反编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址?http://bbs.feng.com/read-htm-tid-672262.html


看不懂的請飄過,不要繼續。
這不是給新手看的,也代表你不需要解決程序的修改問題。
這些技巧不只用于游戲的修改。




下載 Windows 工具

Windows :?
winscp?http://winscp.net/eng/download.php
PuTTY?http://putty.very.rulez.org/latest/x86/putty.exe

Mac / Linux :
用內置的 Terminal 便可


沒 wifi 用 iPhone Tunnel Suite 3.0
http://bbs.feng.com/read-htm-tid-597149.html

沒 wifi 蘋果電腦用 iPhoneSSH
http://bbs.feng.com/read-htm-tid-720564.html



iPhone/iPod Touch 在 cydia 內安裝 deb 包
安裝這些 deb 包最方便的方法是在 Cydia 內搜索及直接安裝,這里提供的下載包及依賴包的鏈接下載點是方便手工安裝時用

OpenSSH (openssh) 及 OpenSSL(openssl) (與iPhone/iPod Touch 終端操作)
http://apt.saurik.com/debs/openssh_6.1p1-11_iphoneos-arm.deb(更新支持 iPhone 5 / iPad 4)
http://apt.saurik.com/debs/openssh_5.2p1-8_iphoneos-arm.deb
http://apt.saurik.com/debs/openssl_0.9.8k-9_iphoneos-arm.deb

unzip 及 zip (解壓縮及壓縮打包工具)
http://apt.saurik.com/debs/unzip_5.52-5p_iphoneos-arm.deb(更新支持 iPhone 5 / iPad 4)
http://apt.saurik.com/debs/zip_2.32-5p_iphoneos-arm.deb(更新支持 iPhone 5 / iPad 4)
http://apt.saurik.com/debs/unzip_5.52-5_iphoneos-arm.deb
http://apt.saurik.com/debs/zip_2.32-5_iphoneos-arm.deb

vbindiff (iPhone 上的十六進制查看差異及修改器)
http://apt.saurik.com/debs/vbindiff_3.0b1-3p_iphoneos-arm.deb(更新支持 iPhone 5 / iPad 4)
http://apt.saurik.com/debs/vbindiff_3.0b1-3_iphoneos-arm.deb

ldid?(更新支持 FAT binary)
及 ldone 0.2
http://bbs.feng.com/read-htm-tid-3970533.html


Link Identity Editor (ldid) 及 Darwin CC Tools (odcctools)(修改后用 ldid 簽名, odcctools 包括 otool, linker , assembler匯編)
http://apt.saurik.com/debs/ldid_610-5_iphoneos-arm.deb
odcctools v782 包括 otool, linker , assembler匯編?(更新支持 armv6 及 armv7)
?odcctools_782-2_iphoneos-arm.deb?(2.12 MB, 下載次數: 951)?
http://apt.saurik.com/debs/odcctools_286-8_iphoneos-arm.deb
http://apt.saurik.com/debs/uuid_1.6.0-2p_iphoneos-arm.deb(更新支持 iPhone 5 / iPad 4)
http://apt.saurik.com/debs/uuid_1.6.0-2_iphoneos-arm.deb

Diff Utilities (diffutils) (文本差異工具 diff)
http://apt.saurik.com/debs/diffutils_2.8.1-6_iphoneos-arm.deb

less (文本查看工具)
http://apt.saurik.com/debs/less_418-3_iphoneos-arm.deb

Vi IMproved (vim) 或 nano (文本編輯工具)

(更新支持 utf-8)?->? ???vim_7.1-4_iphoneos-arm.deb?(4.05 MB, 下載次數: 277)?
vim --cmd "set encoding=utf-8" test.txt

http://apt.saurik.com/debs/vim_7.1-3_iphoneos-arm.deb
http://apt.saurik.com/debs/ncurses_5.7-9_iphoneos-arm.deb

http://apt.saurik.com/debs/nano_2.0.7-5_iphoneos-arm.deb
http://apt.saurik.com/debs/ncurses_5.7-9_iphoneos-arm.deb

Debug server for iOS 7 (armv7/arm64) :??debugserver.zip?(428.99 KB, 下載次數: 73)?
這個 debugserver 程序就是配合實現遠程調試,?
在iPhone : /usr/bin/debugserver <遠程主機的IP地址>:<端口號> --attach=<進程ID>
例如 debugserver 192.168.1.20:2088 --attach 962
例如 debugserver 192.168.1.20:2088 /var/mobile/Applications/AAEF8906-2E33-4A1E-81FF-D51BC325945A/ff3.app/ff3

遠程主機可以是 Mac 運行 lldb, gdb 或是 IDA (見下面下載 IDA 64 Plus for Windows)
lldb (for Mac)??lldb.zip?(77.57 KB, 下載次數: 19)?
(啟動 lldb 后) gdb-remote <iOS 設備 的IP地址>:<端口號>?
例如 (lldb) gdb-remote 192.168.1.21:2088?


GNU Debugger (gdb-1821) (程序調試工具)?iOS 7.0 (32 bits) 更新
?gdb-1821.deb?(7.58 MB, 下載次數: 716)?

GNU Debugger (gdb) (程序調試工具)?v1708 iOS 5.0 更新
http://bbs.feng.com/read-htm-tid-3897370.html

GNU Debugger (gdb) (程序調試工具)?iOS 4.3.x 更新
http://apt.saurik.com/debs/gdb_1518-11_iphoneos-arm.deb
http://apt.saurik.com/debs/ncurses_5.7-9_iphoneos-arm.deb
http://apt.saurik.com/debs/readline_6.0-7_iphoneos-arm.deb
http://apt.saurik.com/debs/sqlite3_3.5.9-12_iphoneos-arm.deb
http://apt.saurik.com/debs/sqlite3-lib_3.5.9-2_iphoneos-arm.deb
http://apt.saurik.com/debs/sqlite3-dylib_3.5.9-1_iphoneos-arm.deb


GNU Debugger (gdb) (程序調試工具)
http://apt.saurik.com/debs/gdb_962-5_iphoneos-arm.deb
http://apt.saurik.com/debs/ncurses_5.7-9_iphoneos-arm.deb
http://apt.saurik.com/debs/readline_6.0-7_iphoneos-arm.deb
http://apt.saurik.com/debs/sqlite3_3.5.9-12_iphoneos-arm.deb
http://apt.saurik.com/debs/sqlite3-lib_3.5.9-1_iphoneos-arm.deb
http://apt.saurik.com/debs/sqlite3-dylib_3.5.9-1_iphoneos-arm.deb

adv-cmds (ps 工具)
http://apt.saurik.com/debs/adv-cmds_119-5_iphoneos-arm.deb

grep (grep 文本搜索工具)
http://apt.saurik.com/debs/grep_2.5.4-3_iphoneos-arm.deb


ARM 參考書籍

http://bbs.feng.com/read-htm-tid-363306.html



?(主要是看第三章 Chapter 3)





[fly]修改及用 gdb 調試游戲流程[/fly]

(1) 安裝及試玩游戲,每個游戲的修改方法都不同,沒有玩過這游戲,怎樣知道要修改什么呢?
這教程用了 Final Fantasy 2 作例子

(2) 用 iTunes 安裝 Final Fantasy 2 破解版本(未破解的不能反匯編)

(3) 用putty / ssh 連接iPhone / iPod Touch,假設你的iPhone / iPod Touch 的IP地址是192.168.1.104

Connection type: 選?SSH
Port 選?22
按?Open



PuTTY 連接 192.168.1.104 后

Login 輸入?root
Password(假設你沒有更改密碼) 輸入?alpine

Mac / Linux Terminal 內輸入
ssh?


(4) 進入游戲路徑目錄內(先決條件是已用 PuTTy / Terminal 連接iPhone / iPod Touch)
輸入


  • cd /var/mobile/Applications/*/FinalFantasy2.app

  • 復制代碼

    (5) 到上一層路徑目錄建立?cheat?臨時工作路徑目錄及游戲程式臨時修改檔
    輸入


  • cd ..

  • mkdir -p cheat

  • cd cheat


  • cp -p ../FinalFantasy2.app/FinalFantasy2 FinalFantasy2.original

  • 復制代碼

    (6) 反匯編原游戲程式


  • otool -tv FinalFantasy2.original &gt; FinalFantasy2.original.txt

  • 復制代碼

    (7) 查看反匯編代碼分析并找出要修改的地方(每個游戲的修改地方都不同, 這點最難)
    要修改游戲,你會有以下的困難或問題:

    (i) 沒有高階源代碼,只有反匯編代碼?
    反匯編代碼分析是困難的但絕對不是不可能作分析,你可以找到些不錯的ARM Assembly的參考書?
    在上面亦已提供了一些很好的 ARM 指令參考?
    常見的是以下這些基本的指令及其執行條件碼:

    MOV 或 MVN 寄存器數值的傳送操作
    ADD 或 SUB 加減的算術操作
    CMP 或 CMN 比較操作
    AND、ORR、EOR 邏輯操作
    B、BL、BNE、BGE 分支/跳轉指令
    MUL 乘法操作 或 LSL 是 二進制左移,左移一位,即十進制乘2倍
    LDR 或 STR 加載及存儲數據


    每個指令都可加上執行條件碼根據上一個運算、邏輯或比較指令的結果決定是否執行指令

    執行條件碼 (Condition Codes):
    ① CS 及 CC(Carry)進位條件碼,CS=進位,否則=CC(不進位).
    ② EQ 及 NE (Equal 或 Zero)相等或零條件碼,EQ=運算結果為相等或零時,否則=NE(不相等).
    ③ VS 及 VC(Overflow)溢出條件碼。 VS=溢出,否則=VC(不溢出)。
    ④ PL 及 MI 條件碼。 PL(Plus/Positive)=結果為正,MI(Minus/Negative)=結果為負。

    ⑤ GT 及 LT 條件碼。?GT(Greater Than)=大于(PL+VC+NE / MI+VS+NE),LT(Less Than)=小于(MI+VC / PL+VS)。
    ⑥ GE 及 LE 條件碼。?GE(Greater Than or Equal)=大或等于(PL+VC / MI+VS),LE(Less Than or Equal)=小或等于(MI+VC / PL+VS / EQ)。
    ⑦ HI 及 LO 條件碼。 HI(Higher Than)=無符號數(unsigned)高于(CS+NE),LO(Lower Than)=無符號數(unsigned)低于(CC)。
    ⑧ HS 及 LS 條件碼。?HS(Higher or Same)=無符號數(unsigned)高于或相等(CS/EQ),LS(Lower or Same)=無符號數(unsigned)低于或相等(CC/EQ)。
    ⑨ AL 及 NV 條件碼。 條件碼默認為AL(Always)=無條件執行,NV(Never)是AL的相反=不執行。


    例子及其注解意思

  • CMP R0, R1? ?? ? @寄存器數值 R0 及 R1 的比較

  • MOVGT R2, R0? ???@如果結果 R0 &gt;(大于) R1,則執行MOV R2, R0即 R2=R0

  • MOVLE R2, R1? ???@如果結果 R0 &lt;=(小或等于) R1,則執行MOV R2, R1即 R2=R1

  • 復制代碼

  • LDR R1, [R0]? ???@意思是 R1 = *R0,從R0指向的地址處的數據載入到寄存器 R1

  • STR R1, [R0]? ???@意思是 *R0 = R1,把寄存器 R1內的數據寫到 R0 內指向的地址處

  • 復制代碼



    (ii) 看不懂游戲程式流程,沒法分析?
    有很多人都喜歡用 IDA Pro Advanced 去做分析, 無疑這軟件是個非常好的靜態分析工具,它有圖形視圖顯示代碼流程作搜索及深層分析。除了可分析反匯編代碼外,亦可反匯編一些 otool 不能處理的工作。 但 IDA Pro Advanced 在iPhone 的程式只適合做靜態的分析。

    你可以在這里下載 IDA Pro Advanced 5.2 及其參考書,建議你使用功能及視圖比較強大的 Windows 版本。?
    http://bbs.feng.com/read-htm-tid-363306.html?
    IDA 64 Plus for Windows 百度云網盤下載 :?http://pan.baidu.com/s/1sjGXZQl??



    只看代碼是不能作分析,要配合動態調試去了解程式的細節在實際運行時發生的數據及變化。在第15步就有用 gdb 作動態調試的例子去設置斷點、繼續、跟蹤及分析代碼。gdb 的參考書可在上面的鏈接下載。

    (iii) 找不到游戲的數據例如金錢,經驗值,裝備,等級暫存在那?

    方法一:在 gdb 設置斷點分析
    ARM CPU 有個特性便是一些加減計算要傳送到CPU寄存器(register) 進行,因此你會經??吹竭@些要找的數據會先從內存用LDR 指令載入到寄存器, 經過一些計算(加或減)后及防溢位判斷后便用STR 指令存儲這寄存器回內存地址。

    另外由于這些程式大多是用 Objective C 或 C++ 語言寫成,這些程序員會用一些描述性的函數名,例如帶有 Money, Price, Gold, Exp, Item, Life, Level 字段等。

    利用這兩點便可以將程序鎖定在某些函數上,再利用 gdb 調試工具暫停在某些點一步一步地單步執行及查看一些寄存器,印證是否與你要找的數據是否有關。

    ? ? 在FinalFantasy2 的這實例中, 是用這方法找到修改點
    ? ? 用 less 工具去找尋 Money
    ? ? putty / Terminal 輸入


  • less FinalFantasy2.original.txt

  • 復制代碼

    在 less 工具內輸入


  • /Money

  • 復制代碼

    去開始找尋(按 N 鍵去繼續找尋),便會找到這段代碼像是要存儲金錢數據(SetMoney),0007b218是進入這段代碼的開始地址


  • __ZN14cFF2GlobalWork19sysGAMEPrm_SetMoneyEj:

  • 0007b218 e59f300c ldr r3, [pc, #12] ; 0x7b22c

  • 0007b21c e580120c str r1, [r0, #524]

  • 0007b220 e1510003 cmp r1, r3

  • 0007b224 8580320c strhi r3, [r0, #524]

  • 0007b228 e12fff1e bx lr

  • 復制代碼

    首先在iPhone或iPod Touch 開始Final Fantasy 2 直至游戲已 Resume及進入游戲。


    ? ? ① 在PuTTY / Terminal 找FinalFantasy2 的運行中的進程編號(process id)

    ? ? PuTTY / Terminal 輸入


  • ps ax

  • 復制代碼

    得到


  • 1115? ?????Ss? ???1:30.86 /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/FinalFantasy2.app/FinalFantasy2

  • 復制代碼

    找到FinalFantasy2 游戲現時運行中的進程編號是?1115

    ? ? ② 用gdb 進入調試運行中的進程編號1115
    ? ? PuTTY / Terminal 輸入


  • gdb -p 1115

  • 復制代碼

    此時游戲會暫停,音樂也暫停

    ? ? ③ 用gdb 設定斷點breakpoint在十六進制地址0x7b218

    ? ? PuTTY / Terminal 輸入


  • break *0x7b218

  • 復制代碼

    ④ 繼續 continue 游戲
    ? ? PuTTY / Terminal 輸入


  • c

  • 復制代碼

    ⑤ 將Final Fantasy 2 游戲進入戰斗,戰勝后游戲會在十六進制地址0x7b218處停止

    ? ? ⑥ 暫停后,離開這分支__ZN14cFF2GlobalWork19sysGAMEPrm_SetMoneyEj
    ? ? PuTTY / Terminal 輸入


  • finish

  • 復制代碼

    ⑦ 反匯編現時地址上面的代碼


  • disassem $pc-28 $pc

  • 復制代碼

    得到


  • 0x0003baac &lt;_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG 180&gt;: bl 0x78e30 &lt;_ZN14cFF2GlobalWork8InstanceEv&gt;

  • 0x0003bab0 &lt;_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG 184&gt;: mov r4, r0

  • 0x0003bab4 &lt;_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG 188&gt;: bl 0x78e30 &lt;_ZN14cFF2GlobalWork8InstanceEv&gt;

  • 0x0003bab8 &lt;_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG 192&gt;: bl 0x7b230 &lt;_ZN14cFF2GlobalWork19sysGAMEPrm_GetMoneyEv&gt;

  • 0x0003babc &lt;_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG 196&gt;: add r1, r0, r5

  • 0x0003bac0 &lt;_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG 200&gt;: mov r0, r4

  • 0x0003bac4 &lt;_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG 204&gt;: bl 0x7b218 &lt;_ZN14cFF2GlobalWork19sysGAMEPrm_SetMoneyEj&gt;

  • 復制代碼

    這時會發現在_ZN14cFF2GlobalWork19sysGAMEPrm_GetMoneyEv
    及_ZN14cFF2GlobalWork19sysGAMEPrm_SetMoneyEj
    中間0x0003babc?地址的代碼add r1, r0, r5 是最可疑的


    ? ? ⑧ 取消斷點1及設定新斷點breakpoint在十六進制地址0x0003babc?及重新繼續continue 游戲
    ? ? PuTTY / Terminal 輸入


  • disable 1

  • break *0x3babc

  • c

  • 復制代碼

    在iPhone或iPod Touch查看現時游戲的金錢例如是4888,將Final Fantasy 2 游戲進入戰斗,戰勝后游戲會新斷點2地址0x3babc處停止

    ? ? ⑨ 當游戲在新斷點2暫停時查看寄存器就發現 r0 是當時的金錢余額及 r5 是戰勝后得到的金錢
    ? ? PuTTY / Terminal 輸入


  • i r $r0 $r1 $r5 $pc

  • 復制代碼

    ⑩ 假設已找到應修改的地址是?0003babc,便可繼續下面第(8)步

    方法二:在 gdb 搜索內存數據值及設置觀察點(watchpoint)?

    ? ? 游戲的數據都會暫存在堆(heap)內存, 于游戲退出前儲存在 iPhone 或 iPod Touch的閃存記憶體內, 一些經驗值或金錢的數字是比較獨特,在內存重復出現的機會不多,這些唯一的數字便可用這方法去進行搜索。

    ? ? 這里用了 Zenonia 2 v1.0 作例子,下面的游戲截圖便看到用一個獨特的經驗值數字?672?去開始這方法



    ? ? ① 在 PuTTY / Terminal 用??ps ax??的指令找到 ZENONIA2 游戲現時運行中的進程編號是?1123

    ? ? ② 使用 gdb 進入運行中的進程編號?1123
    ? ? PuTTY / Terminal 輸入


  • gdb -p 1123

  • 復制代碼

    此時游戲會暫停,音樂也暫停

    ? ? ③ 用 gdb 輸入這些指令包括,內存開始地址(0x800000)、結束地址(0x880000)及要搜索的數字672如下:

    ? ? PuTTY / Terminal 輸入


  • set $x=0x800000

  • while(*++$x!=672 && $x<0x880000)

  • end

  • 復制代碼

    ④ 輸入 end 之后等候數十秒 ....,待gdb去搜索這段內存地址

    ? ? ⑤ gdb 搜索完畢后
    ? ? PuTTY / Terminal 輸入


  • p/x $x

  • 復制代碼

    得到


  • $1 = 0x85e28c

  • 復制代碼

    這代表 gdb 已找到在?0x85e28c?的內存地址的存儲數字是?672

    ? ? PuTTY / Terminal 輸入


  • x/dw 0x85e28c

  • 復制代碼

    得到確認?0x85e28c?的內存地址的存儲數字是?672


  • 0x85e28c:? ? 672

  • 復制代碼

    ⑥ 用 gdb 繼續搜索
    ? ? PuTTY / Terminal 輸入 (或按方向鍵 ↑ 4次,然后回車,免重復輸入)


  • while(*++$x!=672 && $x<0x880000)

  • end

  • 復制代碼

    再等十多秒,gdb 搜索完畢后
    ? ? PuTTY / Terminal 輸入


  • p/x $x

  • 復制代碼

    得到


  • $2 = 0x880000

  • 復制代碼

    這代表 gdb 已到結束的地址 0x880000,都沒有找到。這也表示數字?672?是唯一出現在?0x85e28c?要找的內存范圍內。

    ? ? ⑦ 用 gdb 更改內存地址?0x85e28c?的存儲數字為?1000
    ? ? PuTTY / Terminal 輸入


  • set {int}0x85e28c=1000

  • 復制代碼

    也可以用


  • set *0x85e28c=1000

  • 復制代碼

    PuTTY / Terminal 輸入


  • x/dw 0x85e28c

  • 復制代碼

    得到確認已成功更改數字


  • 0x85e28c:? ? 1000

  • 復制代碼

    ⑧ 繼續 continue 游戲
    ? ? PuTTY / Terminal 輸入


  • c

  • 復制代碼

    ⑨ 在回到游戲里退出 STATUS 畫面再進入 STATUS,畫面內數據重刷后,確認已成功更改經驗值數字為1000



    ? ??留意:由于游戲數據在堆(heap)內存的地址不是固定的,所以每次運行的進程都要再搜索新的內存地址。另外,搜索的內存地址范圍也會改變,如果在?0x800000?至?0x880000?范圍內找不到的話,就要往后試?0x880000?至0x900000?新的范圍。

    ? ?? ?? ?另外:用相同搜索方法也可以找到金錢數字在這次運行進程是在內存地址?0x874c04

    ? ? ⑩ 找到經驗值地址后便可設置觀察點(watchpoint)于內存地址?0x85e28c

    ? ? 設置觀察點的目的是當內存地址值被讀或被寫時,會顯示數據及暫停程序

    ? ? PuTTY / Terminal 輸入


  • watch *0x85e28c

  • 復制代碼

    及繼續游戲
    ? ? PuTTY / Terminal 輸入


  • c

  • 復制代碼

    留意:游戲在觀察點(watchpoint) 生效下運行是非常的慢,有些游戲是不能正常運作,有時候手機也要重啟,所以下面的步驟是不一定可以進行的

    ? ? ? 將游戲進入戰斗打怪后程序便會暫停在?0x9f508?地址,gdb 會顯示


  • Hardware watchpoint 1: *8774284


  • Old value = 1000

  • New value = 1086

  • 0x0009f508 in CMvPlayer::CheckLevelUp ()

  • 復制代碼

    PuTTY / Terminal 輸入


  • x/14i $pc-16

  • 復制代碼

    得到


  • 0x9f4f8 &lt;_ZN9CMvPlayer12CheckLevelUpEj+60&gt;:? ? b.n? ? 0x9f508 <_ZN9CMvPlayer12CheckLevelUpEj+76>

  • 0x9f4fa &lt;_ZN9CMvPlayer12CheckLevelUpEj+62&gt;:? ? adds? ? r0, r4, #0

  • 0x9f4fc &lt;_ZN9CMvPlayer12CheckLevelUpEj+64&gt;:? ? movs? ? r1, #1

  • 0x9f4fe &lt;_ZN9CMvPlayer12CheckLevelUpEj+66&gt;:? ? movs? ? r2, #0

  • 0x9f500 &lt;_ZN9CMvPlayer12CheckLevelUpEj+68&gt;:? ? subs? ? r5, r5, r3

  • 0x9f502 &lt;_ZN9CMvPlayer12CheckLevelUpEj+70&gt;:? ? bl? ? 0x9f338 <_ZN9CMvPlayer9OnLevelUpEii>

  • 0x9f506 &lt;_ZN9CMvPlayer12CheckLevelUpEj+74&gt;:? ? movs? ? r3, #1

  • 0x9f508 &lt;_ZN9CMvPlayer12CheckLevelUpEj+76&gt;:? ? str? ? r5, [r4, r6]

  • 0x9f50a &lt;_ZN9CMvPlayer12CheckLevelUpEj+78&gt;:? ? cmp? ? r3, #0

  • 0x9f50c &lt;_ZN9CMvPlayer12CheckLevelUpEj+80&gt;:? ? beq.n? ? 0x9f516 <_ZN9CMvPlayer12CheckLevelUpEj+90>

  • 0x9f50e &lt;_ZN9CMvPlayer12CheckLevelUpEj+82&gt;:? ? cmp? ? r5, #0

  • 0x9f510 &lt;_ZN9CMvPlayer12CheckLevelUpEj+84&gt;:? ? beq.n? ? 0x9f516 <_ZN9CMvPlayer12CheckLevelUpEj+90>

  • 0x9f512 &lt;_ZN9CMvPlayer12CheckLevelUpEj+86&gt;:? ? movs? ? r5, #0

  • 0x9f514 &lt;_ZN9CMvPlayer12CheckLevelUpEj+88&gt;:? ? b.n? ? 0x9f4c6 <_ZN9CMvPlayer12CheckLevelUpEj+10>

  • 復制代碼

    PuTTY / Terminal 輸入


  • i r $r5 $r4 $r6 $pc

  • p/x $r4+$r6

  • 復制代碼

    得到


  • r5? ?? ?? ?? ? 0x43E? ? 1086

  • r4? ?? ?? ?? ? 0x85DC00? ? 8772608

  • r6? ?? ?? ?? ? 0x68c? ? 1676

  • pc? ?? ?? ?? ? 0x9f508? ? 652552


  • $5 = 0x85e28c

  • 復制代碼

    這時確認了?0x9f508?地址這句代碼
    ? ? str? ? r5, [r4, r6]
    ? ? 的意思是,r4 + r6 =?0x85e28c?,把寄存器 r5 內的數字(1086) 寫到?0x85e28c?的地址
     
    ? ? 程序因要寫進這0x85e28c?的地址,所以暫停了,這就是觀察點(watchpoint) 的強大功能。

    ? ? PuTTY / Terminal 輸入


  • bt

  • 復制代碼

    得到


  • #0??0x0009f508 in CMvPlayer::CheckLevelUp ()

  • #1??0x0009ff2e in CMvPlayer::DoUpdate ()

  • #2??0x00094744 in CMvObject::Update ()

  • #3??0x000969cc in CMvObjectMgr::Update ()

  • #4??0x000662e6 in CMvGameState::UpdateGame ()

  • 復制代碼

    這時就可根據上面得到的信息在這段代碼的前后范圍進行跟蹤、設置斷點及進一步的分析


    有新的方法時,再繼續更新 ............

    (iv) 不知道修改點在那及改為什么?
    修改程序是不能插入程序代碼,主要原因是移位后的程序是不能運行的。一般的做法是找到要修改的位置在原檔案位置修改代碼改為你需要的指令。 修改點一定要經過分析代碼后再不斷地用動態分析確定后,在適當的地方重覆試驗及調試驗證修改后的結果 。

    一些RPG游戲的特性,例如是金錢或經驗值是會在戰斗后重算及更新,一般都是要找到及修改更新數據前的指令。金錢的修改點也可以修改在買賣裝備時的指令。連續升級的修改主要是看該游戲是怎樣升級,例如 Inotia 2是根據經驗值去升級,只要找到判斷經驗值的指令代碼地址,修改其判斷的指令便可。

    對于游戲來說,一般的指令修改例子如下:

    ①?修改寄存器的增加數字例如?
    ? ? Final Fantasy II 增加戰勝后所得金錢?
    ? ? 地址 0003babc?
    ? ? add r1, r0, r5?
    ? ? 改為?
    ? ? add r1, r0, r5, lsl #5?

    ②?修改寄存器減少的數字為零例如?
    ? ? Inotia 2 v 1.1.0 不扣技能點?
    ? ? 地址 00021b9c?
    ? ? sub r3, #1?
    ? ? 改為?
    ? ? sub r3, #0?

    ? ? 地址 00037b46?
    ? ? sub r1, #1?
    ? ? 改為?
    ? ? sub r1, #0?

    ③?修改比較的寄存器例如?
    ? ? 花兒朵朵開-v1.0 不死作弊版 (這里 r2 寄存器是花朵已綻放的數量)
    ? ? 地址 00004ee8?
    ? ? cmp r2, r3?
    ? ? 改為?
    ? ? cmp r2, #1 ; 0x1?

    ④?修改arm 32 位為兩個arm thumb 16 位代碼例如?
    ? ? Inotia 2 v 1.1.0 roll點全18?
    ? ? 地址 0005c404?
    ? ? bl 0x9914?
    ? ? 改為?
    ? ? mov r0, #9?
    ? ? mov r0, #9?

    ? ? 地址 0005c404, 0005c40e, 0005c41c, 0005c426?
    ? ? bl 0x9914?
    ? ? 改為?
    ? ? mov r0, #9?
    ? ? mov r0, #9?

    ⑤?要刪除代碼便要用 nop (no operation) 取代?
    ? ? thumb 16 bits nop 是 46c0??
    ? ? arm 32 bits nop 是 e1a00000


    (8) 在FinalFantasy2 的這實例中,假設已找到應修改的地址是?0003babc,代碼是 e0801005


  • 0003bab8? ?? ???eb00fddc? ?? ???bl 0x7b230

  • 0003babc? ?? ???e0801005? ?? ???add r1, r0, r5? ?@意思是 r1 = r0 +r5 ; r0 是當時的金錢余額; r5 是戰勝后得到的金錢

  • 0003bac0? ?? ???e1a00004? ?? ???mov r0, r4

  • 0003bac4? ?? ???eb00fdd3? ?? ???bl 0x7b218? ???@分支到函數名 __ZN14cFF2GlobalWork19sysGAMEPrm_SetMoneyEj 去更新金錢余額

  • 復制代碼

    (9) 修改目標 : 將所得金錢乘大32倍
    0003babc的應修改目標代碼是


  • add r1, r0, r5, lsl#5 @意思是 r1 = r0 +( r5 二進制左移五位,即十進制乘大32倍)

  • 復制代碼

    (10) 找新ARM指令代碼
    add r1, r0, r5 的ARM指令代碼是?e0801005
    修改目標是要找到 add r1, r0, r5, lsl#5 的ARM指令代碼 ?

    用 vim 或 nano 建立 armtest.s 如下


  • ? ? .file &quot;armtest.s&quot;

  • ? ? .globl _main

  • ? ? .code 32

  • _main:

  • ? ? add r1, r0, r5

  • ? ? add r1, r0, r5, lsl #5

  • 復制代碼

    留意:?一些程式反匯編后是ARM Thumb, ARM Thumb 是16 bits 而ARM 是32 bits. ARM 32 bits 及 ARM Thumb 的分別請找上面 ARM Assembler 的參考(ARM Thumb 的可用指令是比 ARM 32 bits 少)。 如果要找 ARM Thumb 代碼要將上面的.code 32改為.code 16 及加上 .thumb_func _main 如下


  • ? ? .code 16

  • ? ? .thumb_func _main

  • 復制代碼




    匯編 arm 輸入


  • as armtest.s -o armtest.o ; otool -tv armtest.o

  • 復制代碼

    便看到


  • (__TEXT,__text) section

  • _main:

  • 00000000? ? e0801005? ? add r1, r0, r5

  • 00000004? ? e0801285? ? add r1, r0, r5, lsl #5

  • 復制代碼

    及得到add r1, r0, r5, lsl #5 目標ARM指令代碼為?e0801285

    (11) 建立修改程式第一版FinalFantasy2.v1及用十六進制修改器修改代碼

    輸入


  • cp -p FinalFantasy2.original FinalFantasy2.v1? ?? ?

  • vbindiff FinalFantasy2.v1

  • 復制代碼

    進入vibindiff 后按G及輸入地址3AABC跳到要修改的位置如下



    留意:?在第8步時找到的位置是0003Babc,但修改程式的位置要減去十六進制0x1000得到3Aabc
    (0x3babc 減 0x1000 等于 0x3aabc)

    E鍵開始修改,將
    05 10?80 E0
    改為
    85 12?80 E0

    然后按Esc鍵及Y鍵確認修改

    最后按Q鍵離開 vbindiff 修改器

    如下



    留意:?修改器顯示的?05 10?80 E0 與反匯編的代碼 e0801005?的位置順序是倒的

    (12) 反匯編修改程式第一版 v1 及比較原版本 original
    輸入


  • otool -tv FinalFantasy2.v1 &gt; FinalFantasy2.v1.txt

  • diff FinalFantasy2.original.txt FinalFantasy2.v1.txt

  • 復制代碼

    也可以用 otool -otV


    得到


  • < FinalFantasy2.original:

  • ---

  • > FinalFantasy2.v1:

  • 59597c59597

  • < 0003babc? ? e0801005? ? add? ? r1, r0, r5

  • ---

  • > 0003babc? ? e0801285? ? add? ? r1, r0, r5, lsl #5

  • 復制代碼

    (13) 對修改程式第一版重新簽名
    輸入


  • ldid -s FinalFantasy2.v1

  • 復制代碼

    (14) 將簽名后的程式放回程式路徑進行測試
    首先備份原程式(留意:要用mv移動不要用cp)
    輸入


  • mv ../FinalFantasy2.app/FinalFantasy2 ../FinalFantasy2.app/FinalFantasy2.bak

  • 復制代碼

    安裝修改后的程式及更新權限
    輸入


  • cp -p FinalFantasy2.v1 ../FinalFantasy2.app/FinalFantasy2

  • chown mobile:mobile ../FinalFantasy2.app/FinalFantasy2

  • chmod 0755 ../FinalFantasy2.app/FinalFantasy2

  • 復制代碼

    (15) 用 gdb 調試游戲

    調試是用 gdb,在這里的目的是設置斷點使游戲暫停,查看CPU的寄存器,印證修改是否成功。由于游戲占用很多內存,在游戲運行時調試再加ssh 連接很多時候都會崩潰。所以用 iPod Touch 3代 或 iPhone 3GS 做這項工作會有優勢。

    首先在iPhone或iPod Touch 開始Final Fantasy 2 直至游戲已Resume及進入游戲。

    在iPhone或iPod Touch查看現時游戲的金錢例如是?7223

    ① 在putty / Terminal 找 FinalFantasy2 的運行中的進程編號 (process id)

    PuTTY / Terminal 輸入


  • ps ax

  • 復制代碼

    得到


  • 1115? ?????Ss? ???1:30.86 /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/FinalFantasy2.app/FinalFantasy2

  • 復制代碼

    找到 FinalFantasy2 游戲現時運行中的進程編號是?1115

    ② 用 gdb 進入調試運行中的進程編號 1115
    PuTTY / Terminal 輸入


  • gdb -p 1115

  • 復制代碼

    此時游戲會暫停,音樂也暫停

    ③ 用 gdb 設定斷點breakpoint在十六進制地址?0x3babc?(即在第8步時找到的位置0003babc)
    PuTTY / Terminal 輸入


  • break *0x3babc

  • 復制代碼

    ④ 繼續 continue 游戲
    PuTTY / Terminal 輸入


  • c

  • 復制代碼

    ⑤ 將Final Fantasy 2 游戲進入戰斗,戰勝后游戲會在十六進制地址?0x3babc處停止


    ⑥ 暫停后,查看 CPU 寄存器 register (info register 指令)
    PuTTY / Terminal 輸入


  • i r $r0 $r1 $r5 $pc

  • 復制代碼

    得到


  • r0? ?? ?? ?? ? 0x1c37? ? 7223

  • r1? ?? ?? ?? ? 0x25? ? 37

  • r5? ?? ?? ?? ? 0x25? ? 37

  • pc? ?? ?? ?? ? 0x3babc? ? 244412

  • 復制代碼

    印證了 r0=7223 是現時的金錢
    游戲暫停在 pc=0x3babc


    ⑦ 查看下一步將要運行的反匯編指令
    PuTTY / Terminal 輸入


  • x/i $pc

  • 復制代碼

    得到?add r1, r0, r5, lsl #5,印證成功修改指令


  • 0x3babc <_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG+196>:? ? add? ? r1, r0, r5, lsl #5

  • 復制代碼

    ⑧ 運行下一步 stepi 指令
    PuTTY / Terminal 輸入


  • si

  • 復制代碼

    查看 CPU 寄存器 register (info register 指令)
    PuTTY / Terminal 輸入


  • i r $r0 $r1 $r5 $pc

  • 復制代碼

    得到


  • r0? ?? ?? ?? ? 0x1c37? ? 7223

  • r1? ?? ?? ?? ? 0x20d7? ? 8407

  • r5? ?? ?? ?? ? 0x25? ? 37

  • pc? ?? ?? ?? ? 0x3bac0? ? 244416

  • 復制代碼

    此時印證了 r1 = r0 +( r5 x 32)
    ? ?? ?? ?? ?= 7223 + (27 x 32)
    ? ?? ?? ?? ?=?8407

    查看下一步將要運行的反匯編指令
    putty / Terminal 輸入


  • x/i $pc

  • 復制代碼

    得到


  • 0x3bac0 <_ZN10FF2cBattle12SENRIHIN_CHKEP12thBATMonsterP6X86REG+200>:? ? mov? ? r0, r4

  • 復制代碼

    ⑨ 繼續 continue 游戲
    PuTTY / Terminal 輸入


  • c

  • 復制代碼

    ⑩ Final Fantasy 2 游戲顯示戰勝后得到37的金錢,但實際金錢余額是?8407印證修改游戲已成功

    ? 離開 gdb

    按下Ctrl+C 組合鍵停止執行進程

    PuTTY / Terminal 輸入


  • quit

  • 復制代碼

    及按?y?鍵確認離開 gdb


    留意:在上面第⑥步暫停時,你可以輸入指令去更改CPU 寄存器 register
    例如輸入
    set $r5=1000
    去試試增加金錢數目


    (16) 假設已調試完成,便可將修改后的程式打包發布

    進入游戲路徑目錄內,輸入


  • cd /var/mobile/Applications/*/FinalFantasy2.app

  • 復制代碼

    到上一層路徑目錄


  • cd ..

  • 復制代碼

    建立 IPA 所要的路徑及檔案及刪除不需要的備份檔案


  • rm -fr Payload

  • mkdir -p Payload

  • cp -pr FinalFantasy2.app Payload/

  • rm -fr Payload/FinalFantasy2.app/FinalFantasy2*.bak

  • 復制代碼

    打包 ipa 為 FinalFantasy2_v1.ipod4g.ipa


  • zip -r FinalFantasy2_v1.ipod4g.ipa Payload iTunesArtwork

  • 復制代碼

    找現時的路徑


  • pwd

  • 復制代碼

    得到


  • /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

  • 復制代碼

    用 winscp 或Terminal 的 scp 指令傳送這檔作發布


  • /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/FinalFantasy2_v1.ipod4g.ipa

  • 復制代碼

    XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 是隨機路徑


    (17) 其他有用的技巧

    ① 由于修改游戲的程式代碼是很少量, 相對重覆調試及動態分析工作比較多,此教程便介紹了用iPhone 的工具直接做修改及反匯編。這樣對于少量修改程式代碼及重覆在iPhone調試是比較要傳回PC做修改是更有效率的。

    ② 調試的工具 gdb 是比較難用,但有些方法是可提高使用 gdb 的效率。

    例如:在 gdb 建立宏 macro define
    在 iphone 建立這檔案(~/.gdbinit) 內容為


  • define ascii_char

  • set $_c=*(unsigned char *)($arg0)

  • if ( $_c < 0x20 || $_c > 0x7E )

  • printf '.'

  • else

  • printf '%c', $_c

  • end

  • end

  • document ascii_char

  • Print the ASCII value of arg0 or &#39;.&#39; if value is unprintable

  • end


  • define hex_quad

  • printf '%02X %02X %02X %02X??%02X %02X %02X %02X',??\

  • *(unsigned char*)($arg0), *(unsigned char*)($arg0 + 1),??\

  • *(unsigned char*)($arg0 + 2), *(unsigned char*)($arg0 + 3), \

  • *(unsigned char*)($arg0 + 4), *(unsigned char*)($arg0 + 5), \

  • *(unsigned char*)($arg0 + 6), *(unsigned char*)($arg0 + 7)

  • end

  • document hex_quad

  • Print eight hexadecimal bytes starting at arg0

  • end


  • define hexdump

  • printf '%08X : ', $arg0

  • hex_quad $arg0

  • printf ' - '

  • hex_quad ($arg0+8)

  • printf ' '


  • ascii_char ($arg0)

  • ascii_char ($arg0+1)

  • ascii_char ($arg0+2)

  • ascii_char ($arg0+3)

  • ascii_char ($arg0+4)

  • ascii_char ($arg0+5)

  • ascii_char ($arg0+6)

  • ascii_char ($arg0+7)

  • ascii_char ($arg0+8)

  • ascii_char ($arg0+9)

  • ascii_char ($arg0+0xA)

  • ascii_char ($arg0+0xB)

  • ascii_char ($arg0+0xC)

  • ascii_char ($arg0+0xD)

  • ascii_char ($arg0+0xE)

  • ascii_char ($arg0+0xF)


  • printf '\n'

  • end

  • document hexdump

  • Display a 16-byte hex/ASCII dump of arg0

  • end


  • define hexdump1

  • hexdump $arg0

  • x/8h $arg0

  • printf '\n'

  • disassem $arg0 $arg0+16

  • printf '\n'

  • end

  • document hexdump1

  • Display a 16-byte hex/ASCII dump and disassembly of arg0

  • end

  • 復制代碼

    在用 gdb 調試時輸入


  • hexdump1 $pc

  • 復制代碼

    便可列出$pc位置后十六位的內容及反匯編的代碼


    ③ 在斷點設定一些要自動運行的指令

    下面的意思是建立斷點1
    及在斷點1停止時運行查看一些暫存器(i r $r0 $r1 $r5 $pc)及反匯編下四個指令代碼(x/4i $pc)


  • break *0x3babc

  • commands 1

  • i r $r0 $r1 $r5 $pc

  • x/4i $pc

  • end

  • 復制代碼

    ④ 在 gdb 斷點暫停時,是可改變內存及指令
    FinalFantasy2 的例子,0x0003babc地址的指令是
    輸入


  • x/i 0x0003babc

  • 復制代碼

    得到代碼是


  • add r1, r0, r5

  • 復制代碼

    輸入


  • x/xw 0x0003babc

  • 復制代碼

    得到代碼數值是


  • 0xe0801005

  • 復制代碼

    改變指令代碼數值輸入


  • set {int}0x0003babc = 0xe0801285

  • 復制代碼

    檢查改變后的指令輸入


  • x/i 0x0003babc

  • 復制代碼

    得到改變后的指令代碼是


  • add r1, r0, r5, lsl #5

  • 復制代碼

    這樣就不用離開 gdb 即時看到修改代碼后的效果


    ⑤ gdb 執行到程序中其他地址的命令
    ? ? 例子:
    ? ? stepi? ?? ?? ?? ?? ?? ?? ?? ?? ?單步執行一個機器指令(命令步入函數)
    ? ? nexti? ?? ?? ?? ?? ?? ?? ?? ?? ?單步執行一個機器指令(命令步過函數)
    ? ? nexti 2? ?? ?? ?? ?? ?? ?? ?? ?繼續執行機器指令的數目為 2 個指令
    ? ? finish? ?? ?? ?? ?? ?? ?? ?? ???繼續執行至當前函數結束后,停止于其調用點
    ? ? until *0x7b224? ?? ?? ?? ?繼續執行至特定地址*0x7b224
    ? ? jump *0x3baac? ?? ?? ???跳轉至特定地址*0x3baac 執行


    ⑥ gdb 調試記錄的命令
    ? ? 例子:
    ? ? set logging file ./log1.txt? ?? ?設定記錄檔
    ? ? set logging on? ?? ?? ?? ?? ?? ?? ?開始記錄
    ? ? set logging off? ?? ?? ?? ?? ?? ?? ?停止記錄


    ⑦ 學習別人修改程序的方法?
    看別人修改程序是最好的學習方法,只要你有原版本及修改后的版本,就可以知道修改的地址及方法
    例如:?




    解壓后將兩個 ipa 文件,用 winscp 傳到iPhone 路徑 /var/root/flower 內

    在 PuTTY / Terminal 連接iPhone / iPod Touch后?

    輸入

  • cd /var/root/flower?

  • 復制代碼

    解壓原游戲版本程序?
    在 PuTTY / Terminal 輸入

  • unzip *-v1.0.ipa?

  • mv Payload/FlowerChainCN.app/FlowerChainCN FlowerChainCN.original?

  • 復制代碼

    刪除不需要的的路徑及檔案?
    在 PuTTY / Terminal 輸入

  • rm -fr Payload/ iTunesArtwork *.ipa?

  • 復制代碼

    解壓不死作弊修改版程序?
    在 PuTTY / Terminal 輸入

  • unzip *-v1.0.ipod4g.ipa?

  • mv Payload/FlowerChainCN.app/FlowerChainCN FlowerChainCN.patched?

  • 復制代碼

    刪除不需要的的路徑及檔案?
    在 PuTTY / Terminal 輸入

  • rm -fr Payload/ iTunesArtwork *.ipa?

  • 復制代碼

    反匯編原游戲程式及保存反匯編文本文件為 FlowerChainCN.original.txt?
    在 PuTTY / Terminal 輸入

  • otool -tv FlowerChainCN.original &gt; FlowerChainCN.original.txt?

  • 復制代碼

    反匯編不死作弊修改版程式及保存反匯編文本文件為 FlowerChainCN.patched.txt
    在 PuTTY / Terminal 輸入

  • otool -tv FlowerChainCN.patched &gt; FlowerChainCN.patched.txt?

  • 復制代碼

    比較兩個版本及找出差異?
    在 PuTTY / Terminal 輸入

  • diff FlowerChainCN.original.txt FlowerChainCN.patched.txt?

  • 復制代碼

    得到

  • < FlowerChainCN.original:?

  • ---?

  • > FlowerChainCN.patched:?

  • 3060c3060?

  • < 00004ee8 e1520003 cmp r2, r3?

  • ---?

  • > 00004ee8 e3520001 cmp r2, #1 ; 0x1?

  • 復制代碼

    原版本列在左邊及把差異列在右邊并輸出差異文本保存為 FlowerChainCN.diff.txt
    在 PuTTY / Terminal 輸入

  • diff -y --left-column FlowerChainCN.original.txt FlowerChainCN.patched.txt &gt; FlowerChainCN.diff.txt?

  • 復制代碼

    用 less 工具打開差異文本 FlowerChainCN.diff.txt
    在 PuTTY / Terminal 輸入

  • less FlowerChainCN.diff.txt?

  • 復制代碼

    在 less 工具內搜尋差異分隔字符?|
    在 less 工具內輸入

  • /\|?

  • 復制代碼

    得到下面差異的顯示去做進一步分析

  • 00004ee8 e1520003 cmp r2, r3 | 00004ee8 e3520001 cmp r2, #1 ; 0x1

  • 復制代碼




    在 PuTTY / Terminal 輸入這句也可看到原版本上下的代碼

  • grep -C5 &#39;|&#39; FlowerChainCN.diff.txt

  • 復制代碼

  • grep -C5 00004ee8??FlowerChainCN.original.txt

  • 復制代碼

    ⑧ 最后送上我自購破解的一個很實用的iPhone小工具 - 64位計算器
    這小工具除了可以做64位的計算外,還可以輸入文字及顯示Unicode的代碼


    64 Bit Calculator v1.8 更新 (iPhone、iPod touch、iPad 兼容, iOS 4 / iOS 5), 支持 Retina iPad
    ?64BitCalc-v1.8_ipod4g.ipa?(5.69 MB, 下載次數: 161)?? ?

    64 Bit Calculator v1.7 更新 (iPhone、iPod touch、iPad 兼容, iOS 4 / iOS 5)
    ?64BitCalc-v1.7.ipa?(3.47 MB, 下載次數: 113)?


    64 Bit Calculator v1.2 (iPhone)
    ?64_Bit_Calc-v1.2.ipod4g.ipa?(788 KB, 下載次數: 324)?




    64 Bit Calculator v1.2 (iPad)????64_Bit_Calc_iPad-v1.2.ipa?(1.49 MB, 下載次數: 628)?






    最好的源代碼編輯器
    Textastic for iPad v4.1??(iPad 兼容, 要求 iOS 5.0):??Textastic_iPad_v4.1_ipod4g.ipa?(5.17 MB, 下載次數: 45)?? ?

    Textastic for iPhone v4.2??(iPhone, iPod Touch 兼容, 要求 iOS 5.1):?Textastic_iPhone_v4.2_ipod4g.ipa?(6.87 MB, 下載次數: 67)?? ?



    關于 FinalFantasy2?1.0.4 版本?ldid 簽名時出現錯誤信息 Segmentation fault

    初代 iPhone 使用ARMv6 指令集, 直到3GS, iPad, IPhone 4設備蘋果開始采用了 ARMv7 指令集

    如果你輸入指令

  • otool -f FinalFantasy2

  • 復制代碼

    就會看到

  • architecture 0

  • ? ? cputype 12

  • ? ? cpusubtype 6

  • architecture 1

  • ? ? cputype 12

  • ? ? cpusubtype 9

  • 復制代碼

    你可以把 FinalFantasy2 切開為 FinalFantasy2V6

  • lipo -thin armv6??FinalFantasy2 -output FinalFantasy2V6

  • chmod +x FinalFantasy2V6

  • chown mobile:mobile FinalFantasy2V6

  • 復制代碼

    及切開為 FinalFantasy2V7

  • cp -p FinalFantasy2 FinalFantasy2tmp

  • echo -ne &quot;\x09&quot; | dd bs=1 seek=15 conv=notrunc status=noxfer of=FinalFantasy2tmp

  • echo -ne &quot;\x06&quot; | dd bs=1 seek=35 conv=notrunc status=noxfer of=FinalFantasy2tmp

  • lipo -thin armv6 FinalFantasy2tmp -output FinalFantasy2V7

  • rm FinalFantasy2tmp

  • chmod +x FinalFantasy2V7

  • chown mobile:mobile FinalFantasy2V7

  • 復制代碼

    但 iPhone 的 otool 不支持反匯編 ARMv7 指令集 (odcctools v782 的 otool 可以支持反匯編 ARMv7 指令集了), 你要用新版本的 IDA Pro /??v782 的 otool 反匯編

    在 iPhone 你也許可以反匯編 FinalFantasy2V6, 修改及用 ldid 去簽名

    FinalFantasy2V6 簽名后便可替代原版本使用, 游戲來說ARMv6 指令集也可以, 只不過在新的設備上使用時不是最優化.

    總結

    以上是生活随笔為你收集整理的iOS APP 反编译的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲精品在线资源 | 美女精品在线观看 | 天天搞夜夜骑 | 97天堂 | 久久精品欧美日韩精品 | 欧美极品在线播放 | 天天干天天操天天爱 | 97精品国产97久久久久久春色 | 久久tv| 在线黄色免费av | 伊人色综合网 | www.天天射.com | 久久综合丁香 | 成人h电影在线观看 | 综合色在线 | 欧美极度另类性三渗透 | 国产成人a亚洲精品 | 久久久国产一区二区 | 欧美午夜剧场 | 亚洲国产成人久久 | 日韩高清dvd | 在线播放91 | 婷婷在线免费视频 | 亚洲天堂网在线播放 | 国产片免费在线观看视频 | 五月花激情 | 夜夜夜影院 | 天天曰 | 激情视频免费在线 | 狠狠色丁香婷婷 | 91成人久久 | 国产涩图 | 天天干,天天插 | 久久精品xxx | 国产精品影音先锋 | 日韩三级视频在线看 | 国产91成人在在线播放 | 精品99在线 | 欧美一区二区三区在线观看 | 久久第四色| 国产精品久久久久久久久久妇女 | www.天天色.com | 亚洲专区在线视频 | 国精产品999国精产 久久久久 | 亚洲国产精品小视频 | 在线 国产 亚洲 欧美 | 日韩av进入| 在线综合 亚洲 欧美在线视频 | 免费一级片视频 | 麻豆久久一区二区 | 日日狠狠 | 中文字幕 国产专区 | 美女网站视频久久 | 99精品免费| 在线黄色国产电影 | 国产二区视频在线 | 五月在线视频 | 久久精品99国产精品亚洲最刺激 | 精品一区精品二区 | 国产精品精品久久久久久 | 69视频网站 | 久久免费a | 天天天综合 | 欧美大码xxxx | 中文字幕综合在线 | 国产精品日韩欧美一区二区 | 久久精品久久99精品久久 | 欧美一区二区三区四区夜夜大片 | 日韩在线免费视频观看 | 国产成人久 | 91精品国产麻豆 | 欧美一级xxxx| 天天天色综合 | 激情xxxx| 911免费视频 | 91日韩在线播放 | 99精品国产兔费观看久久99 | 中文字幕乱码亚洲精品一区 | 亚洲综合色丁香婷婷六月图片 | 一区二区精品在线视频 | 久久深夜 | 99精品国产高清在线观看 | 97视频人人免费看 | 日韩 在线a| 亚洲精品免费看 | 久久亚洲欧美日韩精品专区 | 欧美精品天堂 | 在线看日韩av | 天天射网站 | 国产精品久久久久久久久婷婷 | 国产精品免费久久久久久 | 久久66热这里只有精品 | 日韩av男人的天堂 | 欧美黄色高清 | 黄色片免费电影 | 久久精品一区二区三区视频 | 99在线国产 | 视频成人 | 不卡中文字幕av | 97小视频 | 四虎8848免费高清在线观看 | 日韩精品一区二区三区视频播放 | 色综合天天狠天天透天天伊人 | 成人免费在线视频观看 | 69视频在线播放 | 在线电影日韩 | 午夜精品区 | 色综合天天狠天天透天天伊人 | 一区二区三区在线电影 | 国产精品爽爽爽 | 在线精品亚洲一区二区 | 五月婷婷电影网 | 亚洲高清视频在线观看免费 | 99 精品 在线 | 日本色小说视频 | 一级片视频免费观看 | 亚洲欧洲精品一区二区 | 欧美日韩国产精品久久 | 日日天天av| 最近最新最好看中文视频 | 色丁香婷婷 | 蜜臀久久99静品久久久久久 | 亚洲精品国产综合99久久夜夜嗨 | 92av视频| 久久国产露脸精品国产 | 91av视频导航| 国产免费中文字幕 | 色天天中文 | 午夜av在线免费 | 亚洲成a人片77777潘金莲 | 国产一区二区免费在线观看 | 色国产精品 | 久草在线资源观看 | 麻豆国产网站入口 | 91毛片在线 | 久久久国产精华液 | 最近的中文字幕大全免费版 | 日韩黄色一区 | 99综合电影在线视频 | 欧美一级专区免费大片 | 亚洲国产美女久久久久 | 久久久久久久网 | 精品 激情| 欧美日韩一区二区在线观看 | 丁香导航| 日日夜夜天天久久 | 天天视频亚洲 | 色吧av色av| 伊人久久国产 | 人人爱人人舔 | 久久精品一二三区白丝高潮 | 96看片| 99久久婷婷国产综合亚洲 | 国产精品乱码一区二三区 | 亚洲aⅴ在线观看 | 97视频在线观看网址 | 国产婷婷久久 | 日韩高清精品一区二区 | 国产成人精品av在线观 | 亚洲国产网站 | 九九免费在线看完整版 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产三级在线播放 | 三级av片 | 亚洲成av人片在线观看香蕉 | 在线色网站 | 亚洲视频电影在线 | 久久国产精品免费看 | 国产美腿白丝袜足在线av | 亚洲精品国产拍在线 | 亚洲首页 | 天天草天天 | 91国内在线 | 国产一区在线看 | 免费观看高清 | 在线91视频 | 亚洲精品色视频 | 91九色porny蝌蚪视频 | 国产精品原创在线 | 亚洲成人高清在线 | 国产精品一区二区视频 | 久久一区二区三区超碰国产精品 | 天天摸天天操天天舔 | 国产一级二级在线观看 | 亚洲经典视频在线观看 | 激情五月婷婷综合 | 日韩久久一区 | 国产精品一区二区av日韩在线 | 国产免费观看视频 | 久久99国产精品久久99 | 国产精品九九久久久久久久 | 久久tv视频 | 91免费版在线观看 | 欧美最爽乱淫视频播放 | 在线观看免费高清视频大全追剧 | 操久| 激情久久综合网 | 国产精品久久久久免费 | av电影av在线 | 成人精品999| av免费网页 | 日日综合网 | 日韩经典一区二区三区 | 99精品视频免费观看 | 成人av播放 | 免费看日韩片 | 色综合天天射 | 久久免费影院 | 色婷婷中文 | 国产精品中文久久久久久久 | 韩国中文三级 | 综合天堂av久久久久久久 | 国产成人精品一区二区三区在线 | 国产一在线精品一区在线观看 | 免费一区在线 | 99久热在线精品视频成人一区 | 亚洲 综合 国产 精品 | 久热色超碰| 91麻豆国产 | 九色自拍视频 | 日韩在线观看不卡 | 2018好看的中文在线观看 | 美女福利视频网 | 亚洲精品www久久久久久 | 日韩免费一区二区三区 | 日韩成人免费在线观看 | 亚洲国产小视频在线观看 | 夜夜嗨av色一区二区不卡 | 一区二区三区www | 波多野结衣在线播放一区 | 99久久综合精品五月天 | 香蕉91视频| 国产精品久久 | 色午夜 | 成人黄色电影视频 | 亚洲天堂在线观看完整版 | 国产亲近乱来精品 | 精品国产一区二区三区四区在线观看 | 最新三级在线 | 亚洲国产欧洲综合997久久, | 91av在线看| 国内精品久久久久久 | 亚洲国产精品第一区二区 | 成人免费视频网站 | 99精品在线 | 在线成人免费av | 黄色大片日本 | 一区二区中文字幕在线 | av一区二区三区在线 | 成人97人人超碰人人99 | 99久久精品网 | 成人夜晚看av | 五月婷社区 | 偷拍久久久 | 天天干,夜夜操 | 天天干天天操天天爱 | 欧美一区二区伦理片 | 四虎在线免费观看视频 | 99re6热在线精品视频 | 亚洲一级免费电影 | 亚洲一二区精品 | 毛片永久新网址首页 | 99久久er热在这里只有精品66 | 午夜精品剧场 | 亚洲精品99久久久久中文字幕 | 日韩一二区在线观看 | 日韩二区三区 | 美女一级毛片视频 | 久热色超碰| 亚洲欧美怡红院 | 三级毛片视频 | 在线免费观看黄色 | 欧美日韩在线免费观看 | 国产成人一区二区在线观看 | 久久久久久久久久久国产精品 | 亚洲婷婷在线 | 午夜影院在线观看18 | 日日夜夜精品免费观看 | 欧美日韩aa | 亚洲区精品视频 | 国产97色在线 | 国产韩国精品一区二区三区 | 91在线影院| 久久久久久久久久免费视频 | 午夜视频在线观看一区二区三区 | 欧美日韩国产一区二 | 黄色av影院 | 亚洲免费在线观看视频 | 亚洲精品五月 | 中文字幕免费 | 日韩在线视频二区 | 五月婷婷在线播放 | 欧美成人精品欧美一级乱 | 91欧美精品 | 日韩欧美视频一区二区三区 | 久久精品电影 | 日韩电影在线观看一区二区三区 | 97天天干| 国产精品久久久久久久久久久免费看 | 日韩精品一区二区三区免费视频观看 | 99久久99久久综合 | 成年人天堂com | 久久五月天综合 | 中文字幕黄网 | 日日夜夜网 | 日韩精品不卡在线 | 中文字幕在线播放一区 | 久久精选视频 | 精品一区二区在线免费观看 | 色综合天天在线 | 香蕉视频色 | 欧美在线观看视频免费 | 国产精品九九久久久久久久 | 综合网伊人 | 日韩欧美精品一区二区 | www.狠狠干| 91热这里只有精品 | 亚洲精品国产欧美在线观看 | jizzjizzjizz亚洲| av电影在线观看完整版一区二区 | 国产精品99页 | 国产精品原创 | 99热手机在线观看 | 在线观看香蕉视频 | 手机av观看 | 日韩专区在线播放 | 久久影院午夜论 | 色天天综合久久久久综合片 | 中文字幕人成不卡一区 | 免费网站看v片在线a | 色成人亚洲网 | 国产亚洲精品久久久久动 | 91麻豆文化传媒在线观看 | 中文字幕观看视频 | 天天色官网 | 激情小说网站亚洲综合网 | 精品伦理一区二区三区 | 中文字幕一区二区三区四区久久 | 成年一级片 | 久久精品首页 | 天天爱天天插 | 亚洲国产成人在线 | 三级黄色免费片 | 永久av免费在线观看 | 黄色h在线观看 | 国产黄色视 | 国产中文字幕视频在线观看 | 亚洲第一区精品 | 999电影免费在线观看2020 | 亚洲国产经典视频 | 成人免费电影 | 精品国偷自产国产一区 | 国产一区二区观看 | 九九九热精品免费视频观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 天天射天天爱天天干 | 亚洲精品在线观看不卡 | 日韩在线网 | av字幕在线 | 欧美激情综合五月 | 精品毛片一区二区免费看 | 成人在线一区二区三区 | 国产亚洲精品久久久久久移动网络 | 亚洲综合五月 | 99免费观看视频 | 97成人精品区在线播放 | 91av视频在线播放 | 国产乱码精品一区二区蜜臀 | 五月天婷婷免费视频 | 欧美一区二区三区四区夜夜大片 | 成人在线免费看视频 | 婷婷六月天在线 | 在线观看日韩中文字幕 | 91在线看片| 欧美日韩免费在线观看视频 | 国产成人av在线 | 天天操天天舔天天爽 | 麻豆视频在线免费 | 亚洲国产精品500在线观看 | 久久中文精品视频 | 在线免费亚洲 | 亚洲精品videossex少妇 | 91在线porny国产在线看 | 最新午夜| 日韩高清免费在线 | 亚洲国产偷 | 69国产在线观看 | 精品亚洲午夜久久久久91 | 四虎国产免费 | 国产精品麻豆视频 | 国产一区免费 | 亚洲激精日韩激精欧美精品 | 国内视频一区二区 | 亚洲综合网 | 337p日本欧洲亚洲大胆裸体艺术 | 日韩电影精品一区 | 天天操夜操| 欧美日韩精品国产 | 欧美另类视频 | 日本激情中文字幕 | 91精品国产成 | 天天伊人网 | 日韩精品视频免费在线观看 | 免费看的黄色片 | 黄色性av | 在线观看免费福利 | 久久精品www人人爽人人 | 午夜精品久久久久久久久久 | 99精品国产免费久久久久久下载 | av中文在线观看 | 久久综合中文字幕 | 国产麻豆果冻传媒在线观看 | 欧美va天堂va视频va在线 | 免费观看黄 | 91精品国产91久久久久福利 | 亚洲黄色区 | 国产精品99蜜臀久久不卡二区 | 在线观看a视频 | www.av小说| 精品久久久国产 | 国产在线欧美在线 | 亚洲日本欧美在线 | 日韩电影在线观看中文字幕 | 亚洲人成人天堂h久久 | 国产一级片免费播放 | 天天色成人网 | 99精品国产一区二区三区麻豆 | 激情欧美一区二区三区 | 激情五月婷婷网 | 丝袜美女在线 | 久久久久一区二区三区 | 成人性生交大片免费观看网站 | a午夜在线 | 久久在线观看视频 | 亚洲天堂网站视频 | 黄色av一区二区三区 | 91免费国产在线观看 | 欧美一级片免费观看 | 97精品国产 | 欧美日韩视频一区二区三区 | 狠狠操天天射 | 亚洲国产精品人久久电影 | 色婷婷av一区 | 久久久久久久看片 | 99热国产精品 | 久福利 | 性色xxxxhd| 一区 在线观看 | 日韩三级免费观看 | 日本黄色免费大片 | 在线观看亚洲专区 | 97精品超碰一区二区三区 | 久久久精品一区二区三区 | 国产精品一区二区无线 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 超碰人人91 | 91爱爱免费观看 | 人人爽人人爽人人片 | 深爱五月激情网 | 一区二区视频在线免费观看 | 日韩午夜在线播放 | 五月天婷婷在线播放 | 狠狠狠狠狠狠干 | 日本精品视频网站 | 91精品久久久久久综合乱菊 | 91日韩在线专区 | 亚洲视频一区二区三区在线观看 | 综合网av| 欧美伦理一区二区三区 | 国产 日韩 在线 亚洲 字幕 中文 | 免费久久99精品国产 | 国产日韩在线视频 | 久久中文网 | 久久天堂网站 | 成人综合婷婷国产精品久久免费 | av亚洲产国偷v产偷v自拍小说 | 超碰夜夜 | 五月天丁香综合 | 天无日天天操天天干 | 免费观看v片在线观看 | 国产成人一区二区三区在线观看 | 中文字幕在线观看免费 | 在线观看精品国产 | 婷色在线 | 成人9ⅰ免费影视网站 | 日日操日日操 | 久一在线 | 国产麻豆视频免费观看 | 在线成人小视频 | 午夜精品一区二区三区在线观看 | 久产久精国产品 | 免费福利视频导航 | 8x成人免费视频 | 国产女人免费看a级丨片 | 欧美成人亚洲 | 丁香六月激情 | 久久99久久99久久 | 亚洲精品乱码久久久久久蜜桃欧美 | 欧美在线99 | 久久理论片 | 精品毛片一区二区免费看 | 欧美激情精品久久久久久免费印度 | 久草在线在线精品观看 | 人人爱人人做人人爽 | 97伊人网 | 亚洲 欧美 综合 在线 精品 | 日日夜夜骑 | 99高清视频有精品视频 | 欧美在线日韩在线 | 99这里只有精品视频 | 免费中文字幕视频 | 在线а√天堂中文官网 | 美女中文字幕 | 日韩美女免费线视频 | 国产玖玖视频 | 91爱看片| 精品国自产在线观看 | 日韩免费三区 | 亚洲精品91天天久久人人 | 日韩性久久 | 99麻豆视频 | 色婷婷国产精品 | 亚洲另类交| 国产无遮挡又黄又爽在线观看 | 在线观看色网站 | 成人免费大片黄在线播放 | www.黄色 | 亚洲日本va午夜在线电影 | 99久久精品免费看国产一区二区三区 | 日韩欧美黄色网址 | 国产黄大片在线观看 | 国产理论片在线观看 | 日狠狠 | 日韩av黄 | 国产亚洲欧美一区 | 国产黄色在线 | 91色一区二区三区 | 久久国产精彩视频 | 狠狠操狠狠干天天操 | 蜜臀精品久久久久久蜜臀 | 在线影院 国内精品 | 日韩免费电影一区二区三区 | 亚洲国产大片 | 狠狠插狠狠操 | 国产日本亚洲高清 | 国产精品99蜜臀久久不卡二区 | 国产亚洲在线视频 | 欧日韩在线 | 99re国产视频 | 久久99视频免费 | 色综合天天干 | 黄网站免费久久 | 中文字幕久久精品亚洲乱码 | 中午字幕在线观看 | 超碰人人射 | 特级毛片在线观看 | 色99久久| 黄色成人在线观看 | 日韩综合视频在线观看 | 日韩av偷拍 | 婷婷六月综合网 | 色婷婷中文 | 久久精久久精 | 国产精品久久久久久久婷婷 | 国产精品人人做人人爽人人添 | 一本一道久久a久久综合蜜桃 | 久久久免费精品视频 | 亚洲欧洲精品视频 | 国产黄色片一级 | 欧美最猛性xxx | 国产一区二区在线视频观看 | 国产精品一区二区美女视频免费看 | 97视频在线免费 | 久久草精品 | 亚洲视频1 | 亚洲不卡123 | 欧美日韩视频在线播放 | 国产成人一区二区啪在线观看 | 婷婷播播网 | 99 视频 高清 | 免费观看丰满少妇做爰 | 久久久亚洲麻豆日韩精品一区三区 | 久久看片| 免费黄在线看 | 欧美 激情在线 | 久久久网址 | av中文天堂在线 | 97在线视频免费观看 | 国产三级av在线 | 日韩在线观看视频一区二区三区 | 六月丁香激情网 | a久久久久| 亚洲国产一区二区精品专区 | 日韩av看片 | 日韩免费 | jizzjizzjizz亚洲| 欧美精品二 | 精品久久国产一区 | 欧美资源| 在线播放亚洲 | www免费| av在线网站观看 | 国产a视频免费观看 | 久久久久成人精品免费播放动漫 | 亚洲成人在线免费 | 久久久久欧美精品999 | 国产精品久久精品国产 | 免费看久久 | 日韩av一卡二卡三卡 | 国产精品久久久久一区二区三区 | 国产精品电影在线 | 亚洲午夜精品福利 | 91精品影视 | 国产精品第一页在线观看 | 91亚洲精品视频 | 黄色软件大全网站 | 91久久奴性调教 | 成人黄色小说网 | 91福利区一区二区三区 | 日韩啪啪小视频 | 色丁香综合 | 99久久婷婷国产综合精品 | 黄a在线看 | 久久综合免费视频 | 91av手机在线观看 | 久草在线费播放视频 | 日本不卡久久 | a电影免费看 | 涩涩色亚洲一区 | 天天天色综合a | 亚洲精品影院在线观看 | av色一区 | 精品福利视频在线观看 | 欧美一区二区日韩一区二区 | 不卡精品 | 四虎影视国产精品免费久久 | 国产黄色片免费在线观看 | 国产日产欧美在线观看 | 中文字幕久久精品 | 国产资源站 | av资源网在线播放 | 在线观看视频中文字幕 | 亚洲午夜av | 美女黄久久 | 国内三级在线观看 | 五月天激情视频 | 国产成免费视频 | 特级西西444www高清大视频 | 黄色aa久久 | 成人三级网址 | 一区二区三区视频网站 | 天天操综 | 天堂资源在线观看视频 | 成年人视频在线免费观看 | 精品国产电影 | 91爱爱网址 | 一二三四精品 | 麻花豆传媒一二三产区 | 国产免费又爽又刺激在线观看 | 97超碰国产精品女人人人爽 | 男女日麻批 | 日韩videos高潮hd | 人人添人人 | 免费中文字幕视频 | 99精品热视频 | 香蕉97视频观看在线观看 | 麻豆视频在线免费观看 | 国产麻豆精品95视频 | 伊人久久婷婷 | 中文在线字幕免费观 | 日本在线成人 | 久久成人人人人精品欧 | 亚洲国产高清视频 | 久久黄色免费观看 | 日韩视频一区二区在线观看 | 国产精品孕妇 | 天天干天天操天天射 | 丁香视频 | 欧美五月婷婷 | 欧美激情视频一二三区 | 97看片| 国产中文字幕av | 97在线播放 | 一区二区精品在线观看 | 黄网站色欧美视频 | 久久99精品一区二区三区三区 | 丝袜+亚洲+另类+欧美+变态 | 久久色在线观看 | 亚洲精品国产精品乱码在线观看 | 一区二区三区动漫 | av字幕在线 | 成人av免费| 日韩字幕| 欧美性色黄大片在线观看 | 高清中文字幕av | 一区二区三区在线不卡 | 五月天婷婷狠狠 | 国产小视频免费在线网址 | 99久免费精品视频在线观看 | 91最新在线 | 久久精品福利 | 99在线热播精品免费 | 国产小视频精品 | 日韩亚洲国产中文字幕 | av成人动漫 | 69国产在线观看 | 精品视频免费久久久看 | 成人国产精品电影 | 久草网在线观看 | 热re99久久精品国产66热 | av片一区 | 久久99国产精品久久 | 最新高清无码专区 | 国产高清在线a视频大全 | 91完整版| 欧美日韩一区二区在线 | 国产区精品在线观看 | 天天干天天插 | 国产三级视频 | 91九色视频导航 | 久久国产精品一区二区三区四区 | 久久美女精品 | 国产精华国产精品 | 免费观看国产视频 | 有没有在线观看av | 欧美日韩国产伦理 | 91丨九色丨91啦蝌蚪老版 | 国产91电影在线观看 | 久久久免费观看视频 | 九九九热精品免费视频观看网站 | 日日夜夜天天久久 | 在线免费观看成人 | 国产精品成人a免费观看 | 国产精品久久久久一区 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 黄色毛片在线看 | 超级碰视频 | 人人爽人人爽人人片av | 93久久精品日日躁夜夜躁欧美 | 婷婷在线观看视频 | 色诱亚洲精品久久久久久 | 最新超碰在线 | 国产不卡精品 | 亚洲aaa毛片 | 中文字幕精品一区久久久久 | 91香蕉视频黄 | 国产高清 不卡 | 日韩免费不卡视频 | 人人爽人人干 | 中文字幕免 | 亚洲国产黄色 | 波多野结衣视频一区二区 | 色婷婷久久一区二区 | 成人黄色电影免费观看 | 国产精品国产三级在线专区 | 国产精品国产亚洲精品看不卡 | 欧美福利视频一区 | 国产精品va在线 | 亚洲va欧美va国产va黑人 | 亚洲免费视频在线观看 | 在线观看视频一区二区 | 日韩av一区二区在线影视 | 欧美精品乱码久久久久久按摩 | 91视频 - x99av| 免费在线观看成年人视频 | 精品国产综合区久久久久久 | 国产精品11| 日本一区二区高清不卡 | 日韩精品一区二区三区免费观看 | 在线观看国产www | 在线观看黄色国产 | 国产v在线 | 国产一二三在线视频 | 91av在线免费看 | 国产五月婷 | 国产中文字幕视频在线观看 | 国际av在线| 欧美日韩国产精品一区二区三区 | 欧美日韩在线视频观看 | 亚洲一区二区三区四区在线视频 | 激情av资源 | 特级黄色片免费看 | 婷婷福利影院 | 麻豆视传媒官网免费观看 | 又大又硬又黄又爽视频在线观看 | 成人性生活大片 | 日本女人b| 中文字幕色网站 | a√国产免费a | 91麻豆国产福利在线观看 | 国产视频中文字幕 | 香蕉影视在线观看 | 国产高清无线码2021 | 久久久网站 | 成人一区在线观看 | 欧美色插 | 成人黄色免费在线观看 | 亚洲国内在线 | 国产亚洲在 | 午夜久久 | 成人亚洲网 | 久久都是精品 | 九九久久精品 | 四虎成人精品在永久免费 | 亚洲精选在线 | 在线中文字幕网站 | 成片免费| 亚洲japanese制服美女 | 久久视频在线看 | 手机看片1042 | 成人天堂网 | 亚洲激情免费 | 韩国三级在线一区 | 欧美日韩一区二区免费在线观看 | 二区视频在线观看 | 日韩欧美精品一区二区 | 大荫蒂欧美视频另类xxxx | 一级免费黄视频 | 日日夜夜操操操操 | 日韩精品久久久久久中文字幕8 | 91九色蝌蚪视频 | 亚洲视频每日更新 | 亚洲理论影院 | 国产99久久久国产精品 | 午夜国产福利在线观看 | 亚洲精品午夜aaa久久久 | 91精品欧美 | 亚州国产精品 | 精品国产精品国产偷麻豆 | 性色va| 国产精品99久久久精品 | 天天爽夜夜操 | 欧美精品久久天天躁 | 久久久精品网站 | 国产大尺度视频 | 欧美激情视频一区 | 成人在线免费看视频 | 久久精品视频3 | 国产色道 | 精品视频免费看 | 丁香婷婷基地 | 成年人免费观看国产 | 日韩专区中文字幕 | 亚洲免费资源 | 尤物九九久久国产精品的分类 | 色wwww| 亚洲精品国产精品国自产在线 | 精品国产乱码久久久久久三级人 | 美女福利视频在线 | 91中文字幕一区 | 精品一区二区视频 | 天天爱天天插 | 最近中文字幕国语免费av | 日韩激情视频 | 中文字幕在线视频网站 | 在线观看一区 | 97超碰福利久久精品 | 国产成人精品一区二区三区在线观看 | 欧美午夜性生活 | 在线视频 91| 在线天堂日本 | 成人黄色大片网站 | 黄色在线观看免费网站 | 国产日韩在线看 | av官网 | 国产精品九九九九九九 | 日韩av电影中文字幕在线观看 | 国产成人专区 | 国产中文字幕一区二区 | 国产欧美精品xxxx另类 | 婷婷在线不卡 | 美女久久久久久久 | 日日夜夜国产 | 黄色三级网站在线观看 | 亚洲成人麻豆 | 亚洲午夜精品一区二区三区电影院 | 亚洲a资源| 国产亚洲精品久久久久久久久久久久 | 爱爱av在线 | 亚洲片在线 | 又黄又爽的视频在线观看网站 | 中文字幕免费高清av | 天天狠狠| a在线免费观看视频 | 国产亚洲精品日韩在线tv黄 | 国产精品片 | 日韩三级久久 | 成人免费视频视频在线观看 免费 | 狠狠干狠狠艹 | 91超国产| 国产99久久久精品 | 国产精品美女久久久久久网站 | 最近中文字幕免费视频 | 欧美日韩一区二区在线观看 | 9久久精品 | 国产伦精品一区二区三区无广告 | 最近中文字幕mv | 国产午夜精品一区二区三区四区 | 国产日韩在线看 | 国产视频日本 | 久草av在线播放 | www.狠狠色| 欧洲一区精品 | 国产精品永久免费视频 | 综合久久五月天 | 最近日韩中文字幕中文 | 综合五月 | 国产在线高清视频 | 91精品一区二区三区蜜臀 | 玖玖在线视频观看 | 婷婷丁香色 | 欧产日产国产69 | 中文字幕在线观看播放 | 欧美日韩国产伦理 | 国产在线欧美日韩 | 久久影视网 | 国产精品毛片一区二区在线 | 免费看污在线观看 | 亚洲国产精久久久久久久 | 免费裸体视频网 | 久久精久久精 | 中文在线a天堂 | 国产视频在线免费观看 | 在线中文视频 | av高清影院 | 超碰在线日本 | 玖玖视频免费在线 | 在线中文字幕播放 | 久久999精品 | 国产亚洲精品久久久久久无几年桃 | 国产中文字幕免费 | 精品一区在线 | 五月婷婷六月综合 | 欧美在线一二区 | 精品久久久久久久久久久久 | 日韩在线网址 | 国产黄色特级片 | 久久久久久久久黄色 | 亚洲免费av网站 | 日韩精品一二三 | 亚洲天堂精品 | 免费网站污 | 亚洲黄色app| 91九色视频网站 | 久久久午夜剧场 | 美女久久99 | 免费国产一区二区 | 黄网站免费大全入口 | 一区 二区 精品 | 人人搞人人干 | 久久免费观看少妇a级毛片 久久久久成人免费 | 在线观看免费成人 | 在线观看va | 狠狠gao | 99c视频在线| 久久国产欧美日韩精品 | 视频1区2区 | 国产在线国产 | 国产精品一区二区三区久久久 | 欧美日韩一区二区在线观看 | 亚洲国产精品一区二区久久hs | a v在线观看 | 四虎在线免费观看视频 | av高清一区二区三区 | av网站地址 | 国产高清视频免费在线观看 | 天堂网av 在线 | 久久av网 | 99精品国产一区二区 | 在线日本看片免费人成视久网 | 久久久久 免费视频 | 亚洲视频在线观看免费 | 欧美日韩精品在线免费观看 | 亚洲精品欧美成人 | 精品亚洲男同gayvideo网站 | 欧美资源 | 国产护士av | 麻豆成人在线观看 | 六月婷色 | 亚洲国产中文在线观看 | 精品久久久久免费极品大片 | wwxxxx日本| 日韩精品1区2区 | 欧美aa级| 亚洲在线国产 | 在线观看一区二区视频 | 麻豆视频国产精品 | 国产一区观看 | www.午夜视频| 精品国产免费一区二区三区五区 | 久久久久在线观看 | 国产69久久 | 日韩网站在线观看 | 99精品视频播放 | 国产成人精品一区二 | 色噜噜噜噜 | 91亚洲网 | 日韩中文字幕免费电影 |