首页
社区
课程
招聘
[分享] OD2.0脚本插件: ODBGScript2 ++
发表于: 2017-4-5 14:40 9391

[分享] OD2.0脚本插件: ODBGScript2 ++

2017-4-5 14:40
9391

   在OD2.01脚本插件ODbgScript2.03(作者tpruvot等的基础上,进行了部分命令的修正和增加。在about里有ODbgScript2.03的下载地址带源码。(更新到odbgscript2.18(v8版本,建议下载此版本),传送门

1
、增加DOJS命令(==$$,我称为撸串命令,你给它一个js字符串,它还你一个精彩的js人生. DOJS丰富了原有脚本命令,如虎添翼,可以对数据源进行强大的处理。

   DOJS可以执行JavaScript语言命令(js)和计算字符串表达式,返回最后一个表达式或命令的结果给$RESULT js是面向网页编程的语言,包括前端和后端编程,相当强大,支持各类数据的处理、函数调用、控制语句、类及方法、操作本地文件等现在, DOJS带你走进js世界。参见附件范例TEST-DOJS使用。实际使用传送门
   
如: 

     --------------------------计算字符串表达式和调用js对象方法------------------------------

        DOJS   "3+4"                                    // $RESULT= 7   
        DOJS   "3+4*5-6==17"                           //$RESULT= TRUE    
        $$     "new Date().toLocaleString()"           //$RESULT= 2016
104 15:55:36  
     -----------------------------------调用自定义函数---------------------------------------   
        var    x="'do'", y="'js'"                      //提示:eval 
的替换{ }符号,更改为@ #   
        eval   "function myname(c,d){ return c+d;};myname(@x#,@y#);"   
        $$     $RESULT                                 //$RESULT= "dojs"

     ----------------------------------使用js数组和if语句------------------------------------

        eval   "var a='apple', b=[1,'apple',2,'pear']; if(a==b[1]){'yes'}else{'no'}" 

        $$     $RESULT                                  //$RESULT="yes"                 

     ----------------------------------使用do-while循环-------------------------------------- 

                  mov     j,20                                                                           // pass a var 

               eval    "var i=@j#x=3do{x=i+1;i--} while(i>5)parseInt(x,16);

               $$      $RESULT

               inc     $RESULT                                                                      //$RESULT=8

        ---------------------------------------使用for循环--------------------------------------- 

              eval    "var k=@j#for(var i=1;i<k;i++){var x=i}parseInt(x,16);"

              dojs     $RESULT                                                                     //$RESULT=19

        ------------------------------------使用while循环---------------------------------------- 

              eval    "var i=@j#, k=1; while(i>3){ i--k++}parseInt(k,16);"

              dojs    $RESULT                                                                      //$RESULT=18

      

     特别注意安全事项:因DOJS可以执行js命令,所以当然可以执行操作本地文件,比如删除、运行、复制文件,修改注册表、添加权限用户、开关机等,已亲测可行,有安全隐患。所以对于运行外来脚本时,要确认是否有恶意js命令。操作本地文件的一个例子:传送门
    
2
、增加SWITCH-CASE命令(辅助命令BREAKS,ENDSW)比较简单的匹配数字、字符或串的使用。参见附件范例TEST-SWITCH使用。如果想使用较为复杂的switch-case,请用撸串命令,见范例TEST-DOJS使用说明。
  如1:简单使用switch命令

       var      choice=2, s

       switch   choice

       default:

                tmsg      " 不匹配case,或者可以做些缺省的任务", 6.228

                breaks

       case 1:

                mov       s, " 只因为在人群中多看了你一眼 。"

                breaks

       case 2:

                mov       s, " 我就是我,是颜色不一样的烟火。"

                breaks


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-3-18 15:00 被ssarg编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (11)
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2

1、增加STRREP命令,字符串替换功能,    将原始字符串中的某些字符全部替换成另外一些字符。
2、改进#INC命令,可以以ODBGSCRIPT脚本运行的方式载入后缀为.js的文件。

3、修正VAR/ASM命令的小bug。

4、TMSG的时间改为浮点数,整数和小数不纠结了。

2017-4-5 14:49
0
雪    币: 6528
活跃值: (3459)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
能执行js,这个厉害了
2017-4-5 20:26
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
Kisesy 能执行js,这个厉害了
现在很方便了,大大扩展原有的脚本命令了。
2017-4-6 08:36
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
附件增加odbgscript2.03版的命令说明作为参考。
2017-4-6 20:38
0
雪    币: 47147
活跃值: (20495)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
感谢分享,试用一下
2017-4-6 21:49
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
kanxue 感谢分享,试用一下
欢迎试用,请下载最新版,更新了脚本界面显示,可以保持原来脚本的缩进格式,看图对比。
2017-4-7 07:11
0
雪    币: 9
活跃值: (394)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很伟大的工作
2017-4-8 14:53
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9




杨开银

很伟大的工作

过奖,不过一时兴起。若能方便使用,那就是最好的了。

2017-4-8 21:06
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
研究了一下,dojs可以运行新版es6标准的js命令了。
2017-4-11 00:11
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
1、增加ends命令,结束整个脚本,ret只有call返回作用。
2、增加大键盘的1/2/3/4快捷键,作用见正文。
2017-4-27 00:32
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
12
按照新命令,更新了一下test-switch和test-dojs两个文件
2017-4-27 16:08
0
游客
登录 | 注册 方可回帖
返回
//