Ddigital-Forensics-Lab-1
实验目的
理解计算机是如何存储和处理数据的。
实验环境
安装有kali linux的虚拟机、可以编译C程序。
实验步骤
Task1
1、输入touch Task1.c
指令在桌面创造一个空的C语言文件。
2、输入gedit Task1.c
指令使用gedit编辑器打开Task1.c文件。
3、输入gcc Task1.c -o Task1.out
指令编译Task1.c文件,生成Task1.out文件。
4、输入./Task1.out
指令运行Task1.out文件。
5、将显示结果记录到记录表1中。
变量类型 | 参数类型 | 字节数 |
---|---|---|
student1.id | 100 | 4 |
student1.province | 101 | 3 |
student1.age | 102 | 4 |
结构体Student | 104 | 12 |
Task2
1、输入gcc -g Task1.c -o Task1
指令编译Task1.c文件,生成Task1文件。
2、输入gdb Task1
指令启动gdb。
3、输入break 15
指令在第15行设置断点。
4、输入r
指令运行Task1,程序会在第15行停下来。
5、输入x/4bt &student1.id
指令查看student1.id的内存情况;输入x/4bt &student1.province
指令查看student1.province的内存情况;输入x/4bt &student1.age
指令查看student1.age的内存情况;输入x/4bt &student1
指令查看student1的内存情况。
6、将显示结果记录到记录表1中。
变量 | 十六进制值的表示 |
---|---|
student1.id | 0x7fffffffddf4: 10001000 01101111 11111011 00000101 |
student1.province | 0x7fffffffddfc: 00010010 00000000 000000000 00000000 |
student1.age | 0x7fffffffddfc: 00010010 00000000 000000000 00000000 |
结构体Student | 0x7fffffffddf4: 10001000 01101111 11111011 00000101 |
Task3
前面步骤都和Task2一致。
1、输入break 10
指令在第10行设置断点。
2、输入r
指令运行Task1,程序会在第10行停下来。
3、输入x/1bx &digits[0]
指令查看digits[0]的内容;输入x/1bx &digits[1]
指令查看digits[1]的内容;输入x/1bx &digits[2]
指令查看digits[2]的内容;输入x/1bx &digits[3]
指令查看digits[3]的内容。
4、将显示结果记录到记录表1中。
数字数组项 | 第一项 | 第二项 | 第三项 | 第四项 |
---|---|---|---|---|
内存地址 | 0x7fffffffddf4 | 0x7fffffffddf5 | 0x7fffffffddf6 | 0x7fffffffddf7 |
存储的值 | 0x12 | 0x34 | 0x56 | 0x78 |