REPL 90,90将会在你当前的内存位置开始连接放入两个NOP指令。
5) BP功能
在当前内存位置设置一个断点。
6) BPX功能
在指定的位置设置断点。这个位置与程序开始位置有关。
例:
如果程序的开始位置在RVA 66000h,BPX 2672就会在RVA 68672设置断点。
7) BPF功能(用标志位设断)
这个功能会检查每一次断点发生时的标志位的值是否为你所设定的值。断点的位置为
当前内存地址。
Unset/Set的内容
*******************
C * C * 进位标志。
P * P * 奇偶标志。
A * A * 辅助进位标志。
Z * Z * 零标志。
S * S * 正负号标志。
D * D * 方向标志。
O * O * 溢出标志。
你可以单独测试ONE旗标。
8) BPC功能
当经过当前位置的次数达到设定值时发生中断。
例:
BPC 15 (在第21(15h)次经过当前位置时中断)
9) BPV功能
当如果寄存器的值到达了你设定的值时中断。
例:
BPV EAX=5 (当特定位置的EAX=5时中断)。
10) MOVE功能
设置当前EIP。加一个参数值给当前EIP。但请小心使用它。其实它对于程序没有做到什么,只是当你要跳过一些CRC检查时,就要用到它了,它相当于代替一连串的NOP指令。例:
MOVE 14 就会把当前EIP变为EIP+14h。
11) POS功能
为所有的功能设置当前内存地址,这个位置与程序开始位置有关。
12) STEP功能
这个功能是设置一步一步的进行分析。它通常是用于完成跟踪dump过程的。
注意:单步模式就意味着每一行代码它都进行测试->慢!!所以设置单步模式一般
都放在最后。
13) OBJR功能
这个功能是设置以基始内存地址为开始进行扫描。对于LOOK命令有影响。
14) BPREG功能
以通过寄存器的值来设置断点。
15) WALK功能
执行下一条指令后把控件权交还ProcDump32。
16) EIP功能
设置下一个EIP为原来程序的最初进入点。
注意:
在断点之后,下一个EIP就是断点地址本身。
17) 建立外部帮助文件
通过特殊的参数创建外部文件。这个你指定的ini文件是由一些特殊的参数组成和建立的。
它包括:
. 进程的Pid。
. 所有寄存器的值包括EIP。
. 当前EIP的值
例子:
在script中:
...
L5=HELP PDHelp.Exe Helper.ini
...
你的helper的命令行会包含<Path to helper.ini>\"helper.ini"。
在helper.ini中:
[REG]
Dr0=00000000
Dr1=00000000
Dr2=00000000
Dr3=00000000
Dr6=00000000
Dr7=00000000
SegGs=00000000
SegFs=00000FDF
SegEs=00000167
SegDs=00000167
Edi=00000000
Esi=8161D244
Ebx=00000000
Edx=8161D2A4
Ecx=8161D264
Eax=0043E9B4
Ebp=00456000
Eip=00456264
SegCs=0000015F
Flags=00000216
Esp=0068FE34
SegSs=00000167
Pid=FFC1E943
Local=00456264
我想这样做可以比较灵活;)。
注意:
命令行每行不能使用超过512个字每来描述helper的EXE和INI文件的路径,这个只是ProcDump的内部限制,而对于WINDOWS API来说来说就不能超过256个字母。B) 在script中Options的格式:
*************************************
Options是通过OPTL开始的,并以DWORD形式保存的。
OPTL1=
DWORD : 设定AutoDump中的延迟时间,以ms为单位。
OPTL2=
BYTE :自动执行EIP
BYTE :忽略错误
BYTE :快速模式Dump
BYTE :外部Predump
OPTL3=
BYTE :优化PE
BYTE :自动计算程式
BYTE :跟踪API
BYTE :自动分层
OPTL4=
BYTE :未知模式
BYTE :Import表类型重建
BYTE :修复Header
BYTE :修复Relocs
OPTL5=
BYTE :保留
BYTE :保留
BYTE :检查Header
BYTE :合并代码
为得到更详细资料... 查看ProcDump Options的解释吧。
C) 如何编写你的加壳软件的定义:
*****************************************************
1) 添加索引段:
*************************
加一个Pxx的声明....注意xx的值是跟接在最后一个的值。
例如:
增加之前
[INDEX]
P1=Shrinker 3.3
P2=Wwpack32 Beta 9
P3=Wwpack32 1.0
增加之后
[INDEX]
P1=Shrinker 3.3
P2=Wwpack32 Beta 9
P3=Wwpack32 1.0
P4=My Own definition
2) 增加你的定义:
************************
每行的定义都必须事先声明,例如用Lxx。
例:
[My own definition]
L1=Look 0F,85,DB,FF,FF
L2=BP
L3=STEP
你可以在定义中多加一点默认options,添加OPTLx的方法也是这样做,如果你没有指定默认的options,ProcDump会使用常规的那些设置。作者:Ru Feng(译)
