X64dbg使用技巧

前言:各类杂项x64dbg的使用技巧

示例1:进出call

PS:在选择一条call指令时,使用enter键进入call指令对应的函数内部;在call指令内部时使用-减号键退出该call。

示例2:条件断点

PS:若一条指令被多种情况触发,但只需追踪其中一种情况下的状况,可在该指令处设置条件断点。如设置rax>10,则当执行至该指令时,只当rax寄存器中的值大于10时中断。

示例3:忽视异常

PS:在x64dbg的选项设置中的异常选项卡内,可通过'忽略范围'按钮设置忽略异常号为某个区间的异常,在调试的程序频繁触发特定异常导致调试难以进行的情况下十分有用。

示例4:判断call的参数1

PS:在进入一个call内部后,找到形如sub rsp,xxx(将堆栈空出一块空间,此后用于存放call内可能用到的各种局部变量)的指令,此指令意为开辟内存空间。在此句之后出现的形如mov xxx,rcx/rax/r8/r9或lea xxx,[rcx/rax/r8/r9]等将可作为参数的寄存器中的值赋给另一不可作为参数的寄存器(两种寄存器的区分见反汇编笔记——64位机寄存器)的语句可用以推断该call的参数信息;如上图的sub rsp,rax之后出现的mov r14,r8、movups xmm0,xmmword ptr [r9]、mov esi,edx、mov r12,rcx四条语句,可推断出当前call的参数未r8、r9、rdx、rcx。

示例5:判断call的参数2

PS:在一个call的外部,观察该call与上一个call之间的代码,那些被赋值的,可作为call的参数的寄存器即为该call的参数。如上图rcx、r9、r8、rdx都被赋值了,它们都是call 13FB684E0的参数。

示例6:获取特征码

PS:选中一条或多条代码之后shift+c:复制特征码(或右键二进制——》复制)此后进入符号确定其所在模块,右键搜索特征码确保该特征码只匹配一次,则该特征码可唯一确定一块内存区域

示例7:键消息以及键代码

PS:在按键相关的call的调用过程中,call的参数中一定会包含一份键消息和一份键代码,前者用于标识按钮状态,后者用于标识按键类别。因此若需在程序中寻找按键相关功能的call,可由其参数中是否包含以上两者判断(上述键代码只示例部分,更多相关代码自行搜索)

示例8:堆栈结构体

PS:对于类似 lea rcx qword ptr [rbp-20]的将标识堆栈地址的寄存器的值存入rcx作为call参数的情况,说明rcx标识的为一个堆栈结构体。即有大量数据保存在堆栈内以rcx标识的部分里。

示例9:特征码匹配规则

mov [eax+4],ebx                          可以(偏移+4较小)
mov [eax+431],ebx                      不可以(中间+431偏移太大,不适合作为特征码)
mov [eax+4],10000                      不可以(操作数过大)
je 0x321234                                 可以(注:小跳转可以,但大跳转不能作为特征码)
call 0x0031731C                          不可以(一般call是函数调用,由于每次装入地址不确定,所以不能作为特征码)
push                                             可以

PS:这里说明一下,像是call 或者大跳转,一般而言我们不能用它作为特征码字段,如果非要作为特征码,当然也可以,只是在某些情况下会出现错误!

X64dbg使用技巧相关推荐

  1. x64dbg 基本使用技巧

    x64dbg 基本使用技巧 最近使用 DBG 多了起来,所以查了一些资料来学习并整理成自适应的笔记. 本文摘抄自:x64dbg 使用技巧与实用插件合集 官方网站: https://x64dbg.com ...

  2. [x64dbg] 实战01 - 参数打印/修改参数内容(条件断点、命令、脚本)

    文章目录 导读 参数打印/修改参数 - 界面方式 参数打印 - 日志参数(红色) 修改参数 - 命令参数(绿色) 参数打印/修改参数 - 脚本方式 参考资料 导读 x64dbg是小编目前用的最多的wi ...

  3. Windbg/x64dbg/OllyDbg调试器简介

    原文链接: https://blog.csdn.net/libaineu2004/article/details/104081676 一.Windbg Windbg是微软开发的一套调试器中的组件.Wi ...

  4. 转载:Qt Creator的CDB调试器--使用技巧与心得,重点是Symbols Path设置

    Qt Creator的CDB调试器--使用技巧与解决调试很慢的心得,重点是Symbols Path设置_$firecat全宏的代码足迹$-CSDN博客_cdb.exewindows系统下主要的调试器: ...

  5. keyshot怎么批量渲染_提高Keyshot逼真渲染的小技巧

    Keyshot是一个特别神奇的应用软件,但是,就像Photoshop一样,如果你不知道怎么使用它,那么再优秀的工具在你手中也什么都是了.这里我就告诉你一些制作优秀效果图的技巧以及如何使用这个神奇软件. ...

  6. Linux shell 学习笔记(6)— vim 编辑器使用方法及技巧

    1. 检查 vim 软件包 1.1 CentOS 发行版 $ alias vi alias vi='vim' $ $ which vim /usr/bin/vim $ $ ls -l /usr/bin ...

  7. Python 笔试面试及常用技巧 (1)

    1. 交换两个数字 In [66]: x, y = 1, 2In [67]: x Out[67]: 1In [68]: y Out[68]: 2 赋值的右侧形成了一个新的元组,左侧立即解析(unpac ...

  8. Redis 使用技巧

    Redis 现在非常受欢迎,似乎已经成为内存数据存储行业的标准.本人结合平时使用Redis经验,也同时查找了一些网上别人的总结经验,总结以下几条Redis使用技巧. 1. 停止使用 KEYS 众所周知 ...

  9. 受用一生的高效 PyCharm 使用技巧(六)

    http://www.sohu.com/a/329854019_654419 大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从第一篇开始,一直到本篇,一共更新了6篇文章,每篇 5 个小技 ...

最新文章

  1. 介绍下计算机的一些常识?
  2. js时间日期友好显示
  3. 经典笔试题: 二叉树中和为某一值的路径(路径总和)
  4. hybrid app、web app与native app工具
  5. 【CSS古话今说】-- 01.神奇的CSS-BFC在实战中的应用
  6. JavaScript(三)——函数、变量作用域、方法
  7. eclipse报错资料备份
  8. cli3解决 ie11语法错误 vue_基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册...
  9. python多大学_用Python看看你的大学A4纸还剩多少!
  10. git撤销commit到未提交状态_Git在4个阶段5种状态下的撤销操作
  11. 数据科学 IPython 笔记本 8.9 自定义图例
  12. 球变暖导致巨大灾难 及早应对海平面上升危害
  13. 透彻解析云原生在数字化转型中的应用实践,PaaS功不可没
  14. shell脚本中定义路径变量出现的BUG
  15. Linux系统下ActivityMQ的安装
  16. wps excel连接MySQL数据库可刷新实时读取数据
  17. django 序列化组件Serializer
  18. 厉害!他33岁破格晋升教授和博导,成果还打破国外技术垄断
  19. 初学cocoa开发:带你走入不一样的世界
  20. 如何修改计算机ip 地址子网掩码,如何查看和修改主机的ip地址和子网掩码

热门文章

  1. Go语言爱好者周刊:第 144 期 — 一道切片的题目
  2. 家庭版win7怎么把计算机,不重装电脑系统,怎么让Win7家庭版变成旗舰版
  3. 项目总监和项目经理的区别
  4. ITE平台开发 chapter 2-简单Debug01
  5. 思科网络安全 第九章考试答案
  6. oracle 查询一年12个月的sql
  7. 联诚发总裁龙平芳受邀出席航城街道高质量发展暨招商推介大会!
  8. 在moveit2中实现四连杆及曲柄滑块
  9. 跨平台移动应用开发是否真的是一个好选择?
  10. ZZULI - 建国与回文串