SoftICE技巧九则

SoftICE V*.*.*.***5:经典内核调试器原版教程 本文还有配套的精品资源,点击获取 简介:SoftICE(软件中断调试扩展)是一种功能强大的内核调试工具,专门用于深入分析和故障排查操作系统内核。由MicroSystemation开发后被Winternals Software接管,现为Microsoft的一部分。SoftICE允许用户在系统运行时暂停、单步执行、查看和修改系统内部状态,是软件开发者、驱动程序开发者和系统调试专... 阅读详情
SoftICE技巧九则
ShackSing
sharksing@163.com

SoftICE是由美国 Compuware (NUMEGA)公司出品的系统级的程序调试工具, 原本单独发行,但自 4.0.5 版本后不再单独发行,而是包含在 DriverStudio 和 SoftICE Driver Suite 之中,最新版本为 4.3.0。它出色的性能不仅得到专业用户的喜爱,似我等菜鸟更是深深为其强大的功能所折服!在此以我使用 SoftICE 过程中积累的一点小小技巧形成涂鸦之作奉献给大家,希望你能喜欢。(注意:以Windows XP、DriverStudio 3.0为讲解平台,在其他版本中执行可能会有所不同)

1、配置:在 DriverStudio Configuration 中的 SoftICE Initialization  General 项中,Initialization 的字符串长度可能有一定限制,不能超过128个字符(含空格),例如输入:

“Faults off;set font 2;lines 40;width 80;wd.1 1;dd;dex 1 @esp;wd.2 1;dd;dex 2 esp->4;wd.3 2;dd;dex 3 ss:esp;wd.0 2;wc 18;code on;x;”

在 window系统目录下system32/driver/winice.dat 文件中则保存为:

INIT=“Faults off;set font 2;lines 40;width 80;wd.1 1;dd;dex 1 @esp;wd.2 1;dd;dex 2 esp->4;wd.3 2;dd;dex 3 ss:esp;wd.0 2;wc 18;code o”

显然不能正确的保存,启动 SoftICE 时将出现错误指令 “code o”,须输入“X”才能退出。
解决办法很简单,直接在 winice.dat 文件中输入两条 INIT 指令即可:

INIT=“Faults off;set font 2;lines 40;width 80;wd.1 1;dd;dex 1 @esp;wd.2 1;dd;dex 2 esp->4;wd.3 2;dd;dex 3 ss:esp;wd.0 2;wc 18;”
INIT=“code on;x;”

2、宏命令:设置宏命令时,最好直接在 winice.dat 文件中输入,当在 SoftICE Initialization Micro Definitions 中输入时,例如输入:
"bpx GetDlgItemTextA DO /"D esp->c/";bpx GetWindowTextA DO /"D esp->8/""

被保存为:

"bpx GetDlgItemTextA DO /D esp->c/;bpx GetWindowTextA DO /D esp->8/"

 可见有时DriverStudio Configuration 程序无法正确保存宏命令中的引号而导致宏命令失败。但是如果用“记事本”直接在 winice.dat 中输入宏命令,就可以正确保存并正确装载。

3、点号(.)有妙用:一般情况下,.命令可以使代码窗口回复显示当前执行的代码,当调试源代码时,“.n”可以回到第 n 行代码,例如执行“u .n”命令,代码窗将显示第 n 行源代码。

4、用好下划线(_):设置断点时,在参数前加“_”可以代表参数当前的数值,从而得到动态条件断点,例如:
bpx eip if eax==_eax ;表示当寄存器 eax 的值再次等于现在的值时中断;
bpx MessageBoxA if pid==_pid ;表示该断点仅仅对当前的进程(process)有效。

5、运用命令修改符 .t .p :命令修改符.t、.p 可以加在 bpm、bpx 等命令后面,分别表示断点仅仅对当前线程、进程有效,例如:
bpx.t GetWindowTextA

6、利用 SoftICE 内置函数 bpindex 设置一次性断点:bpindex 代表引起当前中断的断点序号,利用这个函数可以设置动态的或一次性的断点,例如:
bpint 3 do "bc bpindex"  这个断点可以用来中断在程序入口处之后再删除这个断点,以防某些 int 3 的反调试方法。

7、ctrl+L 速清屏:当新的线程创建时,常常使 SoftICE 窗口出现窗口碎片而覆盖了 SoftICE 的窗口字符,这时同时按下 ctrl 和 L 键即可快速清屏。

8、让 SoftICE 窗口与全屏显示自由切换:一般情况下,DriverStudio Configuration SoftICE  Video 设置为Universal Video Driver 时,SoftICE 将显示在窗口中,设置为 Full screen VGA mode 时将全屏显示,两种显示改变之前要重启动计算机。其实设置为Universal Video Driver 时,也可以实现全屏显示,方法为:
启动命令行方式 cmd.com 并激活为当前窗口,同时按 Alt 和 Enter 键,将启动到全屏 VGA 模式,此时按 Ctrl + D 即可启动到 VGA 全屏方式,该方式比设置为 Full screen VGA mode 的方式更好,可以通过 cmd.com 来设置字体、字符大小等,简直酷呆了!

9、用 G 命令代替 BPX、BPM 的部分功能,可以对付部分设有断点清除的反调试程序:用 BPM、BPX 设断时,反调试程序会清除断点使得断点失效,而改为 G 命令可以避免这个问题,例如:
bpx GetWindowTextA  改为  G GetWindowTextA
bpmb 0040AAAA X    改为  G 0040AAAA

SoftICE 的功能太强大了,行文至此,无法继续,且作抛砖引玉之举,希望各位大虾不吝赐教,各位菜鸟也勿忘多多探讨
SOFTICE 调试详解 SOFTICE 调试详细步骤 立即下载

相关推荐

SOFTICE教程及使用手册

SoftICE命令中文解说之一 命令: . 作用: 在代码窗口中定位当前指令 语法: . 用法: 当代码窗口可见时, .命令(点命令)使得当前的CS:EIP 所指向的指令可见, 并且高亮显示. 另外,此命令也把 SoftICE 从其他内存区域中切回原先弹出的内存区域. 详见后面的ADDR命令. 点评: 当你在代码窗口中上下浏览时,有可能走得很远, 那么 这时一个"." 命令会让你在下一瞬间回到SOFTICE当前 所在的CS:EIP处,再也用不着按PGUP,PGDOWN很多次了! 命令: ? 作用: 计算一个表达式的值 语法: ? 表达式 用法: 计算一个表达式的值.并以十六进制,十进制,带符号的 十进制(<0时有)和ASCII值多种形式显示计算结果. 点评: 一个非常高级的计算器, 诸如46578*1999+ESI 之类的 计算不会再让你烦恼,另外由于可以显示ASCII,所以可 以很方便地在各种数制之间察看.

Softice使用指南---使用Softice

 安装并配置好Softice后,我们就可以开始进入使用Softice的阶段了,如果你没有做好前面的工作,还是先返回去将Softice准备好,学软件要一边看一边学习效果才好。Softice的界面和操作都比较简单,只要熟悉一些基本的命令之后就可以开始利用它为我们服务了。有一点要提醒大家:Softice在WINDOWS启动之前装入系统中,然后将WINDOWS载入(因为要控制、拦截WINDOWS的

ArduousBonze的专栏 2851

SoftICE中文帮助+使用手册

两份不错的中文资料:softice使用手册 和 SoftICE4命令中文解说。

有关SoftICE的详细操作指导教程

有关SoftICE的详细操作指导教程      一 命令: . 作用: 在代码窗口中定位当前指令 语法: . 用法: 当代码窗口可见时, .命令(点命令)使得当前的CS:EIP 所指向的指令可见, 并且高亮显示. 另外,此命令也把 SoftICE 从其他内存区域中切回原先弹出的内存区域. 详见后面的ADDR命令. 点评:    当你在代码窗口中上下浏览时,有可能走得

齐子龙的专栏 2107

DisassemblingCodeIDAProandSoftICE.pdf 英文原版

Disassembling Code IDA Pro and SoftICE

softice 用户手册中文版

目录: 本手册的功能 读者对象 本手册的组织结构 排版风格 如何使用本手册 其它相关文件 (外国人就是罗嗦,为了求全,只好随他了。) 第一章 欢迎使用SoftICE 产品概况 介绍SoftICE 介绍Symbol Loader 如何得到客户服务 联系NuMega公司的技术支持中心 第二章 安装SoftICE 介绍 硬件和软件要求 SoftICE显示选择 安装之前 安装 安装之后 配置BOOT。INI以便在多处理器系统中支持单CPU 配置SoftICE在Windows 95下正确载入 通过串行口连接第二台计算机 解决显卡问题 第三章 SoftICE教程 介绍 载入SoftICE 构造GDIDEMO样本程序 装入GDIDEMO样本程序 控制SoftICE屏幕 通过源码跟踪和逐步调试 读本地数据 设定断点和目标断点 设定一个断点 设定STICKY断点 (此处不知STICKY作何解释。待我读到此处时大概会明白) 使用SoftICE命令行信息 使用符号和符号表 设定条件断点 设置BPX断点 编辑断点 设定读写内存断点 第四章 将代码装入SoftICE 调试的概念 准备调试程序 准备调试设备驱动程序和VxDs(虚拟设备驱动程序) 手工装入SoftICE 装入SoftICE for Windows 95 装入SoftICE for Windows NT 构造带有调试信息的程序 使用Symbol Loader转换和载入文件 修改模块设定 修改通用设定 修改编译设定 修改调试设定 指定程序的源文件 删除符号表 在DOS命令行里使用Symbol Loader 使用Symbol Loader的命令行工具 NMSYM命令行的语法 使用NMSYM来转换符号信息 使用NMSYM来装入模块和符号信息 使用NMSYM来装入或导出符号表 使用NMSYM卸载符号信息 使用NMSYM来保存历史记录 关于NMSYM的信息 第五章 SoftICE导航 介绍 呼出SoftICE窗口 启动时禁用SoftICE 使用SoftICE窗口 调整窗口大小 控制窗口 拷贝和粘贴数据 用鼠标输入命令 得到帮助 使用命令窗口 滚动窗口 键入命令 重呼命令 使用运行时宏 将命令窗口的历史缓存保存到文件 相关命令 控制代码窗口 读信息 在代码窗口键入命令 使用本地窗口 控制本地窗口 扩展和分解堆栈 相关命令 使用观察窗口 控制观察窗口 设定观察表达式 读信息 扩展和分解类型表达式 相关命令 使用寄存器窗口 控制寄存器窗口 读信息 编辑寄存器和标志位 相关命令 使用数据窗口 控制数据窗口 读信息 改变内存地址和格式 编辑内存 辅助表达式 相关命令 第六章 使用SoftICE 在跟踪错误时调试多个程序 跟踪错误 Ring-3 32位保护模式(Win32程序) Ring-0 驱动代码(内核模式设备驱动程序) Ring-3 16位保护模式(16位Win程序) 地址内容 使用INT 0x41 .DOT命令 理解从R-3到R-0的转变 第七章 使用断点 第八章 ----------------------------------------------------------- (...很累人那!今天就这些了吧.因为我也是读一些翻译一些,所以有些"向前引用 "的名词术语不知道要如何解释其意义.应该读完再翻译比较好...不过那个时候我 又开学了...呜...一点时间也没有了!) 第七章 使用断点 介绍 SoftICE所支持的断点类型 断点选项 执行断点 内存断点 中断断点 I/O断点 窗口消息断点 理解断点的含义 虚断点 设置断点活动 条件断点 条件断点计数功能 在条件表达式中使用本地变量 在条件断点里引用堆栈 参考 多重断点 所用时间 断点统计 在表达式中引用断点 维护断点 使用内嵌断点 第八章 使用表达式 表达式 操作符 操作符优先级 形成表达式 表达式类型 定制类型 取得符号的数值 间接使用符号 第九章 装入系统组件符号 装入由DLL和EXE文件导出的符号表 使用未命名的入口点

SoftICE使用说明(六)

   §5.5 公用指令 指令: A --- 组译程式码 S --- 搜寻资料 F --- 将资料填入记忆体 M --- 搬移资料 C --- 比较两记忆区块 A --- 组译程式码 语法: A [address] 解说: Soft-ICE 的组译器允许你把程式码直接组译进记忆体中。这个组译器支援基 本的 8086 程式码及 80186 、80286 真实定址模式的扩充。但是运算辅助器及 8038

Keep Go…… 974

SAP中MRP运行计划行超限问题的分析与解决

SAP中基于生产性物料的采购特点,通常会采用采购计划协议的方式进行采购。其具体的采购计划通常来自于成品计划独立需求,然后通过物料清单,经由MRP跑出。 在采购计划协议中的计划行中,存在一个计划行号,随着MRP在不断跑出新的计划行,该行号资源会消耗完。当计划行号消耗完后,MRP不会再跑出新的计划行。且在MD04或MD02中看不到类似提示信息。此时可以通过MD05来查看是否出现类似下图的提示信息。 ...

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 3845

【驱动调试】SoftICE 使用说明

【原创】SoftICE使用说明(图片)  软件:DriverStudio3.2SoftIce405     XP补丁 1、DriverStudio3.2安装完成,将SoftIce405里面的补丁 拷贝覆盖掉 windows/system32/drivers 下面的文件; 2、运行SoftICE:  菜单【开始】—【所有程序】—【Compuware DriverS

ding_net的专栏 842

VINS技术路线与代码详解

VINS技术路线 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。 VINS代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 参考文档:1.VINS-Mono A R...

wangshuailpp的博客 7万+

李大勇matlab密码,基于MatlabSimulink的太阳能热水系统仿真研究 沈超.doc

基于MatlabSimulink的太阳能热水系统仿真研究 沈超中国工程热物理学会 工程热力学与能源利用 编号:141090基于Matlab/Simulink的太阳能热水系统仿真研究沈 超1 1 余 鹏1 李洪欣1 魏新利2郑州大学土木工程学院,郑州 450001郑州大学化工与能源学院,郑州 45...

weixin_42298437的博客 1346

Softice入门

Softice的界面和操作都比较简单,只要熟悉一些基本的命令之后就可以开始利用它为我们服务了。有一点要提醒大家:Softice在WINDOWS启动之前装入系统中,然后将WINDOWS载入(因为要控制、拦截WINDOWS的动作),所以它工作于系统的0级(即特权级)。当在WINDOWS下用热键呼出Softice后,它就控制了整个系统,此时任何其它的程序(包括系统时钟)都将处于停止状态。  本文只是

我的程序世界 1万+

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 299

(转载)SoftICE技巧九则

标 题: SoftICE技巧九则发帖人:shacksing时 间: 2005-03-14 09:33 原文链接:http://bbs.pediy.com/showthread.php?threadid=12036 详细信息:   SoftICE技巧九则ShackSingsharksing@163.com SoftICE是由美国 Compuware (NU

峥嵘岁月 2154

YOLOv11涨点改进| TGRS 2026 顶刊| 注意力改进篇| 引入MSEA多尺度边缘感知注意力,助力红外小目标检测、遥感目标检测、工业缺陷检测、图像去雨雾任务高效涨点

🔥本文提出了一种基于MSEA多尺度边缘感知注意力的YOLOv11改进模型,通过增强网络对边缘、纹理和细粒度信息的感知能力,显著提升复杂背景下的目标检测性能。MSEA模块采用多尺度空洞卷积提取上下文特征,并通过边缘监督和注意力融合机制强化目标边界信息。实验表明该方法在小目标、边界模糊目标和复杂纹理目标检测任务中表现优异,尤其在遥感、工业缺陷和红外检测等场景具有显著优势。文章详细介绍了MSEA的结构原理、核心代码实现、模块配置方法以及三种YOLOv11改进方案.

Ai缝合怪、助力小伙伴高效发论文 185

由异常的测试眼图引发的深入思考

信号测试中出现“双眼皮”的眼图测试效果,可能的导致因素总结如下:PCB通道阻抗设计不匹配,负载端出现严重反射;发射端采用了不当的信号预处理;接收器均衡处理不当;通道串扰严重... 基于以上的假设,本文就逐一分析下这些因素到底是如何对正常的信号眼图造成影响的。

一只豌豆象的博客 3064

(转载)SoftIce的安装、配置以及一些基本操作

SoftIce的安装、配置以及一些基本操作From: http://www.77169.org/Article/Class1/Class14/200502/14899.htmlSoftIce的安装  1、SOFTICE目前最新版本是4.01,运行setup.exe开始安装,出现的第一对话框是“欢迎”并说明NuMega公司的版权。点下步出现输入姓名、公司、序列号对话框,此时按要求输入信息。接着出现选

Kendiv's Box 4536

【OpenClaw】Edict 三省六部制部署与启动

文章摘要 本文聚焦Edict系统的本地部署与启动,提供三种安装方式:Docker快速体验、macOS/Linux原生安装和Windows生产仿真。核心目标是让用户能够独立完成系统启动和基础问题排查,确保看板、后端服务、同步脚本和网关正常运行。文章强调环境检查的重要性,并给出具体验收标准:浏览器能访问看板页面(http://127.0.0.1:7891)和接口返回JSON数据。同时提供一键启动/停止脚本和常见问题处理建议,帮助用户快速验证部署结果。配套系列教程涵盖部署启动、使用实战、二次开发和封装版本使用等内

Mr数据杨 2904

SOFTICE 初使用

由于某些原因,需要用到SoftICE调试工具,期间经历了不少痛苦的历程.打算写出来,也算做个记录吧.我下载的Driver Studio 3.2.如果蓝屏或者你的鼠标会动不了,键盘卡住不动,请下载补丁.还有一种情况比较特殊我遇到的:键盘是PS/2 接口,而鼠标是USB接口,这时候似乎没其他的办法,只有花钱让接口统一了.SoftICE第一次调试程序当初第一次调试程序时,网上查了无数的资料,还是不得其解

zhangmiaoping23的专栏 3292

【Unity】【Pico】【VR开发】为何PICO打包后真机运行闪退

由于并没有开版权验证,而且闪退后也并没有弹框说版权问题,所以还是怀疑环境有什么地方不对。设置步骤,项目配置都没问题,Build也成功,Unity版本是符合要求的2022LTS版本,但是一在真机上运行就闪退。

每日出拳老爷子的博客 3177

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

softice使用

SoftICE for NT支持.sys驱动,而SoftICE for 9x支持.vxd驱动。但是必须先进行符号转换。     实例:      1、启动Soft-ICE for NT。      2、打开Soft-ICE的“Symbol Loader”。      3、用“File”菜单中的“Open Module ...”菜单项打开C:/DDK/LIB/I386/CHECKED/LDUNLD.

chinaplus的专栏 1455

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SoftICE使用说明(七)

   §5.7 视窗指令 指令: WR --- 切换暂存器窗 WC --- 切换/设定程式码窗之大小 WD --- 切换/设定资料窗之大小 EC --- 进入/离开程式码窗 . --- 定位目前的程式码 Soft-ICE 有三种视窗:暂存器窗、资料窗和程式码窗。这些视窗都可以随时切 换出来或关闭。资料和程式码窗可以改变其大小;暂存器窗的大小是固定的。视窗 的顺序总是固定不变。从萤幕顶端由上而下依次

Keep Go…… 929

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

怎样用softICE调试程序

前 言 ~~~~~~ 由於保护越来越强悍, 使得合法买软体的我们, 还要受到各种千奇百怪的折磨, 弟深深觉得受到侮辱。(您呢 ?) 所以小弟和朋友们不遗馀力的寻找各种好的破解工具, 并将之推荐给诸位。软体公司应当知道, 将盗版的成本转嫁给合法的使用者,

dot99的专栏 2412
上一篇: 快崩溃了,拜托csdn的blog开发组处理下!!!
下一篇: Some really weird ways of implementing firewalls on windows
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值