スタック領域で例えばabcdefghと入力して記憶されるとき
リトルエンディアンなのでメモリのアドレスは小さいほうからhgfedcbaと記憶されると思っていました。
以下のようなプログラムで
C
1#include <stdio.h> 2#include <string.h> 3 4int main(void){ 5 char a[] = "password"; 6 char b[] = "passcode"; 7 char ab[10]; 8 scanf("%s", ab); 9 if(strcmp(a,b)==0) 10 printf("改ざんされました\n"); 11 else 12 printf("正常です\n"); 13 return 0; 14}
abcdefghijpasswordと入力すればバッファオーバーフローが起きると思います。
しかし、自分はリトルエンディアンなんだからabcdefghijdrowssapと入力しないとバッファオーバーフローはおこらないのではないかとおもいました。どこが間違っているのか教えてほしいです。
また、スタック領域に記憶するとき記憶された順番があたらしいほどメモリのアドレスがちいさく、順番が古いほどメモリのアドレスは大きいですという考え方(esp<=ebpということ)であっているでしょうか?
初心者で文章が得意ではないのでふかいにさせたらすいません。
回答お願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/16 13:10
2021/05/17 00:33
2021/05/18 03:19