调试与反汇编
文章平均质量分 84
LPWSTR
这个作者很懒,什么都没留下…
展开
-
Win7搭建双机调试环境配置拾遗
在之前的文章《搭建VS2017+WDK10+WinDBG双机调试Win7环境过程遇到的坑与解决(WinDBG找不到串口、security_cookie导致的蓝屏、看不到调试消息等)》中,主要是对搭建双机调试环境过程中一些问题和解决办法进行描述,没有涉及到针对Win7及之后的系统配置内核调试的过程,在本文中加以补充。原创 2022-03-14 22:12:20 · 2251 阅读 · 0 评论 -
使用DevCpp/DevC++调试的设置和步骤
本文介绍使用DevC++(DevCpp)进行C语言/C++程序调试所需的步骤和配置。原创 2022-03-10 15:52:27 · 9100 阅读 · 0 评论 -
Windows异常世界历险记(三)——VC6中结构化异常处理机制的反汇编分析(上)
在《Visual C++异常处理机制原理与应用》部分,我们讲解了Visual C++提供的结构化异常处理机制,并对其中比较简单的终止型异常处理程序在部分条件下(自然执行、提前越出、__leave关键字等)进行了反汇编分析。下面我们继续对整个Visual C++结构化异常处理机制进行分析。本次分析的目标环境是VC++ 6.0,这是一款已经有些“美人迟暮”的集成开发环境。使用它进行分析,主要原因如原创 2018-01-29 10:28:03 · 588 阅读 · 0 评论 -
C++中new的源码与行为分析
这是我在处女面中遇到的一个问题,当时回答的不太好,因此下来研究、学习了一下。C++中operator new的行为及其与malloc的区别。当时我回答二者的区别是new在实现中会调用malloc并且由编译器安插调用构造函数的代码,并在面试官前辈的提醒下又答出malloc失败返回0,而new直接抛异常。但不清楚有没有不抛异常的new和不调用构造函数的new这一点。下面结合代码分析一下。原创 2018-03-25 09:23:24 · 5377 阅读 · 1 评论 -
C++中lambda表达式详解与原理分析
lambda表达式的本质就是重载了()运算符的类,这种类通常被称为functor,即行为像函数的类。因此lambda表达式对象其实就是一个匿名的functor。C++中lambda表达式的构成一个标准的lambda表达式包括:捕获列表、参数列表、mutable指示符、尾置返回类型(->返回类型)和函数体:[capture list] (params list) mutab...原创 2018-03-20 23:54:59 · 8274 阅读 · 5 评论 -
搭建VS2017+WDK10+WinDBG双机调试Win7环境过程遇到的坑与解决(WinDBG找不到串口、security_cookie导致的蓝屏、看不到调试消息等)
本文主要记录VS2017+WDK10下双机调试驱动时遇到的问题:首先是没法实现双击调试,然后是编译出来的驱动在Win7平台下一加载就蓝屏,定位到是security_cookie的问题,紧接着又是生成的驱动与老版本Window兼容性的问题,最后是KdPrint消息看不到的问题。原创 2018-07-24 18:50:20 · 5285 阅读 · 2 评论 -
Sublime Text 3176 Win32版本暴力破解过程
前段时间听闻Sublime出了新版本,一直忙于实习任务没有跟进。最近项目进入收敛期,正好写文档搞得头晕脑胀的,遂利用工作之余看看作者在3176版本中都给我们准备了哪些惊喜。先说结论吧,此版的注册机制、干扰和暗桩等于上一版一模一样,不知道作者是不是觉得在上一版中加入的一些干扰机制和暗转已经卓有成效了,还是作者已经无心抵抗了?正因如此,可将上一版的破解成果和步骤直接用于本版本中。由于上次已经比...原创 2018-08-29 23:18:12 · 773 阅读 · 0 评论 -
Windows异常世界历险记(四)——VC6中结构化异常处理机制的反汇编分析(中)
本文主要分析VC6中结构化异常处理机制的tryLevel含义,栈结构并给出except_handler3函数的逆向还原结果。原创 2019-01-16 03:32:36 · 440 阅读 · 0 评论 -
Windows异常世界历险记(五)——VC6中结构化异常处理机制的反汇编分析(下)
在本系列的上一篇文章windows异常世界历险记(四)——VC6中结构化异常处理机制的反汇编分析(中)中,给出了针对VC6的异常处理机制进行逆向后得到的伪码。在本文中,我们仍然以之前写的小程序为例,通过调试的方式结合我们得到的VC6结构化异常处理的伪码,对其运行机制进行分析。原创 2019-01-16 19:43:13 · 676 阅读 · 0 评论 -
AT&T风格与Intel风格的x86汇编语法区别
无论采用何种语法,都需要有支持该种语法的汇编器负责将汇编源代码“翻译”成x86机器指令,而Intel与AT&T风格的汇编语发差异,只存在于汇编源码层面原创 2017-12-16 00:51:44 · 3254 阅读 · 0 评论 -
IDA Pro 7.0皮肤插件的安装与深色主题(包含背景色、前景色、指令颜色)的设置
长期以来都用的是IDA Pro的默认白底蓝字的主题,这种配色在夜里十分刺眼,最终决定将其背景换为深色。主题插件的安装感谢zyantific大神制作的IDA Pro主题插件,这款插件使用Qt stylesheets的方式改变IDA的外观样式。这是一个开源的项目,源码在github上。下载二进制成品链接:https://github.com/zyantific/IDASkins/releases/源原创 2017-11-01 00:49:04 · 10395 阅读 · 2 评论 -
Visual C++异常处理机制原理与应用(一)—— C/C++结构化异常处理之try-finally终止处理的使用与原理(上)
异常处理是我们日常编程会不时用到但是却很少深入了解的部分,也是硬件、操作系统、编译器与用户程序需要密切配合才能完成的一个复杂过程。本系列文章主要对Visual C++中的异常处理机制的应用进行介绍、归纳和总结,并试图揭示其实现原理。本文主要介绍终止型异常处理程序的应用并结合反汇编代码分析其实现原理。原创 2017-09-21 23:53:57 · 1202 阅读 · 0 评论 -
《Visual C++异常处理机制原理与应用(二)—— C/C++结构化异常处理之try-finally终止处理的使用与原理(下)》
在上一篇文章中,我们其实只分析了终止型异常处理程序中正常的执行流程,这种情况的出现其实需要作如下假设:__try块中的代码执行过程中不会引发异常这部分代码不会试图提前离开__try块的作用范围(如包含goto、break、continue、return等会导致执行流越出__try块部分的指令)然而俗话说,“理想很丰满,现实太骨感”,在编程中,不得不考虑到各种各样的情况。当被保护的代码块中出现异原创 2017-09-23 22:36:01 · 1389 阅读 · 0 评论 -
Sublime Text 3143 Win32版本暴力破解过程
Sublime Text是一款强大的文本编辑器,在不注册的情况下也可以使用,但标题栏的未注册字样与时不时弹出的nag窗口有时也让人感觉很不爽,于是尝试对其注册过程进行分析与破解。本文详细记录了对Sublime 3143 Win32版本的暴力破解过程,原创 2017-12-12 15:37:41 · 1344 阅读 · 1 评论 -
Sublime Text 3126 Win32版本暴力破解过程
Sublime Text是一款强大的文本编辑器,在不注册的情况下也可以使用,但标题栏的未注册字样与时不时弹出的nag窗口有时也让人感觉很不爽。虽然网上很容易就能找到它的注册码,但是通过自己的分析和双手将其破解掉,还是会很有成就感的。这里分析的是Sublime 3126 Win32版本,目前已有更新的版本(3143版本)。这里选择分析旧版本,一方面是因为旧版本的注册逻辑相对更加清晰,并且由旧到新的分析原创 2017-12-11 22:03:08 · 854 阅读 · 0 评论 -
Windows异常世界历险记(一)——Windows系统用户级结构化异常处理机制(SEH)的基础知识和Unwind展开操作
Windows系统的用户级结构化异常处理机制(SEH)是基于线程的,因此可为不同的线程指派不同的异常处理函数。且由于其形成了链结构,还可据此为一个线程指定多个异常处理函数,异常发生后,操作系统会沿此链表调用各异常处理函数,直到某个异常处理函数修复了该异常或已达末尾。通常处理完异常后,需要执行展开(Unwind)操作,该操作先通知目标结点前的各异常处理函数释放资源,然后将之前的SEH链全部删除。原创 2017-12-04 17:33:19 · 1420 阅读 · 2 评论 -
Windows异常世界历险记(二)——Win32用户层下SEH机制之对RtlUnwind的逆向分析
RtlUnwind函数是一个用户层的Windows API函数,其作用是执行SEH的展开操作(正是由于Windows的SEH机制不自动进行展开操作,才提供了此API,供需要执行该操作的用户调用)。下面介绍其用处并进行逆向分析。原创 2017-12-04 22:06:13 · 2762 阅读 · 2 评论 -
Sublime Text 3143 Win32版本破解后续——排除暗桩与完美注册
本文是对上一篇记录《Sublime Text 3143 Win32版本暴力破解过程》的补充之一。整个破解工作到目前为止,似乎一切都很顺利,随便输入一个序列号就能完成注册了。然而今早起床刷牙时猛然想起一个细节:Sublime的作者在3126版本中就已经有了对注册函数进行验证的环节,故意传入了一个全0的参数,此时作为异常情况,注册函数应该返回代表注册失败的值,当初我们第一次破解3126版本的时候就因为没原创 2017-12-15 01:25:09 · 1273 阅读 · 0 评论 -
WinRAR x64 v5.5中文版去广告过程
采用x64dbg配合IDA,用动态分析和静态分析结合的办法去除WinRAR v5.5 x64版本广告的全过程。主要分为获取广告窗口类名称、阻止注册窗口类和创建窗口几大步骤。原创 2017-09-02 20:18:28 · 18635 阅读 · 0 评论