破解软件Software一般技术问题

  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)是MessageBoxAMessageBoxW两种形式缩写Windows是区分:A表示ANSIW表示Wide即Unicode(Widecharacter-)前者就是通常使用单字节方式而后者是双字节方式方便处理双字节Win98基本是使用ANSI串来进行内部操作但它仍可处理少数Unicode字串符如MessageBoxW、MessageBoxExW等而Win2000/XP所有核心都是Unicode字串符

  Q:有汇编指令:cmpdword[ebp-10],+01,请问dword在这里作用是什么呢?在这里dword[ebp-10]和[ebp-10]有什么不样吗?请问+01是种如何样寻址呢?

  A:在16位指令中缺省类型是字Word在32位指令中缺省类型是双字Dword+01表示思路方法是TRW2000中特有就是数字1个字节长

  Q:请问ASCII扩展(即ASCII值在080-0ff)如何输入?

  A:输入时按住Alt键然后输入ASCII十进制码(001~255)

  Q:某软件Software用FI看到有WinGUI*CRYPTED*字样

  A:WinGUI只是指Windows图形应用有*CRYPTED*字样是FI认为该软件Software己加密但不能识别出加密类型

  Q:Delphi、CBuilder编译软件Software用getwindowtext等断点拦不住?

  A:这是Delphi通过向Edit发送WM_GETTEXT(直接WNDProc而没有使用消息)消息来获得Text内容整个过程没有过任何Win32API所以常用Hmemcpy、GetDlgItemTextA、GetWindowTextA等断点失效是当然

  那么如何才能将用户输入串拷贝到软件Software缓冲区中时使SoftICE中断呢?办法有多种例如用DeDe反编译得到该事件地址对此地址设断拦截

  Q:今后采用密码学方面软件Software会越来越多,对于个CRACKER是否有必要因此学习大量数论知识?

  A:首先我们要明确加密算法在软件Software保护中作用是什么?

  加密算法在软件Software保护中作用是防写注册机而对其他pj方式防护能力较差

  加密算法在很多情况下是可知网络安全中可以通过阅读通信协议来了解算法;而软件Software中算法往往嵌入在代码中所以基于算法保密上安全永远是不可靠于是人们通过密钥来解决这个问题目前所有流行算法安全性都是基于密钥保密

  而对于软件Software来说对称密钥算法没有什么意义密钥必须嵌入软件Software中所以公开密钥(不对称密钥)算法成为软件Software加密理想选择

  对于个普通CRACKER包括普通是没有必要学习大量数论知识现在现成算法接口很多随便拿来用就可以不必自己去去写代码只要搞清算法加密流程就可以了个普通CRACKER只要跟某段代码时能够感觉到他大概是什么算法然后用算法验证软件Software(我常用cryptool)检查就可以了;而且pj软件Software思路方法很多比如做补丁并不是写注册机这种思路方法理论上软件Software可以在机器上正常运行所有功能就是可以pj

  当然对于想往更高层次发展Cracker学些数论知识是必要当然我们不太可能发现某算法弱点但至少可以在某个高人发现算法弱点并公开时能看懂人家是如何实现(这需要涉及很多理论性东西会涉及数论)并能写成代码

  (zmworm回答)

  Q:REPZMOVSD是什么意思?

  A:REPZ:→相同指令有REPE

  当ZF=0退出重复否则(CX或ECX)←(CX或ECX)-1,并执行其后串指令,如MOVSD

  MOVSD:→同类指令MOVSB字节传送,MOVSW字传送

  以双字为单位串操作指令由源串向目标串移动数据

  REPZMOVSD这条指令是在做数据传送串DS:SI目标串ES:DI 

  (aboil回答)

  Q:RSA算法中MOD运算疑问?

  A:mod是求余运算符

  如果x和y积除以z所得余数为1即xy=1(modz)则称x和y对于模数z来说互为逆元这种互为逆元关系用符号表示为:

  x=y-1次方(modz)

  x-1次方=y(modz)

  其中-1次方只是个逆元表示记号而已是仿照以前“倒数”表示法并非真就是-1次方

  17*593mod(37-1)(41-1)=1

  17*593mod1440=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自身标志寄存器设断.软件Software中断是软件Software模拟硬件产生中断.

  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:如何跟踪自动弹出IE?

  A:用ShellExcuteA设断

  Q:用正常串参考找不到相关



  A:很多串分散在内存里譬如“register”它可能做成“rgse”和“eitr”储存在两个区别单元里;倒过来存放如reg=ger

  你搜索不到“register”运行中会把它们组合SetWindowTextA来设置控制窗口中窗口文本(woow回答)

  Q:安装WKTVBDE时问题

  A:XP下Msvbvm60.dll是2004年找了个以前版本Msvbvm60.dll替换即可



Tags: 

延伸阅读

最新评论

发表评论