草庐IT

IDA汇编

全部标签

驱动开发:内核LDE64引擎计算汇编长度

本章开始LyShark将介绍如何在内核中实现InlineHook挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用LDE64这个反汇编引擎,该引擎小巧简单可以直接在驱动中使用,LDE引擎是BeaEngine引擎的一部分,后来让BeatriX打包成了一个ShellCode代码,并可以通过typedef动态指针的方式直接调用功能,本章内容作为后期Hook挂钩的铺垫部分,独立出来也是因为代码太多太占空间一篇文章写下来或很长影响阅读。LDE反汇编引擎源代码:https://github.com/BeaEngine/lde64首先定义一个lyshark_lde64.h头

汇编语言学习_1_Hello,world!

第一节Hello,world!翻译自:https://asmtutor.com/背景知识汇编语言是最基本的。程序员在实际硬件之上的唯一接口是内核本身。为了在汇编中构建有用的程序,我们需要使用内核提供的Linux系统调用。这些系统调用是内置于操作系统中的库,可提供诸如从键盘读取输入和将输出写入屏幕等功能。当您调用系统调用时,内核将立即暂停执行您的程序。然后它将执行您请求的任务所需的必要驱动程序,最后再将控制权返回给您的程序。Note:驱动程序(Drivers)之所以称为“驱动程序”,是因为内核确实是使用它们来“驱动”硬件。我们可以在汇编中完成这一切,方法是将我们要执行的函数号(即OPCODE)加

汇编语言学习_1_Hello,world!

第一节Hello,world!翻译自:https://asmtutor.com/背景知识汇编语言是最基本的。程序员在实际硬件之上的唯一接口是内核本身。为了在汇编中构建有用的程序,我们需要使用内核提供的Linux系统调用。这些系统调用是内置于操作系统中的库,可提供诸如从键盘读取输入和将输出写入屏幕等功能。当您调用系统调用时,内核将立即暂停执行您的程序。然后它将执行您请求的任务所需的必要驱动程序,最后再将控制权返回给您的程序。Note:驱动程序(Drivers)之所以称为“驱动程序”,是因为内核确实是使用它们来“驱动”硬件。我们可以在汇编中完成这一切,方法是将我们要执行的函数号(即OPCODE)加

汇编语言

前言汇编语言是各种CPU提供的机器指令的助记符的集合,可以通过汇编语言直接控制硬件系统进行工作;Q:为什么说汇编语言可以直接操作硬件?那么汇编过程还有什么意义呢?A:汇编语言利用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址;汇编语言是面向机器的语言而不是机器语言,但汇编语言的本质就是机器语言;可以这样理解,从机器语言到汇编语言仅仅只是将英语翻译成汉语,本质上都是可以书写并识别的语言(同物种),但是从高级语言到汇编语言就是将动物写的“字”翻译成人类的字(跨物种);汇编语言和机器语言是一一对应的:每一条汇编语言指令对应一条机器语言指令;而高级语言和低级语言是一对多的关系:C+

汇编语言

前言汇编语言是各种CPU提供的机器指令的助记符的集合,可以通过汇编语言直接控制硬件系统进行工作;Q:为什么说汇编语言可以直接操作硬件?那么汇编过程还有什么意义呢?A:汇编语言利用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址;汇编语言是面向机器的语言而不是机器语言,但汇编语言的本质就是机器语言;可以这样理解,从机器语言到汇编语言仅仅只是将英语翻译成汉语,本质上都是可以书写并识别的语言(同物种),但是从高级语言到汇编语言就是将动物写的“字”翻译成人类的字(跨物种);汇编语言和机器语言是一一对应的:每一条汇编语言指令对应一条机器语言指令;而高级语言和低级语言是一对多的关系:C+

v87.01 鸿蒙内核源码分析 (内核启动篇) | 从汇编到 main () | 百篇博客分析 OpenHarmony 源码

本篇关键词:内核重定位、MMU、SVC栈、热启动、内核映射表内核汇编相关篇为:v74.01鸿蒙内核源码分析(编码方式)|机器指令是如何编码的v75.03鸿蒙内核源码分析(汇编基础)|CPU上班也要打卡v76.04鸿蒙内核源码分析(汇编传参)|如何传递复杂的参数v77.01鸿蒙内核源码分析(链接脚本)|正在制作中...v78.01鸿蒙内核源码分析(内核启动)|从汇编到main()v79.01鸿蒙内核源码分析(进程切换)|正在制作中...v80.03鸿蒙内核源码分析(任务切换)|看汇编如何切换任务v81.05鸿蒙内核源码分析(中断切换)|系统因中断活力四射v82.06鸿蒙内核源码分析(异常接管)|

v87.01 鸿蒙内核源码分析 (内核启动篇) | 从汇编到 main () | 百篇博客分析 OpenHarmony 源码

本篇关键词:内核重定位、MMU、SVC栈、热启动、内核映射表内核汇编相关篇为:v74.01鸿蒙内核源码分析(编码方式)|机器指令是如何编码的v75.03鸿蒙内核源码分析(汇编基础)|CPU上班也要打卡v76.04鸿蒙内核源码分析(汇编传参)|如何传递复杂的参数v77.01鸿蒙内核源码分析(链接脚本)|正在制作中...v78.01鸿蒙内核源码分析(内核启动)|从汇编到main()v79.01鸿蒙内核源码分析(进程切换)|正在制作中...v80.03鸿蒙内核源码分析(任务切换)|看汇编如何切换任务v81.05鸿蒙内核源码分析(中断切换)|系统因中断活力四射v82.06鸿蒙内核源码分析(异常接管)|

挑战30天写操作系统-day2-汇编语言学习与Makefile入门

1.介绍文本编辑器这里,我们直接采用自己windows电脑自带的文本编辑器即可以完成制作要求2.继续开发下面先是对昨天使用的helloos.nas文件内容进行详细解释;hello-os;TAB=4;标准FAT12格式软盘专用的代码StandFAT12formatfloppycode DB 0xeb,0x4e,0x90 DB "HELLOIPL" ;启动扇区名称(8字节) DW 512 ;每个扇区(sector)大小(必须512字节) DB 1 ;簇(cluster)大小(必须为1个扇区) DW 1 ;FAT起始位置(一般为第一个扇区) DB 2

挑战30天写操作系统-day2-汇编语言学习与Makefile入门

1.介绍文本编辑器这里,我们直接采用自己windows电脑自带的文本编辑器即可以完成制作要求2.继续开发下面先是对昨天使用的helloos.nas文件内容进行详细解释;hello-os;TAB=4;标准FAT12格式软盘专用的代码StandFAT12formatfloppycode DB 0xeb,0x4e,0x90 DB "HELLOIPL" ;启动扇区名称(8字节) DW 512 ;每个扇区(sector)大小(必须512字节) DB 1 ;簇(cluster)大小(必须为1个扇区) DW 1 ;FAT起始位置(一般为第一个扇区) DB 2

学习汇编-32位

数据类型类型用法BYTE8位无符号整数,B代表字节SBYTE8位有符号整数,S代表有符号WORD16位无符号整数SWORD16位有符号整数DWORD32位无符号整数,D代表双(字)SDWORD32位有符号整数,SD代表有符号双(字)FWORD48位整数(保护模式中的远指针)QWORD64位整数,Q代表四(字)TBYTE80位(10字节)整数,T代表10字节REAL432位(4字节)IEEE短实数REAL864位(8字节)IEEE长实数REAL1080位(10字节)IEEE扩展实数简写DB8位整数DW16位整数DD32位整数DQ64位整数DT80位整数指令操作数符号x86指令格式:[label: