自学
GUSNW
这个作者很懒,什么都没留下…
展开
-
进制02&数据宽度_逻辑计算
滴水逆向三期进制022+3=1 成立问题:进制类型的自定义元素进制的本质就是(查数字)!(重点)1进制定义:由一个符号组成,该符号为1,逢1进1。要忘记之前所有的规矩,里面符号是什么都无所谓跟1没有关系,在进制的世界里:忘记2*3=6,忘记5+5=10,因为这些都不是进制的本质。1进制 0-100111111111111111…符号定义自定义(重点)例如:3进制定义0 1 ...原创 2019-09-09 21:02:46 · 319 阅读 · 0 评论 -
C语言
滴水逆向三期—C语言VC6开发环境正常VC 6.0 进入新建立项目的界面,进去用简单来说的win32的来说,后面的Location项目存放位置,记得需要进行自己定义化一个需求的位置,Name就不用说了创建一个最简单的一个hello world来说看到源文件的cpp的这个可以知道,cpp是C++的后缀,C++是向下兼容的,所以C++里面去搞C语言的语法是没有问题的打开后可以看到上面...原创 2019-10-08 21:47:28 · 270 阅读 · 0 评论 -
堆栈图(2)
滴水逆向三期——堆栈图(2)函数:计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理,所谓出口,就是指函数的计算结果,也称为返回值,在计算机求得之后,由此口带回给调用它的程序汇编中的函数:如果说中间随便选取一段来说是不是函数?不是...原创 2019-10-03 21:08:47 · 531 阅读 · 0 评论 -
堆栈图
滴水逆向三期—堆栈图什么叫逆向?比如说有一块内存,内存里面存储的就是数据,那我们所谓的逆向就是来分析这个数据到底是什么堆栈图:比如给个地址0x401168打开DTDebug:ctrl+g 将地址打上后 ok:看到定位到了这个位置,从这个位置开始画堆栈图,不能直接按F8因为cpu还没有走到这里,我们在这个位置先按F2(让cpu走到这个位置停下来),先让程序走到这里,然后就可以开始画堆...原创 2019-10-01 16:28:59 · 3666 阅读 · 0 评论 -
JCC
滴水逆向三期JCCCMP指令:指令格式:CMP R/M,R/M/IMM 不能同时为内存CMP指令是用来比较两个值的可以看到EAX的值变成了0 结果都是0的话ZF变成了0我们可以看到CMP的时候,EAX的值没有变而SUB的时候EAX值变了,再看就会发现CMP的时候只改变标志寄存器的值,以后决定程序怎么走的时候,经常会涉及到比较两个数,最简单的方法就是减一下,可是你还不能把原来的数去掉,...原创 2019-09-21 22:21:33 · 228 阅读 · 0 评论 -
修改EIP
滴水逆向三期-JCC断点:他可以让cpu一条指令一条指令执行EIP寄存器,里面存储了一个地址,这个地址决定了我们cpu下一行要执行的代码是什么,如果想CPU的行为,那我们要修改EIP这个寄存器mov tip,0x12345678 虽然说这个不可以 但是jmp可以 jmp 0x4183FD跳转的位置如果离这个相差128个字节 那就会加了个SHORT 如果超过就不会有SHORT什么是JMP...原创 2019-09-19 22:14:00 · 853 阅读 · 0 评论 -
标志寄存器(2)
滴水逆向三期-标志寄存器&JCC标志寄存器ADC指令,带进位加法原创 2019-09-18 22:12:00 · 137 阅读 · 0 评论 -
标志寄存器
滴水逆向三期-标志寄存器1.PE结构2.下断点3.WIN32 API94.什么是函数调用5.熟悉堆栈——画过堆栈图6.call JCC 标志寄存器断点小理解:程序跑到MessageBox的时候就停下来一个函数刚开始执行的时候,这个栈顶存储的就是调用这个函数时候函数的返回地址JE根本不管你们上面是什么,他只看标志寄存器,标志寄存器符合他的条件了就跳,不符合了就不跳JE他如果发现这...原创 2019-09-17 20:59:57 · 17188 阅读 · 0 评论 -
堆栈补充
滴水逆向三期-堆栈补充堆栈:(今天就说一点,然后下载od练习去了!堆栈很重要-。-!!!,还有复习!)push 是减4位(但是不是肯定减4)push 后面是个立即数的话可以push al正常后面的容器都是32位的,现在的al是8位的寄存器,试一下后发现不可以点发现push al 不可以push8位,push ax(16位的寄存器)push ax的发现可以 发现了一个问题:push...原创 2019-09-16 19:29:50 · 308 阅读 · 0 评论 -
堆栈
滴水逆向三期-堆栈内存和寄存器都是用来存储数据的,假设我们想临时存个数据,我们用,然后用完就不要了,如果存储的东西有点多的话,那么寄存器肯定是装不下的,解决方案就是用内存取存储这些数据,能够去记录存储多少数据,然后还能快速找到某个数据,假设一共有50个数据,我现在想用第X个,怎么才能快速的找到?如图:假设寄存器有个BASE底部 TOP顶部,内存连续存储,地址大小看自己设计,如果往上存储值的...原创 2019-09-15 22:10:54 · 245 阅读 · 0 评论 -
内存地址
滴水逆向三期:内存地址复习:1.32位 16位 8位寄存器每个容器是有宽度的,宽度决定装多少东西,在计算机世界里有数据宽度EAX ECX EDX EBX ESP EBP ESI EDIAX CX DX BX SP BP SI DIAL CL DL BL AH CH DH BH2,寄存器结构EAX-AX-AL他们三个是包含的关系 上个文章有图这些寄存器并不是独立存在的 地位高位 EA...原创 2019-09-14 21:57:20 · 2459 阅读 · 0 评论 -
通用寄存器&内存读写
滴水逆向三期寄存器&内存读写16位通用寄存器,8位通用寄存器因为EAX这些是32位的寄存器,所以是0~31,而AX这个寄存器本身就在EAX这个寄存器里面,同样CX也在ECX里面,可以这样理解,EAX的前一半就是AX寄存器是随着硬件的发展一步一步走过来的,今天看到的32位寄存器,以后还会看到128位寄存器,所以硬件的发展为了兼容,以后的寄存器看到的这个刀分割的位置会越来越多,往前推...原创 2019-09-12 00:44:14 · 1324 阅读 · 0 评论 -
C语言(数据类型)
滴水逆向三期—数据类型比如说这个代码,是一段C语言的代码,但是他执行的时候并不是这样的,因为CPU不认识,CPU只认识0 1二进制,所以这个代码在执行的时候一定变成了一堆0和1,变成0和1中间有两个过程,一个是编译,一个是连接C语言函数结构:返回值类型 函数名(参数类型,参数名,参数类型,参数名){内容}如果说没有返回值内容,我们可以把返回值类型定义成void,如果有的话,就必须要有...原创 2019-10-09 19:39:14 · 273 阅读 · 0 评论