首页
学习
活动
专区
工具
TVP
发布

Eureka的技术时光轴

专栏作者
338
文章
681935
阅读量
39
订阅数
STM32F103-CubeMX-USB学习--虚拟com口
STM32-CubeMX USB学习 1. 虚拟com学习 1.1 开发环境 1.2 使用STM32CubeMX配置代码 1.3 串口自发自收 1.4 串口定向printf
战神伽罗
2021-04-14
9880
【Arduino学习笔记】系列1 - 定时器配置一、Arduino定时器简介 二、定时器基本概念三、定时器配置代码
Arduino的学习过程中一般使用库函数操作。但是关于定时器的例子常用库却没有。因此,在这里简要通俗的写出定时中断的配置过程。参考资料:http://www.instructables.com/id/Arduino-Timer-Interrupts/。
战神伽罗
2021-03-02
6.6K0
虚拟化技术概述(一)1. 虚拟化概述2. 虚拟化分类3. 虚拟化的实现
区别与直接调度片上资源/使用物理平台,使用虚拟化技术对于资源的调度会更加灵活和高效,而且可以达到硬隔离的目的;
战神伽罗
2021-01-06
11.1K0
64位内核开发第五讲,调试与反调试
debugport是在EPROCESS结构中的.调试时间会通过DebugPort端口将调试事件发送给ring3进行调试的.如果设置为0.则ring3就无法进行调试了 也就是说你不能单步了.等相关调试操作了.
战神伽罗
2019-11-04
8180
sysenter/sysexit 原理
1.从ring0到ring3最开始是用的int2E,此模式切换过程设计很多次内存访问,还有两次查表操作机访问权限的检查,这导致模式切换的开销很大从PentiumII 处理器开始,Inter引入了新的指令sysenter/sysexit,来实现快速的模式切换。
战神伽罗
2019-11-03
1.7K0
函数调用约定
现代的几乎所有的编程语言都离不开函数和参数的概念。而这个概念是编程语言级别的,而不是硬件级别的。也就是说硬件上本来没有函数的概念。只是函数的用的太普遍,硬件开始为函数准备专用的指令。
战神伽罗
2019-08-13
2.2K0
26种对付反调试的方法
本文针对的是Windows操作系统中常用的防破0解及防逆向工程保护技术,即反调试方法,各种防逆向工程技术的主要目标是尽可能多的使逆变工具尽可能失效。
战神伽罗
2019-07-24
4.1K0
ROP系统攻击
ROP全称为Return-oriented Programming(面向返回的编程)是一种新型的基于代码复用技术的攻击,攻击者从已有的库或可执行文件中提取指令片段,构建恶意代码。
战神伽罗
2019-07-24
1.3K0
汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
转自:http://www.cnblogs.com/del/archive/2010/04/16/1713886.html
战神伽罗
2019-07-24
10.1K0
各种开源汇编、反汇编引擎的非专业比较
由于平时业余兴趣和工作需要,研究过并使用过时下流行的各种开源的x86/64汇编和反汇编引擎。如果要对汇编指令进行分析和操作,要么自己研究Intel指令集写一个,要么就用现成的开源引擎。自己写太浪费时间,又是苦力活,还容易出错,所以还是使用现成的好一点。 这里对我曾使用过的比较流行的反汇编引擎做个比较,我使用过的反汇编引擎有: 1. Ollydbg的ODDisassm   Ollydbg的ODDisassm,这是我最早使用的一个开源的反汇编引擎,07年在《加密解密》(三) 中我写的一个很简单的虚拟机就是使用的这个库,因为那个时候还没有那么多可选择。不过多亏有这样一个基础库,整个虚拟机从设计到开发完成只用了两个星期便开发完成(当时对反汇编库的要求不高,只要求能用字符串文本做中间表示进行编码/解码)。   这个反汇编库的优点是含有汇编接口(即文本解析,将文本字符串解析并编码成二进制),就拿这个特性来说在当时也算是独树一帜的了,到目前为止开源界在做这个工作的人也很少,   不过近年出现的调试器新秀x64dbg,也附带开发了开源的汇编库XEDParse,功能与OD的文本解析功能相似,并且支持的指令集更加完整,BUG更少,同时还支持X64,维护一直很强劲。 但是ODDisassm的缺点也很多,比如:   1. 指令集支持不全,由于Ollydbg年久失修,现在甚至连对MMX指令集都不全,而现在的INTEL/AMD的扩展指令集标准又更新了多个版本,什么SSE5/AVX/AES/XOP就更别提了,完全无法解析。   2. 解码出来的结构不详细,比如指令前缀支持不够友好,这点从Ollydbg的反汇编窗口可以看出,除了movs/cmps等指令以外,repcc与其他指令组合时都是单独分开的; 再比如寄存器无法表示ah\bh\ch\dh这种高8位寄存器。   3. 作者一次性开源后便不再维护开源版本,对于反汇编上的BUG很难即时修复。   不过这些也可以理解,因为在当时作者的开发目的是进行文本汇编\反汇编,所以没有为解码出的信息建立结构体以及接口。总的来说,如今再使用这个反汇编引擎,已经落后于时代了。 2. BeaEngine BeaEngine是我用的第二个库,当时使用OD库已经不能满足我的需求了。在做反编译器的时候,需要一个能够解码信息越多越好的库,于是我找到了BeaEngine,这个库我记得以前的版本不支持高8位寄存器识别,现在的版本也支持了。   在使用过程中基本上没有发现什么明显的缺点,不常用的新的扩展指令集也实现了不少。   目前实现的扩展指令集有:
战神伽罗
2019-07-24
3.1K0
C++/Debug模式查看EFL(标志寄存器)详解
在比如使用汇编指令如:ADC, SBB等指令时,我们为了心里那份好奇感就不得不去了解下FLAG寄存器(EFL)里面的东西。通过二进制详细的查看各标志位的值。然后这些需要用到标志寄存器的指令等就一目了然了。 - -
战神伽罗
2019-07-24
1K0
SSDT表概念详解
SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。
战神伽罗
2019-07-24
1.4K0
GDB调试汇编分析
GDB调试汇编分析 代码 本次实践我参照了许多先做了的同学的博客,有卢肖明,高其,张梓靖同学。代码借用的是卢肖明同学的代码进行调试运行。 GCC编译 使用gcc -g gdbtest.c -o gdbtest -m32命令在64位的机器上产生32位汇编代码 在使用gdb进行调试运行时,有cgdb和gdb两种工具,我建议大家使用张梓靖同学使用的cgdb工具,因为使用时可以随时看到自己的源代码,看到我们的断点在哪里,每一步返回值到了哪行,更加直观。 分析过程 使用b main指令在main函
战神伽罗
2019-07-24
3.2K0
X64汇编之指令格式解析
最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/s
战神伽罗
2019-07-24
3.9K0
x64调用约定
x64网上说rcx,rdx,r8,r9,堆栈,但实际上,堆栈必须预留够相应的参数大小。比如传入rcx,rdx两个参数,则调用入口(call指令处rsp)必须上面要留2个寄存器大小的地址。而超过的部分,也就是需要用堆栈来传递的部分,则从调用入口处向上偏移4个处传递。也就是说前4个参数虽然用寄存器,但是堆栈的位置必须预留出来,以便于函数体内调用。难怪现在gcc编译出来的代码不使用压栈方式,而是直接改堆栈数据了。
战神伽罗
2019-07-24
9540
GCC在C语言中内嵌汇编-转载
在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。 1、简单的内嵌汇编 例:
战神伽罗
2019-07-24
2.8K0
gcc x64 asm 内联汇编尝试
asm volatile(assembler template : output : input : clobber);
战神伽罗
2019-07-24
2.7K0
segment 寄存器的真实结构
Segment Register 也可以称作 Selector Register,它在整个 x86/x64 体系下实在太重要了。
战神伽罗
2019-07-24
1.6K0
static在C语言中主要是两种用法
首先从内存四区的角度去看,auto即为普通的局部变量,存储在栈上,当函数结束时,随之释放。
战神伽罗
2019-07-24
1.2K0
mov fs:[0],esp的含义
lea eax,SEH1[ebp] ;自己的异常处理函数地址 push eax ;把该异常处理函数地址压栈 push fs:[0] ;fs:[0]指向的是TIB[Thread information Block]结构中的 ;EXCEPTION_REGISTRATION 结构 mov fs:[0],esp ;让fs:[0]指向一个新的EXCEPTION_REGISTRATION 结构(就像链表插入一个新节点) mov esi,0 ;这两行指令就是用来处罚这个异常处理函数被调用的代码 mov eax,[esi];make a error for SEH
战神伽罗
2019-07-24
2.4K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档