首页
社区
课程
招聘
[调查]OllyScript的指令扩展
发表于: 2006-5-18 14:09 5150

[调查]OllyScript的指令扩展

2006-5-18 14:09
5150
一直在看OllyScript的代码,感觉有不少改进的地方不少.
   从本能的理智角度来看,更加喜欢老罗的OM,老罗的OM是VM方式执行,如果脚本编译成了字节方式执行速度相当快,
   OllyScript是一个比较成熟脚本语言,解释执行。
   
   
   单从我们使用脚本上来说,ODS和OM没有区别,但从扩展角度来说,OM强大的多,而ODS很难做大规模扩展
   
   ODS为广大的爱好者所使用,而OM由于老罗个人追求技术至上,没有加入变量,而是给出了80多个寄存器,这样让广大的
   爱好者难以接受,因为很多人习惯了使用变量.解释执行这一工作方式决定了它的运行速度不可能达到很快,因为语法
   和词法分析是很耗费时间的,所以为什么高手喜欢到最后修复IAT和fix code的时候,喜欢潜下OD直接写汇编来计算
   的真正原因.这样也让很多入门者不知道作者是干什么.
   
   可现在作为计算机的速度很快了,不是我们玩286,386的年代了,上几个G频率的CPU对于脚本的执行速度来说不算什么了
   所以,老罗的OM这样好可没有普及开的真正原因...
   
   从使用者的角度来说,ODS还有一个很大的不足是运算指令的不足,让很多工作没法直接在ODS上完成,必须借助于
   汇编来完成,知道了算法,由于指令的不足造成的无法在ODS完成所有工作是很遗憾的.
   
   或许我想要是作者7月1号不发布新版,我扩展一下它的算术指令和逻辑运算指令,要是作者发布了新版,就当我给PEDIY
   写的一个扩展集吧,反正作者开源了...
   
   
   预备扩展的指令:
   MUL (mltiple) 乘法
   DIV (divide) 除法 (要做除0检查?还是就算了?简简单单就好)
   
   位运算指令:(C上面没有想明白怎么弄,只能内嵌ASM来实现
              大家有什么好办法?请教一下了)
   NOT     
   TEST
   SAL
   SAR
   ROL
   ROR
   
   符号位运算:
   NOT
   NRG

   我想有了这些,算法应该可以完整的在OD上实现了,不用再下潜到OD了吧,暂时先这些..
   
   我看了一下,工作量不小,不是算法的问题,由于它是解释语法判断语句的东西要加的东西太多,勉为其难了吧,看看大家是否有兴趣???

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
支持升级!~
2006-5-18 14:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最好有分配内存指令
2006-5-18 17:08
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
4
最初由 sphfy 发布
最好有分配内存指令


1.47  内含有这个命令

Alloc

ALLOC 大小
-----------
分配新的内存页, 你能读/写/执行.
Example:   
alloc 1000    (申请内存1000大小)

free $RESULT, 1000 (释放刚才申请的,大小1000)

代码原型:
bool OllyLang::DoALLOC(string args)
{
        string ops[1];

        if(!CreateOperands(args, ops, 1))
                return false;

        DWORD addr, size;
        if(GetDWOpValue(ops[0], size))
        {
                HANDLE hDbgPrc = (HANDLE) Plugingetvalue(VAL_HPROCESS);
                addr = (DWORD) VirtualAllocEx(hDbgPrc,NULL,size,MEM_RESERVE|MEM_COMMIT,PAGE_EXECUTE_READWRITE);
                variables["$RESULT"] = addr;
                //Refresh Memory Window
                //Listmemory(); //LNK ERROR, not found in .LIB
                return true;
        }
        return false;
}
2006-5-18 18:18
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
没必要搞这么多了
等明年开始过渡到64位
od就没法用了

还不如为64位的调试器做准备
2006-5-18 18:57
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
我还在用OllyScript V0.92
V1.47目前还不算稳定
2006-5-18 22:42
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
7
Originally posted by fly
我还在用OllyScript V0.92
V1.47目前还不算稳定


作者可能赶工,已经发现大量BUG,而且语句判断太少,预备发行的第一个PEDIY版本是加一些运算命令和大量排错
2006-5-19 09:06
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
8
OllyScript V0.92的原版作者SHaG很久未升级
ODbgScript V1.47的作者是Epsylon3

ODbgScript增加了一些新功能,值得试用
2006-5-19 09:58
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
9
最初由 fly 发布
OllyScript V0.92的原版作者SHaG很久未升级
ODbgScript V1.47的作者是

ODbgScript增加了一些新功能,值得试用


我现在就是在Epsylon3的基础上进行修正,作者框架搭的不错,就是太赶工了,估计没有认真排错和测试人员太少就发行,比如很多的函数声明有问题,字符串操作上互相矛盾,所有大家会感觉使用1.47版本特别别扭..
2006-5-19 10:34
0
雪    币: 208
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这是造福大家的事!
强烈支持!和羡慕你的能力!!
2006-5-19 15:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ODbgScript1.47的mov [******],#********.....****#这个有问题。如果后面的字节太多,会出错
2006-5-20 08:11
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
12
最初由 sphfy 发布
ODbgScript1.47的mov [******],#********.....****#这个有问题。如果后面的字节太多,会出错


好的,我把缓冲区开大点,谢谢提供BUG报告.
2006-5-20 09:46
0
游客
登录 | 注册 方可回帖
返回
//