• x64dbg零基础使用教程


    本教程转自吾爱破解,作者:wwh1004

    刚接触dbg这个工具,对于很多功能和快捷键还不熟悉,找到这个帖子发现挺不错的。转载过来和大家分享,文字和图片排版方面略有修改。侵删。

    这篇文章主要是为.NET逆向但不会x64dbg的同学准备的,文章基本上零基础,会一点c#/vb.net就能看懂文章。
    文章以visual studio 2017为参照,讲解如何像用vs调试.NET程序集一样使用x64dbg调试本机代码
    x64dbg下载地址:https://github.com/x64dbg/x64dbg/releases

    x64dbg基本操作:

    1.步进

    等于vs中的"逐语句"
    vs图标:         vs快捷键:  F11
    x64dbg图标:       x64快捷键:F7


    2.步过
    等于vs中的"逐过程"
    vs图标:       vs快捷键:F10
    x64dbg图标:     x64快捷键:F8


    3.运行到返回
    等于vs中的"跳出"
    vs图标:        vs快捷键:Shift+F11
    x64dbg图标:     x64快捷键:Ctrl+F9


    4.运行
    等于vs中的"启动"/"继续"
    vs图标:      vs快捷键:F5
    x64dbg图标:           x64dbg快捷键:F9



    5.断点

    在想断下的指令上按下对应快捷键即可

    vs图标:启用:   禁用:         vs快捷键:F9

    x64dbg图标:启用:   禁用:        x64快捷键:F2



    x64dbg入门操作:

    1.设置符号文件保存路径:
    Q:符号文件是什么?A:*.pdb文件,还不知道就百度吧。。。Q:为什么要设置?
    A:符号文件通常很大,不然x64dbg默认保存到自身目录下,导致升级x64dbg,迁移x64dbg到其它位置极为不便
     
     
    这样就设置好了

    2.使用符号文件:
    很多情况下,x64dbg不会自动加载符号文件(不知道为什么,可能是防止调试时太卡吧,vs加载过多符号文件就会卡顿)
    这时候就需要我们手动加载了
     
    x64dbg没有加载选项,可以点"下载此模块的符号信息"(要加载所有符号文件可以点"下载所有模块的符号信息")
    如果符号文件缓存文件夹中已经有了这个符号文件,x64dbg直接从本地加载,否则从符号文件服务器上下载并加载
    右边显示了dll自身导出的函数和符号文件导出的函数,左键单击这里的函数,按下F2,是可以下断点的

    3.安装插件:
    对于.NET逆向,一般只要装一个反调试器检测的插件就行了
    我在用@xjun 的SharpOD:https://www.52pojie.cn/thread-628837-1-1.html
    不是打广告,是这个插件真的很好用,调试体验极佳(用作者的推荐设置)
    不扯了,说下怎么安装
     
     
    把压缩包里面的*.dp*文件拖入对应的文件夹(其实这些*.dp*也是*.dll文件,只不过改了个后缀名让x64dbg知道这里有个插件)
    比如装32位x64dbg的插件,就将*.dp32拖入x64dbgx32plugins

    x64dbg实际操作:

    1.查看函数调用时的参数:
    首先你需要明白什么是调用约定,这些需要百度
    现在我使用32位x64dbg调试一个unpackme,在mscorwks.dll的AssemblyNative::LoadImage处下了断点,按下F9,x64dbg在此函数入口处断下了
     
    在符号窗口可以看到这个函数的调用约定是fastcall
    我们回到CPU,把调用约定改成fastcall
     
     
    这里的1,2,3就是代表了第1,2,3个参数
    我们刚才已经看到了,这个函数第一个参数是"Array<unsigned char> *",表示指向了一个字节数组,这里的"unsigned char"等同于C#/VB.NET中的"byte",而不是C#/VB.NET中的"char"

    2.转储内存到文件:
    我们在内存窗口中按下Ctrl+G,输入0312BBAC
     
    成功跳转到了一个内存区域,储存了"Array<unsigned char>"
    我们点一下4D或者M
     
    再将右边滚动条滚到底部,按住Shift,在左键单机一下最后一个字节
     
    右键,二进制编辑->保存到文件
     
    这样,你就把一个.NET程序集人工Dump下来了
    dnSpy打开看看,是个没啥用的程序集(这个仅仅是演示,AssemblyNative::LoadImage断点有时是很有用的)
     

  • 相关阅读:
    http和HTTPS的区别及SSL介绍
    cas系列(三)--HTTP和HTTPS、SSL
    cas系列(一)--cas单点登录基本原理
    修改cas登陆页面-服务器端
    rest例子
    RESTful 架构风格概述
    Java分布式应用技术架构介绍
    tomcat的server.xml详解
    Apache Shiro 快速入门教程,shiro 基础教程 (这篇文章非常好)
    fmt:formatDate标签的输出格式
  • 原文地址:https://www.cnblogs.com/aaaguai/p/12650714.html
Copyright © 2020-2023  润新知