5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:河北
性别:先生
最后登录:2013-04-14
http://hbwazxf.5d.cn/
曾经有一个漂亮女孩追我的机会摆在我的面前,我没有去珍惜,只到现在我已经结婚了,我才后悔不已。人世间最痛苦的事莫过于此,如果上天再给我一个重新来过的机会,我会对那个女孩说几个字:"放弃我吧!"如果非要在这个选择前加一个期限,我希望是"来世再说!" "咋了哥们?"唉!被人煮了……这就是我的BLOG,欢迎大家参观访问,大家交个朋友!QQ:77356614 mail:waxz33#sohu.com
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2004/12/21 | 软件调试常见问题
类别(软件破解及黑客技术)
|
评论
(0)
|
阅读(657)
|
发表于 10:54
软件调试常见问题
工具
Q:从哪儿得到 IDA, SoftIce, Wdasm 等工具?
A:本站的资源栏目列出了相关工具站点,还有本站首页链接站点转转,一般你也能发现这些工具。
Q:哪种调试工具支持USB键盘与鼠标?
A:目前只有DriverStudio V2.6以上版本内置的SoftICE支持。因此如你想用TRW2000调试工具请再接一个串口或PS/2接口的鼠标。
Q:哪种Softice支持WindowsXP?
A:只有DriverStudio V2.7以上版本支持。
Q:哪个版本的SoftIce能运行在WinME系统?
A:SoftIce 4.05以上版本就可,然后再安装Winice Loader工具就可,安装说明。
Q:哪个版本的W32Dasm支持中文字串?
A:W32Dasm最高版本是8.93(己停止开发),其不串式参考不支持中文字符,但后来有人在这个版本基础上,推出了几个修改版本,都支持中文字串。
Q:我的Windows 2000用SoftICE 4.05老有问题
A:强烈建议Windows 2000用户不要用SoftICE 4.05,因为或多或少会出现许多不能解释的问题,建议直接用更新更强大的DriverStudio系列。
--------------------------------------------------------------------------------
一般技术问题
Q:ZIP和RAR之类密码(Word、execel等都属于这一类)能否用SOFTICE或TRW动态跟踪破解?
A:不能,WinZip和WinRAR是通过与CRC结合的方式进行加密,它们在解压的时候会不管3721先把带上用户输入的密码的CRC放进解压流程中,先解出来再说,最后才进行原始的CRC判定,如果最后得到的CRC与原来的不一样,那就是解压失败。因为CRC是不可逆推的,所以也没办法得到原始的密码,同时也因为把对比的过程放在了最后,所以才没办法用SoftICE等工具进行破解,只能穷举(目前来说)。(由于此问题太频繁,凡以后论坛出现此类帖子,各版主直接删除!)(感谢老罗详细的解释)
Q:为什么在WinNT/2000/XP系统,bpx hmemcpy断点无效?
A:hmemcpy是16 bits windows里的一个函数,全名Huge MEMory CoPY,俗称万能断点,但在一般的编程书籍上很少提到,原因它是底层的东西,没有特殊需要,一般不直接调用。它的操作很简单,只是将内存中的一块数据拷贝到另一个地方,Win9x系统里很频繁地调用它处理数据。在Win NT/2K系统上相关的函数是memcpy,但在Win NT/2K上不同于Windows 9x上,很少再调用memcpy来处理数据了,用此函数设断基本上什么也拦不住。
Q:为何同一函数有几种形式,如MessageBoxA(W)?
A:MessageBoxA(W)是MessageBoxA,MessageBoxW两种形式缩写,Windows函数是区分字符集的:A表示ANSI,W表示Wide,即Unicode (Wide character-set),前者就是通常使用的单字节方式,而后者是双字节方式,方便处理双字节字符。Win98基本是使用ANSI字符串来进行内部操作的,但它仍可处理少数Unicode字串符函数,如MessageBoxW、MessageBoxExW等。而Win2000/XP所有核心函数都是Unicode字串符。
Q:为什么SoftICE或TRW再运行一些软件时会中断跳出?
A:用命令FAULTS off关闭错误跟踪功能。
Q:F11与F12区别?
A:F11对应的命令是:G@ss:sp,假如你目前正中断在程序中,下这个指令会在堆栈的返回地址设个暂时断点并执行到此断点。
F12对应的命令是:P RET 。SoftICE或TRW将一直单步执行直到它找到一条返回语句(RET、RETF),也就是说让SoftICE一直执行代码,直到出现 RET (XXXX) 命令,再跳出来拦截,这时,当前 IP(EIP) 会是停在 RET (XXXX) 后的某一条语句上,通常是在某一个CALL XXXXXXXX 后面。
说明:F11功能键在SoftICE中有效,在TRW中可以用pmodule命令代替F11或F12,可瞬间回到到前程序领空。
Q:SoftICE与TRW2000的断点有什么不同?
A:在这里以G命令来解释,如对G 401000命令,大家都知道是执行到401000停下,但SoftICE认为是到当前段的401000停下(也就是说在当前应用程序领空),而TRW200却不管段址如何,只要EIP是401000便停下。 这样一般跟踪一软件只要G 401000便解决。这个功能看起来简单,却极为有用。有了这条命令,只要把当前跟踪到的EIP记下,下一次一G便到。而在SoftICE下,一般先用其Symbol Loader装载程序,先来到当前应用程序的领空,然后再G 401000才能到达指定地址处。其它断点命令,如bpx原理与此类似。
Q:Icedump装不成功
A:首先要确定IceDump版本要与SOFTICE的一至,如相同还不成功则把winice.dat中:
;EXP=c:windowssystemkernel32.dll
;EXP=c:windowssystemuser32.dll
2句前的‘;’去掉重起即可。
在Windows NT/2000/XP系统上类似的工具是NticeDump,具体安装参考此文。
Q:有一汇编指令:cmp dword [ebp-10],byte +01, 请问dword在这里的作用是什么呢?在这里dword [ebp-10]和[ebp-10]有什么不一样吗? 请问byte +01是一种怎么样的寻址呢?
A:在16位指令中,缺省的类型是字Word,在32位指令中,缺省的类型是双字Dword。byte +01表示方法是TRW2000中特有的,就是数字1,一个字节长。
Q:请问ASCII扩展字符(即ASCII值在080-0ff)如何输入?
A:输入时按住Alt键,然后输入ASCII的十进制码(001~255)。
Q:某一软件,用FI看到有 Win GUI *CRYPTED* 的字样
A:Win GUI只是指Windows图形应用程序,有*CRYPTED* 的字样,是FI认为该软件己加密,但不能识别出加密的类型。
Q:trw怎么抓图?
A:下命令ver keep,然后按Print Screen即将图抓取到剪帖板内,剩下的事就是找下图像处理软件粘贴上去即可。
Q:如何抓取SOFTICE中的汇编代码?
A:第一步运行SOFTICE的symbol loader快捷方式,打开菜单的“SoftICE initialisation settings”选项。将历史缓冲区(history buffer)调大些(默认为256,不能放足够多的缓冲数据)。然后切换到SOFTICE调试画面下,来到你要抓取的地方,反汇编这些代码,如:U CS:EIP L 1000 ,立即按CTRL+D返回到windows环境,再次来到symbol loader程序,选择File/Save SoftICE History As ... 。
或在SOFTICE基础下,装载icedump,用命令 ScreenDump更加方便灵活。
Q:如何抓取TRW2000中的汇编代码?
A:在TRW2000下:u 401000,402000 >myfile或 u 401000 L 100 >myfile
Q:Delphi、C++ Builder编译的软件用getwindowtext等断点拦不住?
A:这是因为Delphi通过向Edit发送WM_GETTEXT(直接调用WNDProc,而没有使用消息函数)消息来获得Text的内容的,整个过程没有调用过任何Win32 API函数。所以常用的Hmemcpy、GetDlgItemTextA、GetWindowTextA等断点失效是当然的。
那么如何才能将用户输入的字符串拷贝到软件的缓冲区中时使SoftICE中断呢?办法有多种,例如用DeDe反编译得到该事件的地址,对此地址设断拦截。
Q:今后采用密码学方面的软件会越来越多,对于一个CRACKER是否有必要因此学习大量的数论知识?
A:首先我们要明确,加密算法在软件保护中的作用是什么?
加密算法在软件保护中的作用,是防写注册机。而对其他pj方式防护能力较差。
加密算法,在很多情况下是可知的,网络安全中,可以通过阅读通信协议,来了解算法;而软件中,算法往往嵌入在程序代码中。所以基于算法保密上的安全永远是不可靠的。于是人们通过密钥 来解决这个问题。目前所有流行的算法的安全性,都是基于密钥的保密。
而对于软件来说,对称密钥算法,没有什么意义。因为密钥必须嵌入软件中。所以公开密钥(不对称密钥)算法,成为软件加密的理想选择。
对于一个普通的CRACKER包括普通的程序员,是没有必要学习大量的数论知识。因为现在现成算法函数接口很多,随便拿来用就可以,不必自己去一行一行的去写代码,只要搞清算法的加密流程就可以了。一个普通的CRACKER只要跟某段代码时,能够感觉到他大概是什么算法,然后用算法验证软件(我常用cryptool),检查一下,就可以了;而且pj软件的方法很多,比如做补丁,并不是写注册机这一种方法。理论上,软件可以在机器上正常运行所有功能一次,就是可以pj的。
当然,对于想往更高层次发展的Cracker学一些数论知识是必要的,当然我们不太可能发现某的算法的弱点,但至少可以在,某个高人,发现算法的弱点,并公开时,能看懂人家是如何实现的(这需要涉及很多理论性的东西,会涉及数论的),并能写成代码。
(zmworm 回答)
Q:REPZ MOVSD是什么意思?
A: REPZ:→相同的指令有REPE
当ZF=0,退出重复,否则(CX或ECX)←(CX或ECX)-1,并执行其后的串指令,如MOVSD
MOVSD:→同类指令MOVSB字节传送,MOVSW字传送
以双字为单位的串操作指令,由源字符串向目标字符串移动数据
REPZ MOVSD这条指令是在做数据传送,源字符串DS:SI 目标字符串ES:DI
( aboil回答)
Q:DriverStudio3.0Beta2系统启动时蓝屏.我的系统为Windows2000 Professional + SP4.
A:得打个补丁:http://www.pediy.com/tools/Debuggers/DS-SP4-patch/numega.htm
Q:RSA 算法中的MOD运算疑问?
A:mod是求余运算符。
如果x与y的积除以z所得的余数为1,即xy = 1 (mod z),则称x和y对于模数z来说互为逆元,这种互为逆元的关系用符号表示为:
x = y的-1次方 (mod z)
x的-1次方 = y (mod z)
其中,-1次方只是个逆元的表示记号而已,是仿照以前的“倒数”的表示法,并非真的就是-1次方。
17 * 593 mod (37-1)(41-1) = 1
17 * 593 mod 1440 = 1
求逆元用扩展欧基里德算法,初等数论书都有讲。
( blowfish 回答)
Q: _lopen("\\\\.\\NTICE",...) 这一句代码,“\\.\NTICE”是驱动模块吗?“\\.”在这里是什么意思?
A: \\.\表示本地计算机,\\servername\表示远程计算机。
NTICE是softice的驱动程序向Win32应用程序所显露出来的设备的符号名称。每个驱动会创建/管理一个或者多个虚拟的或者物理的设备,每个设备有个设备名,但这个设备名只能在驱动之间引用。需要显露给Win32应用程序的设备除了设备名之外,还要有一个符号名,便于Win32应用程序通过CreateFile/_lopen来引用。在驱动里面是用IoCreateSymbolicLink( )来显露设备符号名的。
( blowfish 回答)
Q:bmsg与bpmsg有什么不同?
A:bmsg与bpmsg皆为中断消息用的,不同之处是bpmsg可预设条件.设法见说明书.
硬件中断为利用CPU自身的标志寄存器设断.软件中断是软件模拟硬件产生中断.
I/O中断与硬件中断是完全不同的两个概念.I/O中断用于系统与端口通讯时.一般在硬狗时用
Q:CDQ是什么指令?
A:CDQ是符号扩展指令
D是dword(4字节),Q是qword(8字节)
CDQ把EAX寄存器中的数视为有符号的数,将其符号位(即EAX的最高位)扩展到EDX寄存器,即若EAX的最高位是1,则执行后EDX的每个位都是1,结果EDX = FFFFFFFF;若EAX的最高位是0,则执行后EDX的每个位都是0,结果EDX = 00000000。这样就把EAX中的32位带符号的数变成了EDX:EAX中的64位带符号的数,以满足64位运算指令的需要,但转换后的值没变。
( blowfish 回答)
Q:我使用XP SP1或2000SP3,安装了DriverStudio或DriverSuite 2.7 ,我设置的断点不起作用。我该怎么办?
A: 首先,下载下面链接的OSINFO.DAT文件,替换系统目录原有的。
ftp.compuware.com/pub/driverstudio/outgoing/OsInfo/OSINFO.DAT
如果问题是由于安装HOTFIX后出现的,这样操作可以减少HOTFIX的影响。
步骤如下:
1. 建立正确的针对NTOSKRNL的NMS文件,参照 "Translating system files" 中的内容(略)
2. 在Winice.dat中加入独立的一行内容:NTSYMBOLS=ON
3. 将开始时,就将Symbols加入到symbol列表中
这样就能解决你的问题了。
Q:softice如何在Windows 退出 ?
A:不能退出SOFTICE,他钩住了大量的内核函数!
内核调试器可以实现不关闭计算机停止调试器。
嚣张事情是SOFTICE根本没有为退出调试器做任何处理。。也就是说。他们的调试器不打算被大家所退出!
( kkkkk 回答)
Q:W32Dasm中的“Ord:0109h”是什么?
A:是Hint,本函数在其所驻留DLL的导出表中的索引号
( firstrose 回答)
0
评论
Comments
日志分类
首页
[651]
生活杂事
[65]
FLASH
[55]
电脑维修经验_软件技巧
[273]
网页制作
[5]
编程宝典
[15]
软件破解及黑客技术
[97]
摄影摄像相关
[73]
个人作品
[17]
LINUX专栏
[46]
健康保典
[2]
玩彩票
[3]
数据恢复
[0]