マホ C

と、勝手に呼んでみた。「魔法の C プログラミング演習書」。C 言語初心者の自分には、すごく面白い。よい意味で、懇切丁寧に説明されていない。なので、イヤでも手を動かさなければならない。魔法のCプログラミング演習書- 入門から実践まで -作者: 倉光君…

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

「最も簡単な逆アセンブル(構造体) - あしのあしあと」の続き。今回は、ヒープ領域を使ってみる。ただ使ってみるだけ。 いつものごとく、すぐに忘れて去ってしまうので、最低限、記録しておく。 #include <stdio.h> #include <stdlib.h> int main(void) { int *a; int na =4; </stdlib.h></stdio.h>…

最も簡単な逆アセンブル(構造体)

「最も簡単な逆アセンブル(ポインタ) - あしのあしあと」の続き。今回は(小さな)構造体を扱ってみる。 typedef struct { int price; int number; int tax; } payment; int totalAmount(payment *p) { return p->price * p->number + p->tax; } int main(…

最も簡単な逆アセンブル(ポインタ)

「最も簡単な逆アセンブル(ループ) - あしのあしあと」の続き。今回は、ポインタを使ってみる。どうなるのかは、容易に想像がつく。 int __cdecl plus(int *a, int *b) { return *a + *b; } int main(void) { int a = 0x07; int b = 0x0A; return plus(&a,…

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

「最も簡単な逆アセンブル(分岐) - あしのあしあと」の続き。今回は、ループを入れてみる。 a から b までを足し合わせる sum という関数*1で実験する。 int __cdecl sum(int a, int b) { /* TODO: 引数のチェック */ int sum = 0; int i; for (i = a; i <…

最も簡単な逆アセンブル(分岐)

「最も簡単な逆アセンブル - あしのあしあと」の続き。今回は、分岐を入れてみる。 int __cdecl gt(int a, int b) { if (a >= b) { return a; } else { return b; } } int main(void) { return gt(0x07, 0x0A); } 逆アセンブルして出力されたコードが次。今…

サイバーセキュリティモニタリング(ハニーポット編 2)

「サイバーセキュリティモニタリング(ハニーポット編 1) - あしのあしあと」の続き。3 章の章末問題【2】をやる。「ハニーポット編 2」とは言いながら、この問題は、難読化の解除の問題。まぁよい。まずは、サンプルをとってくる。 https://sites.google.c…