逆向笔记之C基础(二)
本文笔记均来自于对滴水逆向教程的学习,通过学习教程记录的笔记,个人所见所得。
内存图
数据类型与数据存储
C语言数据类型 | 汇编数据宽度 |
---|---|
char | byte |
short | word |
int | dword |
long | dword |
无符号跟有符号,在内存中存储的是一样的,根据使用的人来决定
默认有符号,类型转换–比较大小–数学运算要注意
有符号跟无符号,比较会改掉,jbe跟jle 低于等于,小于等于
宽字符,win底层都是用宽字符实现的
练习使用带w的函数
1 | // WChar.cpp : Defines the entry point for the console application. |
汇编中会将对象的基地址通过ecx传递,然后通过ecx+几来计算
代码原型,分别分析结构体中的Add跟普通的Add 以及结构体中的Sub跟普通的Sub的区别
1 | // Test.cpp : Defines the entry point for the console application. |
需要认真学的地方了,我多次学这个都放弃了,这次得认真学下去
1 | typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header |
大纲:
这些我都学过了,c语言基础相对较好,略过
1 | char**** a; |
结果就是砍掉一个*,在除以数据宽度就行
总结: