したがって、unsigned int
10進値のアドレスが格納されている変数があります。たとえばunsigned int var = 1232342
、変数のタイプは知らなくても、変数のサイズと格納されているアドレスを知っている場合は、値を取得します。としてbyte array
。たとえば、int var = 20
アドレスとバイトサイズを持つを持っているとしましょう。そのアドレスに移動してバイト配列を返すことができるようにしたいのですが、この場合は、構造体の変数とデータメンバーについて[00001100]
も同じです。char
少しの擬似コードは次のようになります。
for var.address until var.address = var.address + bytesize
do
byte_array = *var.address
var.address++
私はいくつかの問題に直面していますが、私はCに少し慣れていないので、unsignedintをアドレス/ポインターとして扱う方法がわかりません。次に、アドレスから実際のバイトを取得する方法がわかりません。アドレスを逆参照するたびに、取得するのは実際の値ですが、それは変数の型を知っている場合です。
少し背景: 実行中のプロセスにフックするオプションを提供するPinというツールに取り組んでおり、DWARFとELFの情報を使用しています。だから私はアクセスしようとしている仮想メモリ空間にアクセスできます