
器之卷
文章平均质量分 74
记录调试经验
Eugene800
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windbg跟踪ACPI亮度设定
有阵子没更新博客了,趁着有空更新一下前阵子在工作遇到的内容:公司要出货一批笔记本,对屏幕亮度上限有限定。我无意中发现可以通过控制ACPI命名空间中Method(_BCL)的行为来实现该需求,虽然事后证明这种方式是错误的,但并不影响我记下windbg跟踪ACPI的方法。先简单介绍一下Method(_BCL)的作用,翻开ACPI Spec会看到下列定义:这是一个Bios提供给OS用于设置集显亮度百分比的接口(强调一下,仅设置集显,不包含外显)。对于Win10,Method(_BCL)在切换显示比列原创 2020-11-18 23:34:46 · 1187 阅读 · 0 评论 -
Win 8.1/10 x64平台 S3 Resume任意执行漏洞 (基于UEFI平台)
前言: 不知道这个漏洞之前有没有人发现并上报,我上报国家信息安全漏洞共享平台,对方要求我提供POC。我掂量了一下自己能力,觉得在驱动里实现POC难度挺高的,所以我就放弃了(当然,我已经顺手报给微软MSRC)。于是我就移步至此,记录调试过程。实验结论基于我前两篇文章:探索Windows S3唤醒函数 (一) 探索Windows S3唤醒函数 (二)。 从Win7开始,x64位平台需要在测试模...原创 2020-04-20 19:00:32 · 819 阅读 · 0 评论 -
Hashcat Tutorial – Rule Writing
前言:这篇文章提到了用mp.exe生成规则文件(或称字典),hashcat结合mp.exe生成的规则文件,进行Masker/hybrid攻击。进入hashcat-Maskprocessor页面,会发现可以用crunch替代。不过,Hashcat Tutorial – Rule Writing这篇文章不错,就转发出来吧。This is a follow-on to the post,Hashc...转载 2020-02-29 21:26:11 · 527 阅读 · 0 评论 -
Hashcat Tutorial – The basics of cracking passwords with hashcat
This post will walk through the basics for getting started with cracking passwords using Hashcat. I’ll cover installation, attack modes, generating a list of password hashes, building a dictionary, an...转载 2020-02-29 16:31:50 · 854 阅读 · 0 评论 -
Hydra爆破[无验证码]Web页面
Hydra是密码爆破神器,读者可以阅读这篇文章<Hydra – Brute Force Techniques>,了解Hydra支持的协议。其中,爆破Http登陆密码比爆破其他协议的密码更为复杂,本文将介绍如何爆破HTTP登陆页面的密码。HTTP有两种方式发送密码:Get Method和Post Method,后者比前者复杂,因此需要区别对待。0.区分Get/Post类型的登陆页面...原创 2020-02-16 15:20:37 · 14095 阅读 · 3 评论 -
Hydra – Brute Force HTTP(S)
In this tutorial, I will be demonstrating how to brute force authentication on HTTP and HTTPS services.Basic Hydra usage – HTTPhydra -l <USER> -p <Password> <IP Address> http-po...转载 2020-02-15 21:36:57 · 1498 阅读 · 0 评论 -
Hydra – Brute Force Techniques
Hydra is a powerful authentication brute forcing tools for many protocols and services. In this tutorial, I will be showing how to brute force logins for several remote systems.Basic Hydra usageh...转载 2020-02-15 21:26:37 · 959 阅读 · 0 评论 -
字典生成器crunch问题汇总(移植到Windows/字符集)
1.Crunch移植到windows平台:1.1.cygwin64下编译Crunch会遇到如下错误:$ makeBuilding binary.../usr/bin/gcc -pthread -Wall -pedantic -std=c99 undefined crunch.c -lm -o crunchgcc: 错误:undefined:No such file or di...原创 2020-02-14 01:37:47 · 3142 阅读 · 0 评论 -
ret-sync插件:windbg/ollydbg+ida逆向调试神器
ida有不少主流调试器的扩展插件,如windbg/gdb等,可以在静态分析的基础上动态调试二进制文件。可是众多调试器扩展中没有兼顾ollydbg,难免觉得是一项缺憾。 最近在github上发现一个插件:ret-sync,不仅弥补了ida对ollydbg支持的空白,还额外支持x64dbg/lldb等调试器:使用插件前的准备工作1.虽然作者建议使用vs2017生成插件,但...原创 2019-07-15 21:55:28 · 4808 阅读 · 0 评论 -
win7 x64部署和串口调试虚拟驱动toaster
WDK7600自带的toaster驱动是个很好的学习驱动的案例,从总线驱动到App层,Class-install/Co-install都有涉及。本文主要涉及驱动部署和调试。1.先说说调试的准备工作。一般调试驱动都是在虚拟机中进行的,这里也不例外,用windbg+vmware双击联调。通常开发阶段,Wdm驱动以inf形式安装并加载,加载后依次执行DriverEntry,AddDevice并响应I原创 2016-05-11 23:32:55 · 3919 阅读 · 0 评论 -
How to debug Windows bugcheck 0x9F, parameter 3
转自:Michelle BergeronThis post is for driver or kernel developers/enthusiasts who have encountered a Blue Screen of Death on Windows where thebugcheck code is 0x9F, DRIVER_POWER_STATE_FAILURE, and p...转载 2019-06-01 19:25:44 · 1253 阅读 · 0 评论 -
取巧方式无限制试用Source insight3.5
这周一直在逆向Si3.5(版本号3.5.66.0),加密算法被还原出来了,但是因为懒惰,不想写注册机。没有注册机,其实等于没有破解SI,于是,我尝试各种取巧的办法可以无限制使用si。 以试用方式激活si后,每次启动时,都会显示剩余的试用天数:红字部分应该是形如"Trial License expire in %d days"的字符串常量,打开IDA,可以搜索这串字符:...原创 2019-03-22 14:24:12 · 4470 阅读 · 0 评论 -
Cheat Engine进阶教程:gtutorial-i386闯关记 第二关
进入第二关后会看到如下界面: 第二关简直丧心病狂,除了要1vs2,电脑攻高血厚(攻击力和血都是玩家的2倍);更要命的玩家一次只能攻击一个目标,但是会同时受到2个目标的还击,躲都躲不了。换句话说,除非改代码,否则根本无法过关。如果Freeze玩家HP,侥幸干掉一个目标,剩下的一个目标瞬间能灭掉玩家,不管玩家有多少血。估计是作者直接把玩家的HP清零了。(顺带一提,如果读者自己扫描...原创 2019-02-16 17:22:55 · 1471 阅读 · 0 评论 -
Cheat Engine进阶教程:gtutorial-i386闯关记 第一关
网上清一色介绍Cheat Engine目录下Tutorial-i386.exe的闯关教程,几乎没人关注过gtutorial-i386.exe的闯关步骤。那就容我抛砖引玉,能过几关就写几篇教程。 运行gtutorial-i386.exe,第一关作者意图为:玩家操作小飞行器射击目标,每次按空格射击目标后,目标会掉一定的血量,五次射击后目标血槽会加满,当然飞行器的子弹也会加满,如下图:...原创 2019-02-16 11:57:29 · 4364 阅读 · 0 评论 -
windbg .kdfiles 命令替换驱动程序
How Do I Replace A System File? Try .KDFILES 如何替换系统文件?试试 .kdfiles命令While the Windows DDK includes numerous buildable driver samples, including a number of "in the box" drivers, any attempt to copy ...翻译 2019-01-30 17:17:49 · 1220 阅读 · 0 评论 -
调试运行在Wow64子系统下的程序----x64版windbg调试win32程序
大家有没有遇到过这种情况:程序崩溃了,windbg分析线程堆栈时,输出了一堆乱七八糟的调用栈。更烦心的是,这堆调用栈中根本找不到跟自己程序相关的信息。来看一个类似的场景:运行C:\Windows\SysWOW64\calc.exe (win32版的calc.exe),windbg(x64 bit)附加到calc.exe:0:003> ~*kb 0 Id: 2718.1c...原创 2019-01-29 14:15:35 · 4237 阅读 · 0 评论 -
Crack内网通积分规则(基于版本3.4.3035)
公司内部通讯使用内网通(以下简称NWT),他有个好玩的功能:登陆积分可以兑换姓名后的皇冠等。在版本3.4.3035更新前,他的兑换机制还算合理,5000积分可以换个铜冠,所以内网通聊天列表里很多人名字后面顶着皇冠。(强制)升级到3.4.3035后,需要用以前10倍的积分才能兑换东西(恩,物价飞涨!)。更重要的,以前的刷积分外挂失效了。上帝关上一堵门,必然会为你打开一扇窗,内网通的作者可能也...原创 2019-01-07 18:35:02 · 22209 阅读 · 6 评论 -
去除WinRAR 5.01(32位) NAG窗口
前阵子重装系统,顺手下了一个免费的WinRAR(32位 版本号5.01)。用了没多久发现这货带NAG窗口,关闭NAG窗口后居然还跳出广告窗口,如下图,不胜其扰下决定去除NAG窗口。 毕竟WinRAR是商业软件,鬼知道有没有反调试机制,先把它拖进WinDIE发现无壳,还是c++代码,可以动手(商业软件居然不加保护,你跟鬼收钱啊)! windbg(32位程序用win...原创 2019-01-23 13:50:05 · 757 阅读 · 0 评论 -
windbg条件断点II
想逆向一个程序,发现很久不用条件断点居然生疏了,只能先写个示例程序温故一下,程序如下:int condbp(char* str,int val){ printf("%s-%d\n",str,val); return 0;}int _tmain(int argc, _TCHAR* argv[]){ int idx = 0; char* strtab[3]={"abc"...原创 2019-01-06 17:35:59 · 666 阅读 · 1 评论 -
75.windbg-.printf(打印字符串)
转自:花熊.printf 关键字和C中的printf 语句类似,常用于DML的打印,参考:http://blog.csdn.net/hgy413/article/details/9184805.printf方便用于各种打印字符串,比如断点命中的统计次数0:000> bp 0032ff40 "r $t0=$t0+1;.printf \"function exectutes:%...转载 2019-01-06 16:26:51 · 1280 阅读 · 0 评论 -
60.windbg----as、$u0(固定别名、自定义别名)
转自:花熊固定别名($u0~$u9)有10个固定别名。他们是$u0, $u1, ..., $u9。他们的等价字符串可以是不包含ENTER键的任意字符串。使用r (Registers)命令为固定别明指定等价字符串。定义固定别名时,必须在字母"u"之前插入点号(.)。等号(=)之后的文本是等价字符串。等价字符串可以包含空格或分号,但是头部和尾部的空格被忽略掉。不能用引号将等价字符串括起来(除...转载 2019-01-06 16:10:56 · 403 阅读 · 2 评论 -
偶尔发个CrackMe的逆向~
朋友面试,和HR确认过眼神后,HR发了一个CrackMe给他,让他逆向后给出算法和答案。出于练手的目的(刚接触...),我把这个CM要过来,它长这样,嗯,丑陋的MFC工程:先随便往文本框输入个值,点旁边的Button,得到显示结果的MessageBox:朋友面逆向工程用的CM,可能会带壳吧?用peid查壳,什么都没发现,莫非真有壳?想来这是我第一次做CM,怯场总不好吧,硬着...原创 2018-09-01 23:55:53 · 660 阅读 · 3 评论 -
IDA+windbg调试设置
心血来潮想到做crackme来练练手,只借助IDA吧,很难跟踪程序运行过程中的数据;只借助windbg吧,没法修改变量名。开着IDA边改函数名,边根据代码偏移在windbg中定位实在很低效,所以我想有没有什么办法能把两者结合起来?最后在hex-ray.com上找到了解决方案:<Debugging Windows Applications with IDA Windbg Plugin&...原创 2018-09-11 21:10:59 · 8555 阅读 · 0 评论 -
IDA-创建自己的sig文件
转自: 花熊工具flirt68.zippcf.exe/pcf: 生成一个模式文件.patsigmake.exe: 生成一个签名文件.sig流程创建PAT生成pat文件,pat.txt文件说明各个模式的格式。第一部分列举了它所代表的函数的初始字节序列,最长为32个字节。一些字节因为重定位的入口而有所不同,这些字节将得到“补偿”,每个字节以两点显示。。如果一个...转载 2018-08-24 11:40:02 · 3397 阅读 · 0 评论 -
windbg记录断点命中次数
前几天调试代码,需要跟踪代码运行状态并记录断点命中次数,windbg中没有找到这个功能,只能先用vs2013代替。事后我摸索了一下windbg中实现记录断点命中次数的方法。以下面这段程序为例:int main(){ int i = 0; while (1) { i++; printf("i=%d\n",i); Sleep(200); } return 0;}我想在i...原创 2018-06-20 22:47:02 · 1070 阅读 · 0 评论 -
当windbg !drvobj扩展命令失效时...
如题,当"!drvobj"命令失效时怎么办?调试ddk sample:wdffeatrued驱动时遇到这个问题,现象如下:kd> lmlstart end module name8201e000 82082000 hal (private pdb symbols) D:\symbols\win10Rs2x86\halmacpi.pdb\4E9BD9...原创 2018-06-12 23:30:20 · 813 阅读 · 0 评论 -
关于Release版除法反汇编的小结
引子: 诸如a/b(a是变量,b是常量)这种带常量的除法,可以被(数学上的)等价变换为[a/(2^n)]*[(2^n)/b]的形式。由于b和n是常量,因此在编译期间,编译器会将(2^n)/b转换成新的常量b',上式变为(a*b')/(2^n)。将原本除法表达式转换为乘法和移位运算符(PS:除以2^n可以被编译成右移n位)。编译器为什么要做这样的转化?据说,执行转化后的表达式需要3个机器周期,...原创 2018-02-28 23:56:10 · 724 阅读 · 0 评论 -
代码逆向(八)——除法与取模运算的识别与优化原理
转自:http://blog.csdn.net/yangbostar/article/details/58682791.9.1、除法与倒数相乘 何为倒数相乘?很简单,编译器世界中倒数相乘的中心思想其实就是用乘法来代替除法运算。它的原理很简单,就是将被除数乘以除数的倒数,其公式为x/y = x*(1/y),我们拿10/2作为例子,我可以得出以下推论:由 公式x/y = x*(1/y) 可得 1...转载 2018-02-25 14:44:15 · 1685 阅读 · 0 评论 -
visual c++6.0对浮点数处理器的初始化
的作者在书中P21页列写了一段代码:int main(){ int nInt0; scanf("%f",&nInt);}并简短的提到,运行上面这段程序并输入小数,将会导致程序崩溃,这是由于在浮点寄存器没有初始化前进行浮点操作,将无法转换小数部分。解决方案是在代码中任意位置定义一个浮点型变量(附注,并初始化),即可对浮点寄存器进行初始化。出于好奇,我验证了作者所说原创 2018-01-21 23:41:41 · 1419 阅读 · 0 评论 -
IDA出现"sp-analysis failed"和F5(反编译)失败
本来想拟的标题是"IDA sp-analysis failed F5失败",因为网上有很多这种类型为标题的讨论。可是,我实际了一把,发现出现这种现象至少是有2个原因导致,就有了这篇文章的标题。先来看看产生“sp-analysis failed”现象的原因,摘自ida官网:Problem: Failed to trace the value of the stack pointer原创 2017-12-16 16:01:19 · 18139 阅读 · 2 评论 -
搭建调试符号服务器
开发团队中,随着版本的增多,用户的增多,修改遗留问题变得异常困难,pdb是个好东西,符号服务器更是个好东西。给自己的开发团队建立一个简单的符号服务器会损失不好,俗话说得好嘛,“磨刀不误砍柴工”。基本需求硬件一台,要求很简单:有操作系统,硬盘足够足够足够大(请注意用了三个足够)工具软件:symstore.exe(Debugging Tools for Windows中带有)转载 2017-12-11 14:44:58 · 1146 阅读 · 0 评论 -
为可执行程序(sys/exe)生成公有调试符号
自Win10推出以来,Windows的更新频度变为每年2次(赶上隔壁Ubuntu的更新节奏了)。每次更新,MS都会提出一堆新要求。对于2018年RS4的更新,MS要求所有提交到WU(Windows Update)的驱动程序,除了要提供驱动包本身,还需要额外提供公有调试符号。哎,我只能默默的叹口气,然后照做了... 生成公有调试符号有2种形式:1.编译链接过程中生成;2.从私有调试符号文件原创 2017-12-04 17:08:40 · 1318 阅读 · 0 评论 -
搜索驱动程序分配的内存和查看KEVENT状态
上周调驱动,总觉得有个线程一直被阻塞在某个KEVENT上,最后费了很大劲才定位。由于代码是公司某个程序的一部分,不能拿出来演示,所以这里借用WinDDK\generate\event来模拟我定位的过程。当然,你可能会觉得这不就是定位有多线程同步引起的死锁吗,有什么难的?用调试器中断调试目标,然后回溯所有线程(类似windbg ~*kb命令)的调用栈不就行了。没错,对于应用程序而言,这样做十有八九已原创 2017-12-03 23:52:01 · 888 阅读 · 0 评论 -
Using the Kernel Debugger to Find a Kernel-Mode Memory Leak
转自MSDNThe kernel debugger determines the precise location of a kernel-mode memory leak.Enable Pool Tagging (Windows 2000 and Windows XP)On Windows 2000 and Windows XP, you must first use G转载 2017-11-30 21:07:08 · 593 阅读 · 0 评论 -
VirtualKD加速windbg双机调试速度
原文的标题是:VirtualKD + VMWare实现单机内核调试。我觉得不是很妥当,毕竟双机调试是OS自己实现的,不依赖VirtualKD,所以就改成了这个标题。不过出于对作者的尊重,正文中我还是会使用他的标题。不过,不得不佩服作者的文笔真的不错,写的很清晰。VirtualKD + VMWare实现单机内核调试 VirtualKD + VMWare实现单机内核调试 By转载 2017-11-28 21:47:48 · 2634 阅读 · 0 评论 -
windbg中所谓的上下文
30.7节简要的提到了windbg调试上下文的概念:如会话/进程/寄存器等上下文。为了深入了解背后的含义,我翻开windbg帮助文档,发现其对进程/寄存器上下文的解释最为晦涩。只能通过实际的练习,趟着石子过河,最后记录下自己的总结。 windbg中与进程上下文相关的命令是.process,与寄存器上下文相关的命令是.cxr,我逐一总结这两个命令的作用。1..process命令原创 2017-06-17 23:34:30 · 2712 阅读 · 0 评论 -
windbg远程调试方法
WinDBG的远程调试由服务端和客户端组成,和visualstudio类似。 被调试的机器是服务端(server), 我们做调试的机器是客户端(client)。 两台机器都需要安装WinDBG。第一步, 建立WinDBG server 端。使用 -server参数可以使WinDBG以服务器方式启动。 WinDBG可以用多种连接协议让客户端连接,比如命名管道(named pi转载 2017-05-28 00:55:47 · 3096 阅读 · 0 评论 -
整理OD学习之深入理解消息循环
原文转自:逆向工程-------OD学习之深入理解消息循环 本文略加整理。以下是原文部分:"今天我们一起深入探讨下带有对话框的消息循环。先看下图:今天我们就来研究这个图!!为了方便研究,我就选用看雪实例里的一个程序。从图上你可以看出一个主窗口,还有一个消息框。为了程序界面的简单,还请暂时把你看到的这个消息框当成对话框。这样一来你所看到的2个元素分别就是:主窗口和一个对话框。现原创 2017-05-17 23:52:19 · 2388 阅读 · 0 评论 -
Ollydbg的LoadMapEx插件
看雪上有人问如何让OD识别C语言库函数,特别是Release版本的。在楼下的回复中看到有人提到用IDA产生MAP文件,然后在OD-CPU窗口右键用LoadMapEx加载Map即可。 出于好奇,我用OD加载Release版本的测试程序:#include int _tmain(int argc, _TCHAR* argv[]){ int i; fopen("c:\\1.txt原创 2017-05-16 22:44:53 · 2269 阅读 · 0 评论 -
一次PEDIY---修改Windows自带的calc.exe (OD Switch大法)
转自看雪论坛:http://bbs.pediy.com/thread-68066.htm 作者:stalker【文章标题】: 一次PEDIY---修改Windows自带的calc.exe【文章作者】: stalker【作者邮箱】: [email protected]【软件名称】: calc.exe【下载地址】: \windows\system32\calc.e转载 2017-05-16 15:43:29 · 1578 阅读 · 0 评论