|
Q:ZIP和RAR之类密码能否用SOFTICE或TRW动态跟踪破解? A:不能,WinZip和WinRAR是通过与CRC结合的方式进行加密,它们在解压的时候会不管3721先把带上用户输入的密码的CRC放进解压流程中,先解出来再说,最后才进行原始的CRC判定,如果最后得到的CRC与原来的不一样,那就是解压失败。因为CRC是不可逆推的,所以也没办法得到原始的密码,同时也因为把对比的过程放在了最后,所以才没办法用SoftICE等工具进行破解,只能穷举(目前来说)。 Q:为什么在WinNT/2000/XP系统,bpxhmemcpy断点无效? A:hmemcpy是16bitswindows里的一个函数,全名HugeMEMoryCoPY,俗称万能断点,但在一般的编程书籍上很少提到,原因它是底层的东西,没有特殊需要,一般不直接调用。它的操作很简单,只是将内存中的一块数据拷贝到另一个地方,Win9x系统里很频繁地调用它处理数据。在WinNT/2K系统上相关的函数是memcpy,但在WinNT/2K上不同于Windows9x上,很少再调用memcpy来处理数据了,用此函数设断基本上什么也拦不住。 Q:为何同一函数有几种形式,如MessageBoxA(W)? A:MessageBoxA(W)是MessageBoxA,MessageBoxW两种形式缩写,Windows函数是区分字符集的:A表示ANSI,W表示Wide,即Unicode(Widecharacter-set),前者就是通常使用的单字节方式,而后者是双字节方式,方便处理双字节字符。Win98基本是使用ANSI字符串来进行内部操作的,但它仍可处理少数Unicode字串符函数,如MessageBoxW、MessageBoxExW等。而Win2000/XP所有核心函数都是Unicode字串符。 Q:有一汇编指令:cmpdword[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看到有WinGUI*CRYPTED*的字样 A:WinGUI只是指Windows图形应用程序,有*CRYPTED*的字样,是FI认为该软件己加密,但不能识别出加密的类型。 Q:Delphi、C++Builder编译的软件用getwindowtext等断点拦不住? A:这是因为Delphi通过向Edit发送WM_GETTEXT(直接调用WNDProc,而没有使用消息函数)消息来获得Text的内容的,整个过程没有调用过任何Win32API函数。所以常用的Hmemcpy、GetDlgItemTextA、GetWindowTextA等断点失效是当然的。
|