🌓

滴水逆向 03-06 指针8

指针的本质是什么?指针指向什么跟它本身是什么没有任何关系,比如结构体指针并不是非得指向一个结构体,数组指针也不是非得指向指定长度或者类型的数组,指针就是指针,我们想让它指啥就指啥,指针只是一个用来操作数据的工具。 指针的本质海哥概括为以下六条: 1、它是一个类型,是前面带 * 的,带几个都行 2、它的宽度都是 4 3、它可以做 ++\-- 的运算,到底加几减...

阅读全文

滴水逆向 03-04 指针7

指向指针的指针:多级指针 *() 与 [] 的互换表示: 以下为方便课堂展示的写法,在实际的开发中,不能直接光定义指针而不赋值(比如只写 char* p1),这样如果后面要使用* p1,由于 p1 没有赋值里面是垃圾数据,用这个数当作地址去取此地址中的值,这个地址可能不是一个正常的地址或者是个不让访问的地址,那么就会产生报错提醒。 了解 * 的反汇编...

阅读全文

滴水逆向 03-03 指针6

指针数组 指针数组就是元素类型为指针的数组,即带 * 的类型,因此指针数组一个元素占 4 字节 1234567char* arr[5] = {0}; //占4*5=20字节 arr[0] = (char*)1; //int强制类型转换成char*arr[1] = (char*)2; arr[2] = (char*)3; arr[...

阅读全文

随笔:初来乍到——来都来了

回所也已经半个月了,总算布置好了自己的宿舍,买了个显示器哄自己上学,每天上班都有盼头了 从博客的发布日期也能看出来,七月底到八月底长达一个月的空期,是临近开学前的一个月。这一个月是最难熬的,对家很是不舍。盘算着下次回家就只能是过年的时候,每天都缠着自家的猫使劲亲,饮食上也对他溺爱了起来,之前一直严格控制的冻干开始肆无忌惮地喂,也是成功换来了少爷的一丝偏爱。...

阅读全文

滴水逆向 03-02 指针5

何意味呀,b站视频不全去官网花1块钱买了课程,结果播放不了,无所谓了,根据课件和别的师傅的博客也不是不能看 字符数组与字符串 字符串: 12char name[] = "ABCDE"; //定义时可以省略数组大小,编译器会自己补上0x00char* p = "ABCDE"; //将常量区中存储ABCDE字符串的首地...

阅读全文

滴水逆向 02-28 指针4

这节没讲啥,就是演示了一下一字节一字节地遍历、两字节两字节地、四字节四字节地,与上节课的作业有些不同 先看一下本节课的举例 12345678910111213141516171819202122232425262728293031323334353637383940414243#include "stdafx.h"char data[10...

阅读全文

滴水逆向 02-28 指针3

CE 的使用这里就不总结了,需要的时候直接搜要全活得多 课后作业 模拟实现 CE 的数据搜索功能: 这一堆数据中存储了角色的血值信息,假设血值的类型为 int 类型,值为 100(10进制),请列出所有可能的值以及该值对应的地址。 123456789100x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x07,0x09, ...

阅读全文

滴水逆向 02-27 指针2

类型转换 并不是所有的数据类型之间都可以相互转换,比如结构体与基本类型 带 * 的类型可以强制转,比如: 123456void Test() { char* x; int* y; x = (char*)10; y = (int*)x;} &符号的使用 & 是地址符,类型是其后面的类型加一个 “*”,任何变量都可以使...

阅读全文

滴水逆向 02-26 指针1

先抛去指针是存地址的这个概念,看看这种类型最本质的特点 “带*类型” 的特征探测 宽度 对于一个变量来说,最重要的一个特征就是数据的宽度,如何探测某个类型的变量的宽度? 对于平时用的类型: 123456789void Test() { char x; short y; int z; x = 1; y = 2; z = 3;...

阅读全文

滴水逆向 02-06 switch语句反汇编

之前的笔记都是边听边写的,这次边听边玩塞尔达呢。。。笔记都是课后整理的,可能会有遗落,会尽力回想 switch语句 switch 语句是 if 语句的简写 switch 要求: case 后面必须是常量表达式 case 后面常量表达式的值不能一样 switch 后面表达式必须为整数 switch语句的反汇编 常见的有四种: 分支比较少:if…else...

阅读全文