C语言正向05_作业练习
do while是所有循环中性能最好的 速度最快 while for(表达式1;表达式2;表达式3) { //第一次执行 1 2 4 3 //第二次执行 2 4 3 } 交换俩个变量 1.可以用容器 2.可以相加 再减去另一个值得到对方 思考01 基于缓冲区溢出的Hel
C语言05_正向基础
1、变量的声明?什么是赋值? //全局变量的声明int a,b,c; //全局变量的声明void Fun(){a = 10; //全局变量的赋值b = 20;c = a;} void Fun(){int a,b,c; //局部变量的声明a = 10; //局部变量的赋值b = 20;c
C语言04_IF语句逆向分析下
IF BEGIN:mov eax,dword ptr [ebp+8]0040103B cmp eax,dword ptr [ebp+0Ch]0040103E jle ifreverse+2Ah (0040104a)......IF END:jmp ENDELSE BEGIN:......ELSE E
C语言04_IF语句逆向分析上
全局变量和局部变量 全局变量在exe运行的时候就已经存在 ,其他函数都可以修改 生命周期:从程序启动 → 程序结束,一直存在。 存储位置:存放在全局数据区,不是栈。 默认初始值:如果不赋值,默认等于 0。 局部变量 只有当函数调用时才会分配空间,且一定要有初值.
C语言03_数据类型_if语句
ASCII码表 标准ASCII码表 0-127标准 ASCII 最高位永远是 0,8 位二进制最高位为 0,这就是为什么一个 char (8bit) 足够存放全部标准 ASCII。 GB2312 简体中文 作业 拟写一个函数,如果是英文字符就查表标准版ASCII
C语言02_数据类型
裸函数 C源码(.c) →【预处理】→【编译】→【汇编】→【链接】→可执行程序 预处理 (cpp):展开头文件、宏替换、删掉注释,生成 .i 文件(还是 C 语言文本) 编译 (cc1):C → 汇编 (.s) 汇编 (as):汇编 (.s
C语言01_后半节
call xxx ->jmp xxx -> push ebp... 通过vs studio 查看汇编代码 练习1 编写一个空函数,没参数也没有返回值,并分析函数的反汇编. 这里在恢复环境之后,通过add手动恢复堆栈,之后检查堆栈,最后进行保底的mov esp,ebp 以及re
堆栈01+02
堆栈图1 练习文件01 堆栈图2 函数:计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时还带有一入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算
滴水逆向三期-JCC跳转-修改eip
Jmp修改Eip的指令 如果跳转的地址到开始跳转的地址 字节小于128个字节 则要加一个short jmp(无条件跳转)唯一的作用就是修改eip 唯一影响的就是eip的值 jmp 寄存器/立即数 Call指令 call指令执行之后压入(堆栈)Call的下一条地址 ret指令 相
滴水逆向三期-标志寄存器
push 16位寄存器 栈顶+2 push 8位 16位 32位立即数 栈顶+4 push 16位内存数据 栈顶+2 push 32位内存数据 栈顶+4 Pushad 一次性把 8 个 32 位通用寄存器全部压入栈,用来保存现场。 popad 一次性把 8 个 32 位通用寄存器全部弹
最新评论