2

iOS 6.0.1 で gdb (radae.org のリリース 1708) を使用して不明なアプリをデバッグしています。何らかの理由で、「call (char*)malloc(size)」を介して機能するメモリを割り当てたいと考えています。私はすでにそのような呼び出しを使用して多くのサンプルを閲覧しました (たとえばhere ) が、これらの呼び出しはすべて失敗します。

(gdb) call (char*)malloc(4)

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x00000004
0x37af2060 in strcpy ()
The program being debugged was signaled while in a function called from GDB.
GDB has restored the context to what it was before the call.
To change this behavior use "set unwindonsignal off"
Evaluation of the expression containing the function (malloc) will be abandoned.

または (gdb) print (float) fabs (3.0)

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x40080000
0x37b18040 in T_CString_int64ToString ()
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on"
Evaluation of the expression containing the function (T_CString_int64ToString) will be abandoned.

パラメータ「サイズ」でmallocアクセスメモリが発生するのはなぜですか? これを修正する方法はありますか?それとも、gdb のバージョンは iOS 6.X に対応していないのでしょうか? 実際の呼び出しは機能しているように見えますが、内部関数が原因で失敗します (T_CString_int64ToString)。

4

1 に答える 1

0

GDB がマップされていないメモリ領域 (malloc 呼び出しによって返されるアドレス) にアクセスしようとしているようです。既知のアプリケーション/プロセスにアタッチして、malloc 呼び出しが機能するかどうかを確認してください。

リリース 1821 を試しましたか? CrackLords Repositoryから入手できます。cydiaに追加してこのバージョンを取得するか、これらの手順に従って自分で署名することもできますiOS >= 4.3 で動作する GNU Debugger

于 2013-01-08T01:11:21.580 に答える