摘要: 从表层调用来看: 1. 名称/语法 一个是操作符,一个是调用函数(cdecl) int *v1 = new int;//无需指定内存块的大小 int *v2 = (int*)malloc(sizeof(int));//需显式指出内存块的大小 delete v1; free(v1); 2. 申请内存 阅读全文
posted @ 2023-02-03 23:17 修竹Kirakira 阅读(65) 评论(0) 推荐(0) 编辑
摘要: [3] 以逆向的角度来看循环语句——do、while、for的比较 1. do循环 ​ 先执行循环体,后比较判断 #include <stdio.h> int main(int argc, char* argv[]) { int sum = 0; int i = 0; do { sum += i; 阅读全文
posted @ 2023-02-03 02:17 修竹Kirakira 阅读(35) 评论(0) 推荐(0) 编辑
摘要: [2] 以逆向的角度来看流程控制语句——switch 1. switch分支数小于4 汇编标识: 00401021 mov [ebp-4], ecx 00401024 cmp dword ptr [ebp-4], 1 00401028 jz short loc_401038 ;如果n==1,跳转到c 阅读全文
posted @ 2023-02-03 02:10 修竹Kirakira 阅读(54) 评论(0) 推荐(0) 编辑
摘要: [1] 以逆向的角度来看流程控制语句——if 1. if语句(单分支) ​ if语句转换的条件跳转指令与if语句的判断结果是相反的, 因为C语言是根据代码行的位置决定编译后二进制代码地址高低的,即低行数对应低地址,高行数对应高地址 ​ 汇编标识: 00401003 cmp dword ptr [eb 阅读全文
posted @ 2023-02-03 02:06 修竹Kirakira 阅读(29) 评论(0) 推荐(0) 编辑