去 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 已被修改無誤, 任務達成。
转载自:http://xybit-hack.blogspot.com/2014/06/bluestacks-mac-address.html