摘要:一、switch...case...的格式 switch要求: 1、case后面必须是常量表达式 2、case后常量表达式的值不能一样 3、switch后面表达式必须为整数,不能为浮点数 4、case后的语句可以有多个且不用花括号括起来; 5、case和default子句的先后顺序可以先后变动,de
阅读全文
随笔分类 - 加密与解密
1
进制、汇编、C语言逆向、PE结构
摘要:一、switch...case...的格式 switch要求: 1、case后面必须是常量表达式 2、case后常量表达式的值不能一样 3、switch后面表达式必须为整数,不能为浮点数 4、case后的语句可以有多个且不用花括号括起来; 5、case和default子句的先后顺序可以先后变动,de
阅读全文
摘要:if语句的反汇编判断 if语句的反汇编判断基本是围绕JCC指令的,如果想要有深刻的理解,可以自行练习JCC指令 执行各类影响标志位的指令 jxx xxxx 1、案例一 mov eax,dword ptr [ebp+8] 分析:cmp指令 影响标志位 cmp eax,dword ptr [ebp+0C
阅读全文
摘要:如何判断函数有几个参数,已经分别是什么: 一般情况: 步骤一:观察调用处的代码 push 3 push 2 push 1 call 0040100f 步骤二:找到平衡堆栈的代码继续论证 call 0040100f add esp,0Ch 或者函数内部 ret 4/8/0xC/0x10 最后,两者一综
阅读全文
摘要:全局变量的特点 1、全局变量在程序编译完成后地址就已经确定下来了,只要程序启动,全局变量就已经存在了,启动后里面是否有值取决于声明时是否给定了初始值,如果没有,默认为0 2、全局变量的值可以被所有函数所修改,里面存储的是最后一次修改的值. 3、全局变量所占内存会一直存在,知道整个进程结束. 4、全局
阅读全文
摘要:问题的抛出: 版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-10-03,00:56:39。作者By 溺心与沉浮 博客园 为什么两个浮点数相减时,有时出乎我们意料之外的值呢?例如3.1415927 - 3.1415926 = 0.0000002?(例子我随便举得,大家不要在乎
阅读全文
摘要:三种函数调用约定 版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-10-02,22:48:24。作者By 溺心与沉浮 博客园 综述 函数的调用约定就是在函数调用的时候的一些规则,包括: 函数参数的压栈顺序, 各类调用约定小结 主要总结下__cdecl,__stdcall,__
阅读全文
摘要:概述 版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-09-24 00:36。作者By 溺心与沉浮 博客园 _declspec(naked)修饰可以生成一个“裸”函数, 使用后C编译器将生成不含函数框架的纯汇编代码,裸函数中什么都没有,所以也不能使用局部变量,只能全部用内嵌汇
阅读全文
摘要:版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-09-21,00:21:15。作者By 溺心与沉浮 博客园 比较偷懒,还是不适应博客园写博客的风格,画图是件很麻烦的事情,然后还需要一步步的去描述明白,这个EXCEL就很适合 汇编学习告一段落了,分心容易,收心难,哎! 堆栈图练
阅读全文
摘要:堆栈图,主要目的就是练习一下JCC指令的熟练度,供参考 版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-09-10,23:41:41。作者By 溺心与沉浮 博客园 堆栈完整代码: 核心功能块,真正代码块 核心功能块: 版权声明:本文为博主原创文章,转载请附上原文出处链接和本声
阅读全文
摘要:堆栈图是个有意思的东西,这些东西都是前面博文中重点描述的指令,这里跨过函数讲解,直接看汇编代码,每一步骤都在图中标记,这里我也不知道怎么用语言去描述,,,,前面练习那么多汇编其实就是为了这个,看图识文吧,,,,
阅读全文
摘要:版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-09-06,21:59:16。作者By 溺心与沉浮 博客园 JCC指令决定它跳不跳转跟别的没关系,只跟EFLAG标志寄存器有关系!!! 1、JE, JZ 结果为零则跳转(相等时跳转) ZF=1 2、JNE, JNZ 结果不为零则
阅读全文
摘要:一、CMP指令 这一块呢,我不想上图了,汇编的博文我已经快要让我写吐了,其实也有好多我没有补充进来,比如进制,LEA指令,数据宽度,有符号,无符号的区分等等,但我真的要吐了,这些玩意我已经不是第一次写了,也不是第一次看了,以前我是习惯于在EXCEL上写,这一次由于是我对汇编遗忘的有点狠,想从头复习一
阅读全文
摘要:简单介绍了,JMP指令按市面上的意思来说是跳转到指定地址,但我这里不这么说,JMP, CALL, RET三个指令均为修改EIP值的指令,EAX, ECX, EBX, EDX, ESP, EBP, ESI, EDI,这8个寄存器的值均可以用mov指令来修改里面的值,EIP行不行呢?我们实际测试一下。
阅读全文
摘要:由于写EFLAGE博文中,有关C位,P位,O位,我觉得我没有描述清楚,而且C位也没有演示过借位情况,P位中也有些坑没讲,我还是决定再补一篇,争取把每个标志位描述清楚,不光是让看我文章的人能看的明白,也是自己对知识的巩固加深,虽然没什么技术性的东西,但我一直觉得,再牛的花招它都是由基础构建而出的,相信
阅读全文
摘要:版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。23:28:13,23:28:19作者By 溺心与沉浮 博客园 STOS指令:讲Al/AX/EAX的值存储到[EDI]指定的内存单元 STOS BYTE PTR ES:[EDI] 简写为STOSB STOS WORD PTR ES:[ED
阅读全文
摘要:版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-25,23:52:49作者By 溺心与沉浮 博客园 介绍完这些基础指令,后面就讲到汇编JCC指令了,我觉得介绍指令不应该只是简简单单的就介绍怎么用,汇编它其实也是高级语言,相信你读完我前面的文章就可以看到,我介绍PUSH、
阅读全文
摘要:版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-24,00:40:12作者By 溺心与沉浮 博客园 PUSHAD与POPAD 这两条指令其实就是讲EAX,ECX,EDX,EBX,ESI,EDI,ESP,EBP这8个寄存器的值分别入栈与出栈 为了方便演示,我们先把OD中红
阅读全文
摘要:版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-24,00:40:12作者By 溺心与沉浮 博客园 1、BASE,TOP是2个32位的通用寄存器,里面存储的是内存单元编号(内存地址). 2、BASE里面存储了一个地址,记录的起始地址. 3、TOP里面也存储了一个地址,记
阅读全文
摘要:版权声明:本文为博主原创文章,2019-08-23,22:21:42转载请附上原文出处链接和本声明。作者By 溺心与沉浮 博客园 1、写汇编指令只影响CF位的值(不能影响其他标志位 MOV AX,0xFF00 ADD AX,0x0101 2、写汇编指令只影响PF位的值(不能影响其他标志位) MOV
阅读全文
摘要:这篇文章不是从0开始的,前面还有一些汇编基础指令以及进制,我都没写,时间问题,还是今天空闲,我才想补一下博文,后面我陆续会把前面知识点渐渐补上。我不会重0基础讲起,中间会以、汇编、C、C++交叉的形式讲解,实战或者学习中才能更好的提升自己! EFLAGS寄存器 这些标记出来的标志位十分重要,如果对于
阅读全文
1
|