ICode9

精准搜索请尝试: 精确搜索
  • 39 C 语言与汇编语言混合编程2021-04-01 10:03:20

    参考 https://blog.51cto.com/13475106/category6.html及狄泰软件相关课程   从下图的编译过程就可以很明显的看出可执行文件的生成过程       编译小知识1.源文件编译后得到目标文件-二进制文件2.不同语言可编译相同格式的目标文件

  • 汇编------双向循环链表2021-03-30 12:32:08

    .section .rodata .LC0:.string "%d " //struct node //{ // int value; // struct node *pre; // struct node *next; //} // // //struct list //{ // struct node nod; // int count; //} .section .text //void init(struct list *ls); init: pushl %ebp

  • ucore lab12021-03-26 23:59:19

    练习1:理解通过make生成执行文件的过程 问题一:操作系统镜像文件ucore.img是如何一步一步生成的?(需要比较详细地解释Makefile中每一条相关命令和命令参数的含义,以及说明命令导致的结果) 在Makefile中生成ucore.img的代码如下: # create ucore.img UCOREIMG := $(call totarget,u

  • 汇编函数阅读笔记2021-03-05 23:04:42

    memset 原型 void memset(void* p_dst, char ch, int size) 这是memset的函数原型,在C语言中使用这个函数时,需按这个原型传参。 memset的功能是:用size个char类型的数据填充初始内存地址是p_dst的这片内存空间。 代码 global memset memset: push ebp mov ebp, esp push esi

  • 黑白逆向编程课程笔记 18.局部&全局变量&参数详解2021-02-27 13:05:13

      18.局部&全局变量&参数详解 1.call 头部特征:     局部变量特征如: [ebp-4] 参数特征如:[ebp+8] 全局变量特征如:[内存地址] call返回地址特征如:[ebp+4]

  • 2021-02-242021-02-24 20:30:05

    函数的栈和栈帧? 1.调用该函数之前,参数入栈,进入函数第一行代码,返回值入栈一次 2.以codec的函数约定,参数入栈是反顺序的 main: ebp 00000000   esp 0018FFF0   1.push xxx esp=0018ffec   2.在主栈中建立栈帧 push ebp mov ebp,esp 建立栈帧就是在主函数中重新确定一块空间作为

  • MIT OS lab1实验报告2021-02-18 21:36:15

    mit os lab1 物理地址空间 依据实验文档如下图 Exercise 1 ... Exercise 2 Exercise 2. Use GDB's si (Step Instruction) command to trace into the ROM BIOS for a few more instructions, and try to guess what it might be doing. You might want to look at Phil Storrs I

  • at&t汇编------循环2021-02-13 19:32:08

    .section .rodata .LC0:.string "%d\n" .section .text print_7: pushl %ebp movl %esp,%ebp pushl %ebx movl $1,%ebx jmp .L1 .L2: movl %ebx,%eax cltd movl $7,%ecx idivl %ecx cmpl $0,%edx jne

  • 2021-02-112021-02-11 22:03:31

    水仙花数 例题:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153等于1的三次方+5的三次方+3的三次方。 #include<stdio.h> #include<stdlib.h> int main() { int i, j, k, n; printf("打印出的所有水

  • 自制编译器 青木峰郎 笔记 Ch15 编译表达式和语句2021-02-07 17:04:20

    15.1 确认编译结果 cbc --print-asm -fverbose-asm xx.cb可以看到汇编代码。gcc -S -o - xx.c也可以。 root@cf43f429204e:/# cbc --print-asm -fverbose-asm if_test.cb .file "if_test.cb" .section .rodata .LC0: .string "OK" .LC1: .string "NO" .LC2: .

  • leave, ret, enter指令的等效2021-02-07 11:04:15

    leave, ret, enter指令可以看做复合指令 ; push eip 进入前会压栈返回地址 Sub PROC enter 8,0 . . . leave ret Sub ENDP 等效 ; push eip 进入前会压栈返回地址 Sub PROC push ebp mov ebp, esp sub esp, 8 ; enter . .

  • 逆向工程-if-else语句逆向分析2021-02-04 02:04:16

    逆向工程-if-else语句逆向分析 第一步 生成代码 源cpp代码 #include<Windows.h>#include<iostream>int __stdcall test(int a, int b, int c){ int e = 0; if (a > b) { e = a; } else { e = c; } return e;}​int main(){ printf("b

  • printf(“%d,%d\n“,i--,i++)2021-01-24 12:31:51

    // sample.cpp #include<iostream> using namespace std; int main(){ int i=1; printf("Case 1: %d,%d\n",i--,i++); i=1; printf("Case 2: %d,%d\n", i++, ++i); i=1; printf("Case 3: %d,%d,%d\n", i++, ++i, ++i );

  • EAX、ESP、EBP等寄存器的作用2021-01-20 15:31:18

    参考一: 一般寄存器:AX、BX、CX、DX AX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器 索引暂存器:SI、DI SI:来源索引暂存器,DI:目的索引暂存器 堆叠、基底暂存器:SP、BP SP:堆叠指标暂存器,BP:基底指标暂存器 EAX、ECX、EDX、EBX:為ax,bx,cx,dx的延伸,各為32位元 ESI、ED

  • LLVM生成中间码以及汇编代码2021-01-17 20:04:05

    https://www.cnblogs.com/lilylee/p/4053926.html 首先先贴一个LLVM安装的教程: 原文地址:   http://thread.gmane.org/gmane.comp.compilers.llvm.klee/923 打不开就用:   http://blog.csdn.net/happygogf/article/details/17528059 这个文章整合了klee和llvm的安装,由于这两个软

  • 极客巅峰2020 virus2021-01-16 18:57:56

    迷宫题 题目逻辑: 1.以4个 - 分割了5段内容。xxx-xxx-xxx-xxx-xxx  第一段为进入迷宫的顺序,之后的段为迷宫的行走路线 2.根据题目的内容,可以判断出进入迷宫的顺序。直接确定顺序和flag 题目详情如下 int __cdecl main(int argc, const char **argv, const char **envp) { in

  • 计算机系统基础实验二2021-01-12 22:05:55

        学生实验报告   实验课程名称:计算机系统基础 实验项目名称:BinaryBomb实验 实验类型: 验证性  指导教师:   实验日期:   2020 年 11 月 29 日 学生姓名   学号 07 班级   专业名称 软件工程 实验组 其他成员 无 实验地点   实验

  • c函数调用原理理解2021-01-11 09:30:25

    c函数调用原理的理解: 1.关于栈         首先必须明确一点也是非常重要的一点,栈是向下生长的,所谓向下生长是指从内存高地址->低地址的路径延伸,那么就很明显了,栈有栈底和栈顶,那么栈顶的地址要比栈底低。对x86体系的CPU而言,其中 ---> 寄存器ebp(base pointer )可称为“帧指针

  • C语言中的数组、字符串、指针反汇编学习笔记2021-01-08 05:01:37

    数组   数组是C语言中的一个常见的数据结构,那么数组在汇编语言中是如何表示的呢?   一个简单的一维数组 #include <stdio.h> int main(void) { int array[10] = { 1,2,3,4,5,6,7,8,9,10 }; return 0; }   反汇编如下   5: int array[10] = { 1,2,3,4,5,6,7,8,9,10 }; 00A

  • C语言的main函数反汇编笔记2021-01-06 03:02:08

    阅读本文需要一点汇编语言的基础知识     #include <stdio.h> int main(void) { return 0; }   将这段C语言代码在VS2019下进行反汇编后:   #include <stdio.h> int main(void) { 008B4370 push ebp 008B4371 mov ebp,esp 008B4373 sub esp

  • 你了解函数调用过程吗?2021-01-03 09:31:33

    函数调用是编程语言都有的概念,也许你听说过函数调用栈,但是大家都知道函数调用是如何完成的吗?我们为什么要了解这个过程: 对于程序运行机制中的数据结构和实现的了解,对自己开发程序有着启发作用碰到一些疑难杂症的时候,比如函数栈溢出了或者函数栈破坏了,如何从蛛丝马迹中寻找问

  • xxxx (一):PC端多开原理和破解方法2020-12-27 10:34:12

    防止多开的方法又很多种,比如:   遍历进程,如果目标进程已经存在就认为正在运行,现在的进程退出   互斥体,也就是mutex,本质是生成一个全局变量。如果检测到这个变量已经存在,现在进程就退出    xxxx PC端用的是mutex。可以用OD打开xxxx的exe,然后CTRL+G查找CreateMutex函数,能找到两

  • 微信外挂(一):PC端多开2020-12-26 17:01:31

       防止多开的方法又很多种,比如:   遍历进程,如果目标进程已经存在就认为正在运行,现在的进程退出   互斥体,也就是mutex,本质是生成一个全局变量。如果检测到这个变量已经存在,现在进程就退出    微信PC端用的是mutex。可以用OD打开微信的exe,然后CTRL+G查找CreateMutex函数,能找

  • 极简版《计算机原理》2020-12-25 22:34:15

    这两周读了日本作者矢泽久雄写的《程序是怎么跑起来的》,解开了我这个作为通信专业的软件从业者的很多困惑,为了避免日后遗忘,将一些看了这本书之后的问题的解答记录下来。 Q:电脑的 CPU 中包含哪些部分?各自的作用有哪些? A:CPU 包含寄存器,控制器,时钟和运算器四种主要的结构。如下图所

  • XCTF 攻防世界 Reverse新手题(Hello,CTF)2020-12-12 18:34:11

    XCTF 攻防世界 Reverse新手题(Hello,CTF) 首先,先利用exeinfoPE看一个附件的exe程序是多少位的,有没有加壳。 发现程序是32位的,没有加壳 之后便可以用IDA32打开 和之前几道题的思路一样,首先还是查看main函数,将main函数进行反编译,查看源代码分析: int __cdecl main(int argc, const

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有