crack的常见技巧概念

1、Symbol Loader的概念
大家是否经常听说用SOFTICE或TRW2000装载某某程序,那这是什么意思呢?在SOFTICE里有一Symbol Loader快捷方式,运行后,在其菜单里打开你要调试的程序,然后按LOAD即可装载你要调试和程序。装载一文件后,将中断在这文件的主函数(即程序的入口处)。你也能通过配制 winice.dat装载中断在出口函数处。 一般用这种方法装载的目的是需要从程序的开始代码处跟踪。
TRW2000装载方法类似,在TRW2000运行窗口用Browse选中需调试的程序,然后用Loaf按钮装载。

2、利用S命令查找字符串
S命令是在在内存中搜寻特定数据,很管用,其一般格式:
S [-cu][address L length data-list]
address  :搜索的起始地址
length   :搜索的长度(字节长)
data-list :可以是一系列字节,也可以是字符串, 字符 串可以用单引号,也可以用双引号括住.
-c     :使查找区分大小写
-u     :查找Unicode 编码的字符串. 

例:S 30:0 L ffffffff 'string' 
这条命令是在整个4GB虚拟地址范围里搜寻字符串 'string'。

3、如何比较两文件的不同
一、用Wdasm反来后,用ultraedit来比较;
二、用hex workshop 3.0来直接比较两EXE;
三、你也可用补丁制作工具CodeFusion 3.0来比较两文件,具体参考补本制作一课。

4、抓取SOFTICE和TRW2000的调试画面
①SOFTICE 第一步运行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,用命令 PAGEIN N [filename]更加方便灵活。
③在TRW2000下:u 401000,402000 >myfile或 u 401000 L 100 >myfile 

5、充分利用条件中断
①在SOFTICE下: BPX <APIName> <Condition> 或 <COMMAND> DO "<COMMAND>"
如:bpx GetWindowTexta if EAX==00000008 // 当 EAX=8中断GetWindowTexta
  BPX GetWindowTexta do "x"// 当 GetWindowTexta被中断SOFTICE自动回到windows界面。
  BPX GetWindowTexta do "d EAX"// 当 GetWindowTexta被中断,自动显示EAX的值。 

②在TRW2000下: BP?? [IF (conditions)] [DO "statement"] 

特别推荐:在TRW2000 1.2版本后,支持eip条件设断。
如:g if ((byte)*eip==c2&&eip>401000&&al==ff) 
在脱壳时查找入口点时很管用。 

6、修改寄存器数据的几种方法
例:用两行指令设置EAX为1.
①XOR EAX,EAX // 设置EAX为0
 MOV EAX,00000001 //把1放到EAX
②XOR EAX,EAX // 设置EAX为0
 INC EAX // EAX加1
③PUSH 00000001 // Push 1进栈
 POP EAX // 出栈1到EAX

7、NOP指令
尽量少用NOP指令补丁原程序,除非实在必要。可用其它更好的方法代替,如:INC EAX, DEC EAX 可替代两个NOP指令等。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值