我們已經拿AndroidNativeEmu模擬執行出了sign的值,但是這個值對不對,除了直接往服務器發送之後,最好是能和真機算出來的對比驗算下,這樣才好放心它有沒有做別的小動作。
算法還原的助手(壹) 先讓時間停下來 的文章裏面我們已經把聯手機簽名的結果固定下來了,所以在AndroidNativeEmu裏面我們也需要Hook gettimeofday和lrand48。
從IDA的分析中可以看到,調用gettimeofday函數的時候 tv 的指針在R5寄存器中,所以我們只需要在函數返回之後的 0x129C0 地址上斷下來,然後把R5地址所指向的內存值改成我們需要的定值就行了。
lrand48就比較簡單了,函數的返回值壹般都是存在R0寄存器裏,我們只需要在函數返回的時候,在 0x00012A72 和 0x00012A8C 把R0寫成我們需要的定值就行了。
好了,跑壹下,算出來的結果和聯手機簽名的結果壹致,收工
驗算是個好習慣
有問題加我wx: fenfei331