PC6下载站

分类分类

自动脱壳之Procdump中文说明书

关注+2004-10-15作者:蓝点

Procdump中文说明书  

  大家好!早两天放上了提高篇( 10 )后,大家的反应还不错,不过对于一些朋友来说, 要想用好 Procdump1.50 ,可能还有点问题,因为它的 Script 的说明书是英文的,对于英文不是 太好的朋友,这就成为一个很大的问题了。昨晚,在白菜的聊天室内,我 Ding Boy 等高手一 聊天 Ding Boy 就建议我把 Procdump1.50 的说明书翻译中文,方便广大的朋友学习和使用 Procdump1.50 ,本着我不入地狱,谁入地狱的决心,我就着手了翻译工作,由于本人的英文也 不是太好!所以在 Procdump1.50 Script 说明书的翻译过程中,难免会有一些错误的地方,同 时我的语文水平也不见得好到那里去,有时英文了解什么意思,中文也不知如何表达,所以也 难免有一些词不达意,还有一些地方,我只能根据意译的方法来完成了,因为如果一字一字的 合并起来,句子的意思可能不知它说什么。花了三个小时的时间,终于完成了,但为了有点记 念意义,就把译文放进了提高篇( 11 )当中了,希望大家喜欢!


读者要求:



你可以阅读和传播本文章,但不能对文章的内容作任何的修改,请尊重作者(译)的劳动


*********************************


ProcDump32 Script 扩展:


*********************************


  


A)  功能定义:


*************************



1) Look 功能:

  这个 Look 功能是在被载入的程序中查找指定的 HEX 字串。它会把找到了的内存地址保存下来以便你可以方便在此内存地址设置断点。


例:


   Look OF,85 将用于搜索一个 JNE 或一个长 jump 。你可以通过 BP 命令来设置断点。



2) ADD 功能:


  允许你在当前内存地址上加一个变址值(例:出现于 look 命令或 POS 命令之后)。



3) DEC 功能:



猜测;)



4) REPL 功能


  这个功能用于在当前内存中修改内码(连续的 HEX )(注:它出现在 look 命令之后)。



例:


   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 的命令行会包含 \"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 会使用常规的那些设置。


 


    
    
     
    
    
展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消