随笔分类 -  汇编

摘要:参考:https://mhcerri.github.io/posts/debugging-the-ubuntu-kernel-with-gdb-and-qemu/ This tutorial focuses on the practical aspects of preparing an Ubunt 阅读全文
posted @ 2022-11-11 16:51 狂客 阅读(132) 评论(0) 推荐(0)
摘要:要使 try{}catch(...){}有用。就需要启用SEH异常 并且 调试器需要忽略C0000005错误 阅读全文
posted @ 2022-05-17 20:28 狂客 阅读(94) 评论(0) 推荐(0)
摘要:参考https://www.jianshu.com/p/80553a146b09https://ryan4yin.space/posts/qemu-kvm-usage/https://www.codeplayer.org/Blog/%E5%8F%8C%E6%98%BE%E5%8D%A1%E7%AC% 阅读全文
posted @ 2022-01-31 13:25 狂客 阅读(189) 评论(0) 推荐(0)
摘要:配置文件 display_library: xxxx, options=gui_debug 可以开启图形调试. display_library一般配置文件都存在。只需要搜索后在后面加入 options 就可以了。具体参考 https://bochs.sourceforge.io/doc/docboo 阅读全文
posted @ 2021-11-17 12:51 狂客 阅读(177) 评论(0) 推荐(0)
摘要:参考 https://blog.csdn.net/Simon798/article/details/103161482 先上代码: // Test_Console.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <afx.h> #includ 阅读全文
posted @ 2021-04-25 22:08 狂客 阅读(1415) 评论(0) 推荐(0)
摘要:参考站:https://www.it610.com/article/1232362898374889472.htm RE4B同时讲解了x86/x64、ARM和MIPS三大架构,在继续阅读RE4B之前,我们先来快速了解一下这三大架构。当我们谈架构的时候,其实是围绕CPU在谈CPU的指令集架构。和CPU 阅读全文
posted @ 2021-04-25 22:04 狂客 阅读(418) 评论(0) 推荐(0)
摘要:参考文献 https://blog.csdn.net/frankiewang008/article/details/17390671 x64 SEH 首先 try catch 不能随意使用了 因为x64程序是整个堆栈平衡 如下例子 A 是VS编辑器生成的 sub rsp, 48h try{ B(); 阅读全文
posted @ 2020-09-09 19:29 狂客 阅读(825) 评论(0) 推荐(0)
摘要:一、简介 简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代 阅读全文
posted @ 2020-03-10 17:19 狂客 阅读(2730) 评论(0) 推荐(1)
摘要:1首先来讲讲应用程序如何实现系统调用(用户态->内核态)? 我们以应用程序的write()函数为例: 1)首先用户态的write()函数会进入glibc库,里面会将write()转换为swi(Software Interrupt)指令,从而产生软件中断,swi指令如下所示: swi #val //v 阅读全文
posted @ 2020-03-10 17:17 狂客 阅读(567) 评论(0) 推荐(0)
摘要:gcc内嵌汇编简介 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。 1、简单的内嵌汇编 例: __asm_ 阅读全文
posted @ 2020-03-10 17:16 狂客 阅读(976) 评论(0) 推荐(0)
摘要:原创作者:狂客 版权声明:转载 请标注来源 差别一 window 和 linux 调用CALL 使用寄存器传参不同 window 1 /** 2 注意现在使用函数库必须先调用 KuangKeInIt 这个函数 3 4 r8-r15 5 r8 保存 64位 6 r8d 保存 32位 7 汇编调用函数 阅读全文
posted @ 2020-03-02 18:05 狂客 阅读(499) 评论(0) 推荐(0)
摘要:在主程序中用call指令来调用子程序。 Win32汇编中的子程序也采用堆栈来传递参数,这样就可以用invoke伪指令来进行调用和语法检查工作。 一. 子程序的定义 子程序的定义方式如下所示。 子程序名 proc [距离][语言类型][可视区域][USES 寄存器列表][,参数:类型]...[VARA 阅读全文
posted @ 2017-09-25 10:46 狂客 阅读(2114) 评论(0) 推荐(0)
摘要:00121453 0F010D 40441200 sidt fword ptr ds:[gliu]0012145A 0F014D B0 sidt fword ptr ss:[ebp-0x50]0012145E 0F014D 50 sidt fword ptr ss:[ebp+0x50]0012146 阅读全文
posted @ 2016-07-12 17:00 狂客 阅读(679) 评论(0) 推荐(0)
摘要:jpg 改 rar 阅读全文
posted @ 2016-07-07 09:47 狂客 阅读(426) 评论(0) 推荐(0)
摘要:CLI禁止中断发生STL允许中断发生 这两个指令只能在内核模式下执行,不可以在用户模式下执行;而且在内核模式下执行时,应该尽可能快的恢复中断,因为CLI会禁用硬件中断,若长时间禁止中断会影响其他动作的执行(如移动鼠标等等),系统就会变得不稳定。在标志寄存器中中断标志清零的情况下,可以以“int ×× 阅读全文
posted @ 2016-05-24 18:13 狂客 阅读(2620) 评论(0) 推荐(0)
摘要:http://124.16.151.186/docs/optimization/VTune(TM) User's Guide/mergedProjects/analyzer_ec/mergedProjects/reference_olh/instruct32_hh/vc267.htm 说明 将通用寄 阅读全文
posted @ 2016-05-11 15:17 狂客 阅读(1354) 评论(0) 推荐(0)
摘要:注:不要HOOK 函数里可能会被跳转的地址, 不要HOOK 字节中包含函数调用的地址 如 HOOK的地址里有 CALL EDX 等 x86 JMP计算公式 目标地址-当前地址-5 = 机器码E9后面所跟的32位数 JE计算公式 目标地址-当前地址-6 = 机器码0F 84后面所跟的32位数 JNE计 阅读全文
posted @ 2016-05-11 10:17 狂客 阅读(2205) 评论(0) 推荐(0)