IDAPythonでどのようにメモリアドレスオペランドの名前を変更しますか?


3

IDAPythonのメモリアドレス "名前"の名前を変更する必要があります。私はdword_805672のフォーマットされたものについて話しています。私はIDAPythonと名前を変更したい名前の周りに赤いボックスを配置した

enter image description here

:以下のスクリーンショットを参照してください。私はAPIのドキュメントを検索しました:idc.MakeName(ea,name)しかし、あなたが見ることができるように、これはdynamic_1dynamic_2などのラベルのスポットに名前を入れただけです。私は実際のオペランドの名前を変更したい。

4

idc.MakeNameが正しいapiコマンドである必要があります。私は、命令の実際のdwordにmake名をつける代わりに、idc.MakeName(0x123772cd, 'dynamic_3')のようなことをしたと仮定しています。

このような何かを代わりに行うべきである:

idc.MakeName(idc.GetOperandValue(0x123772cd, 0), 'dynamic_3')

この場合idc.GetOperandValueはゼロ番目のオペランド(すなわち0x123ef5e0)の値を返します。そのアドレスは 'dynamic_3'とラベル付けされ、IDAは変更を示すためにUIを更新する必要があります。

  0

である。それはそれだった、ありがとう。私は、この問題を解決するという点で、オペランド自体にそのような独自のアドレスがあることに気づいていませんでした。このようなAPIの細かい機能を学ぶ上でのヒントはありますか? 27 11月. 172017-11-27 05:16:34

  0

私は通常、idc/idaapy/idautilのpythonファイルを見て、何かが何か行われているかどうか調べています。そのほかに、https://リバースエンジニアリングのリソースもあります。 stackexchange.com/questions/11391/good-training-for-idapythonはかなり良いです。 28 11月. 172017-11-28 03:33:45