操作系统:windows XP 调试器通过CreateProcess传入带有DEBUG_PROCESS和DEBUG_ONLY_THIS_PROCESS的dwCreationFlags创建被调试进程.这种情况下,进程创建的早期(执行NtCreateProcess或NtCreateProcessEx之前),调用DbgUiConnectToDbg()使调用线程和调试子系统建立连接.DbgUiConnectToDbg()内部调用ZwCreateDebugObject创建一个DEBUG_OBJECT内核对…
#include <stdio.h> int main( void) { ; a=fun(,); printf("%d\n",a); } int fun(int a,int b) { return a+b; } test.cgcc -g test.c 生成 a.out ---------------------------------- 用SecureCRT 创建两个会话到 redhat 5.3,我已经升极内核到3.5,支持用户态调试 session 1 1.执行 stap…
windows 下使用 mingw编译器 调试时 无法跟进源码 最近在公司使用QT 开发,官方在线下载的 安装的QT mingw 都是没有debug版本的 由于没有debug版本动态库 所以你调试的时候压根就无法跟进QT源代码里,那么找问题的时候 大部分都是跟到汇编代码了. 由于刚来公司不久,人微言轻.我建议统一使用msvc编译 得到拒绝后 没有办法只能重新编译mingw debug版本 了. 下面记录下使用mingw 编译debug 版本步骤 1. 首先准备环境要做好 Perl version…
一:背景 一直在用 WinDbg 调试用户态程序,并没有用它调试过 内核态,毕竟不是做驱动开发,也没有在分析 dump 中需要接触用内核态的需求,但未知的事情总觉得很酷,加上最近在看 <深入解析 Windows 操作系统> 一书,书中有不少案例需要深入到 内核态 ,所以这篇准备整理一下如何用 WinDbg 调试 C# 内核态吧. 操作环境: Windbg Preview 宿主机:Windows 10 虚拟机:Windows 10 二:搭建内核态调试 1. 基本原理 操作系统的引导程序 Boot…
在windows下如何用IDA优雅调试ELF brief: 构建一个IDA-linux_server-docker镜像,优雅地IDA远程调试 使用传统虚拟机来运行一个linux程序就得跑一个完整的linux镜像,这无形中浪费了很多资源,而且一点也不优雅.docker就很完美的解决了这一点,我们可以在某个简单的linux基础镜像上构造一个ida_server,这样比较灵活.方便,而且比较elegant. 安装 docker for windows http://www.cnblogs.com/ho…
大学毕业后,选择做了苹果开发,一直是使用的Mac系统,所以对Windows的基本操作忘得几乎一干二净:因为做内网穿透的需要,要用到Windows下的权限问题,所以重新研究了一下Windows设置用户权限的问题. 我这里用的是Win10操作系统,在Win10操作系统下,家庭版的操作系统隐藏了用户组的概念,使普通用户觉得简单易用,所以要想在Win10上操作用户组,需要安装Windows专业版以上(专业版也可以),我这里安装的是Win10的企业版. 首先打开运行,执行MMC,打开管理控制台面板(htt…
在windows下如何用IDA优雅调试ELF brief: 构建一个IDA-linux_server-docker镜像,优雅地IDA远程调试 使用传统虚拟机来运行一个linux程序就得跑一个完整的linux镜像,这无形中浪费了很多资源,而且一点也不优雅.docker就很完美的解决了这一点,我们可以在某个简单的linux基础镜像上构造一个ida_server,这样比较灵活.方便,而且比较elegant. 安装 docker for windows http://www.cnblogs.com/ho…
环境:windows 10 postgresql版本:postgresql-9.6.5 使用工具:vs2017社区版 辅助工具:perl.diff.flex.bison 相关工具下载地址: perl下载链接:http://pan.baidu.com/s/1i5aPilB 密码:k6f0 diff.flex.bison下载链接:http://pan.baidu.com/s/1hrHotes 密码:4ku6 以上工具均为绿色版,解压后,设置环境变量即可 此处使用的编译调试工具为vs2017社区版,该…
背景 如果你是一个FFmpeg的使用者,那么绝大部分情况下只需要在你的程序中引用FFmpeg的libav*相关的头文件,然后在编译阶段链接相关的库即可. 但是如果你想调试FFmpeg内部相关的逻辑,或者分析FFmpeg源码,那么有一个可供单步调试FFmpeg的环境往往能使你事半功倍! 要说Windows下做C/C++开发用哪个IDE最强大,我想我的答案是Visual Studio. 要说Windows下怎么快速构建FFmpeg的VS项目,我首推ShiftMediaProject(下面都简称 SM…
我们在感叹Onlydbg强大与便利的同时,是否考虑过它实现的原理呢? 作为一个技术人员知其然必知其所以然,这才是我们追求的本心. 最近在学习张银奎老师的<软件调试>,获益良多.熟悉Windows调试机制,对我们深入理解操作系统以及游戏保护的原理有着莫大好处. 0X01 初探调试原理 调试系统的实现思路如图所示: 调试器与被调试程序建立联系,程序像调试器发送调试信息,调试器暂停程序处理完调试信息后再恢复程序运行,如此周而复始. 下面我们看看如何用操作系统提供的API去实现一个简单的调试器. //…