google code prettify

2014年6月29日 星期日

【BlueStacks】修改 MAC 位址

過去 BlueStacks 的 MAC address 由 GUID 控制。 在新版中, 則由網卡驅動直接指定。 以 0.8.9.3088 為例, MAC 固定為 02:00:00:62:73:74, MAC 修改能力被關閉, ifconfig eth0 hw ether 無效。

深入追蹤, 預設安裝路徑下找到的 C:\ProgramData\BlueStacks\Android\initrd.img (INITial RamDisk) 乃初始化用的 ramdisk, cpio 封裝, gzip 壓縮, 使用 7zip 解開觀察, 可以找到網卡驅動程式 bstmods/bstnet.ko。

反組譯分析 bstnet.ko, 發現以下令人玩味的程式碼:

 區段與位址           組合語言                     機器碼
.init.text:08000359  mov  byte ptr [eax  ], 2    C6 00 02
.init.text:0800035C  mov  byte ptr [eax+1], 0    C6 40 01 00
.init.text:08000360  mov  byte ptr [eax+2], 0    C6 40 02 00
.init.text:08000364  mov  byte ptr [eax+3], 62h  C6 40 03 62
.init.text:08000368  mov  byte ptr [eax+4], 73h  C6 40 04 73
.init.text:0800036C  mov  byte ptr [eax+5], 74h  C6 40 05 74

聰明看倌如您, 是否發現蛛絲螞跡? 似曾相似的 2 0 0 62h 73h 74h 與前述 02:00:00:62:73:74 完全一致, 答案呼之欲出。

initrd.img 解壓後的 cpio 封裝, 可直接進行機器碼搜尋, 修改後壓回 gzip 格式, 即可為 BlueStacks 使用。 進入系統檢查 MAC 已被修改無誤, 任務達成。

沒有留言:

張貼留言