忍者ブログ
We aren't android!
Admin / Write
2017/06/24 (Sat) 17:47
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2013/07/29 (Mon) 23:18
 
--> バイナリ欲しい方はこっち(パスは機種名)
f10dunlock 5 rev2(2013/7/22 V22R49C対応)
 
差分からアドレスを計算します
 
・対象のカーネル
・元Verのカーネル
 
F-10Dなら、/dev/block/mmcblk0p36がカーネル、
/dev/block/mmcblk0p35がリカバリ。
ISW13Fなら、mmcblk0p20がカーネル。
 
rootを取った状態で、
#dd if=/dev/block/mmcblk0p36 of=/mnt/sdcard/mmcblk0p36.bin bs=512
とかする。SDカードにコピー。
 
unpack-bootimg.pl をどこかから入手して、mmcblk0p36.binを分解する。
 
コマンド: unpack-bootimg.pl ファイル名[mmcblk0p36.bin]
 
mmcblk0p36.bin-kernel.gz
mmcblk0p36.bin-ramdisk.cpio.gz
なるファイルが得られるが、欲しいのはmmcblk0p36.bin-kernel.gzの方。
 
mmcblk0p36.bin-kernel.gz はそのままだと先頭にゴミが入っているので、
1F 8B で始まる個所以前をバッサリ消す。
バイナリエディタでビットイメージを表示すると開始位置がわかりやすい。
明らかに色合いが違うところがある。
 
ゴミヘッダを取り除いたら、gunzipとかで.gzを解凍する。Windows上のLhazはダメだった。
 
展開されたファイルが、そのままカーネルイメージとなります。
 
位置を特定するために、逆アセンブルしてみます。IDAとかあると便利みたいですが、
大変お高いので、このサイトのお世話になる。
 
今回はオンラインのではなく、以下のARM逆アセンブラを使ってみます。
 
cdaarm -arm -autobin,0xc0008000 -mon 5 mmcblk0p36 > dump.txt
 
こんなコマンドを打ち込んで、dump.txtに逆アセンブル結果を書き込む。
0xC0000000 + 0x00008000 = 0xc0008000を忘れると悲惨。
 
f10dunlock.cをよく見てみると書き換えのヒントになる個所があり、
 
static const unsigned original_code[] = {
  0xe24cb004, // SUB             R11, R12, #4
  0xe1a06001, // MOV             R6, R1
};
 
とあります。というわけで、
SUB             R11, R12, #4
MOV             R6, R1
がある場所を探します。そんなに多くはないはずですし、
アドレスは大きく移動しないので、0xc044????あたりから探せばたぶん見つかる。
前後数行見て同じであれば、ビンゴ!
mempatch()で渡すアドレスが求まりました。
 
mempatch0()で渡すアドレスは、アドレスが既に判明しているカーネルから
直接バイナリ比較すれば、見つけられるはず。ガンバ。
 
んで、両方ともアドレスが求まったら、コンパイルする。
今回はこれを使ってみた
 
ARM-Linux GCC 4.4.3
 
ダウンロードして、解凍したら、適当なところに配置しパスを通しておく。
下のような感じで
export PATH=$PATH:/usr/local/arm/4.4.3/bin
 
コマンドは、
$ arm-linux-gcc -static f10dunlock.c -o f10dunlock
 
とすると、コンパイルされる。ワーニングが出ますけど。
-staticをつけないと、正常に実行できない様子。
ただ、いらんものまで入るからサイズが肥大化します。
PR
Comment
Name
Title
Mail
URL
Comment
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  HOME   222  221  220  219  218  217  216  215  214  213  212 
カレンダー
05 2017/06 07
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
RSS/カウンタ
ブログ内検索
プロフィール
性別:
非公開
最新トラックバック
QRコード
最新コメント
[03/09 AAA]
[02/06 名無し]
[02/02 名無し]
[02/01 マンマミーヤ]
[01/30 地獄の番犬]
忍者ブログ [PR]