欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

脚本1已经改进.

脚本1已经改进.

附件中的脚本1是个手动版,现已经改进为自动版了,即运行后就出现6个准确断点,脚本如下:
    //Themida 1.9.1.0的断点设置脚本(改进版)
data:
                var memory
                var csize
                var tmp
                var temp
  var tmpbp
  var mem
  var mem0
                var mem1
  var mem2
  var mem3
   var mem4
  var mem5
  var Str0
  var Str3
  var Str4
  var Str5
  var Str1
                var Str2
star:
                gmi eip,CODEBASE
                mov  memory,$RESULT
                gmi eip,CODESIZE
  mov csize,$RESULT
                add csize,memory  
  find memory,#0000000000000000000000000000000000000000000000#
  mov tmp,$RESULT
  bphws tmp,"w"
        esto
  esto
  esto
  bphwc tmp
  sto
  find memory,#0000000000000000000000000000000000000000000000#
  mov tmp,$RESULT
                sub csize,tmp
                find memory,#909090909090909090909090909090909090#
  mov temp,$RESULT+8
  bphws temp,"w"
  mov  tmpbp,eip
  run
  cmp  eip,tmpbp+2
                jnz  next
                run
  next:
  bphwc
                mov  Str0,"断点地址:"
                add  Str0,#0D0A#
  mov  mem,eip
  mov  mem4,eip           //eip=Addr_4
  itoa eip
  mov  Str4,"Addr_4="
                add  Str4,$RESULT
                add  Str4,#0A0D#
                find mem4,#83BD????????000F8497000000#
                mov  mem5,$RESULT       //Addr_5
                itoa mem5 
                mov  Str5,"Addr_5="
                add  Str5,$RESULT 
                sub  mem,4000 
  find mem,#83BD????????640F82??020000#
                mov  mem0,$RESULT+7    //Addr_0
                itoa mem0
                add  Str0,"Addr_0="
                add  Str0,$RESULT 
                add  Str0,#0D0A#
                find mem0,#C1C003#
                find $RESULT,#0385????7409#,40
                mov  mem3,$RESULT+6   //Addr_3
                itoa mem3
                mov  Str3,"Addr_3="
                add  Str3,$RESULT 
                add  Str3,#0D0A#
findon:
  find mem0,#AD#       //从Addr_0开始查找
           cmp  $RESULT,0
                jz   stop
                mov  mem0,$RESULT
  find mem0,#01C8#,40
                cmp  $RESULT,0     
  jnz  findoff
                add  mem0,40
                cmp  mem0,mem5
                ja   stop            //超过Addr_5后停止
           jmp  findon
findoff:
                bp   $RESULT
                add  mem0,40
                itoa $RESULT
                jmp  findon
stop: 
                run
@1:
               sti
               gn   eax
               cmp  $RESULT,0
               jz  @1      
               itoa eip
               mov  Str1,"Addr_1="
               add  Str1,$RESULT
               add  Str1,#0D0A#
               bpwm tmp,csize
               run
@3:
               sti
               cmp [eax],ecx
               jnz @3
               itoa eip
               mov  Str2,"Addr_2="
               add  Str2,$RESULT
               add  Str2,#0A0D#
               add  Str0,Str1
               add  Str0,Str2
               add  Str0,Str3
               add  Str0,Str4
               add  Str0,Str5
               msg  Str0
               pause

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功