最も簡単な逆アセンブル(ヒープ)

最も簡単な逆アセンブル(構造体) - あしのあしあと」の続き。今回は、ヒープ領域を使ってみる。ただ使ってみるだけ。
いつものごとく、すぐに忘れて去ってしまうので、最低限、記録しておく。

#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 行だけにする。とりあえずね。
このときのメモリの様子は、次のようになっていた。


いくつかの疑問は残るものの、いったん、これでよしとしとする。先へ進もう。