「最も簡単な逆アセンブル(構造体) - あしのあしあと」の続き。今回は、ヒープ領域を使ってみる。ただ使ってみるだけ。
いつものごとく、すぐに忘れて去ってしまうので、最低限、記録しておく。
#include <stdio.h> #include <stdlib.h> int main(void) { int *a; int na =4; a = calloc(na, sizeof(int)); if (a == NULL) { ; return 1; } else { a[0] = 8; a[1] = 1; a[2] = 0; a[3] = 2; free(a); return 0; } }
逆アセンブルしたら、次のようになった。
今回から、セキュリティチェックを無効(/GS-)にした。てか、設定できたのね。。これからはシンプルにいこう。
細かいところで、よくわからない箇所があるが、おおむね予想通りの結果に。
CALL の先まで読み解こうとしたが、ムリだった。なので、きちんと読むコードは、この 17 行だけにする。とりあえずね。
このときのメモリの様子は、次のようになっていた。
いくつかの疑問は残るものの、いったん、これでよしとしとする。先へ進もう。