首页
社区
课程
招聘
12月7日升级――OllyMachine v0.20最终版
发表于: 2004-11-15 20:37 66781

12月7日升级――OllyMachine v0.20最终版

2004-11-15 20:37
66781
收藏
免费 1
支持
分享
最新回复 (244)
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
201
CopyBytesTo是由某位隐姓埋名的朋友所提的需求,据说用来恢复stolencode有一定的效果,不过我不知道是否真的有效,因为我不懂破解...

另外诚如OllyDbg所说的,越测试将会越稳定,请大家多帮忙测测啊,找到一个bug我就解决一个,很快就能稳定的了。
2004-11-30 23:01
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
202
1.8版 以后的版本能否将 “编译”和“运行”菜单每次成功选择脚本时所打开窗口的目录位置进行记录(可记录到 OllyMachine.ini),使得编译或运行脚本时,打开的位置合理些,不用再去找OMs的脚本所在目录(现在好像都采用每次总先打开 OD 目录)。比如我都想:OllyScript的脚本为 OllyScripts 目录,OllyMachine 的脚本为 OllyMachines 目录,或别的。

1.8以后的版本在 编译时,我个人觉得,没必要去再确认 .oms的文件名,只会浪费时间去点击,要不你直跑“运行”好了,直接取与源文件相同的文件名和相同的目录就好了,反正它们是有扩展名的区别的,不是吗?

在1.7版 每当执行了 __asm 块时,都强行要求进行一次 “分析”,似乎不大好,何况如果程序比较大,分析一次会比较长,若你使用的 __asm 块比较多,岂不是 分分钟 都要 “分飞燕”(虽然空格容易“击中”,我可不想那么“激”,更何况有时分析后会面目全非,对于眼睛先前的概念 适不其反)!
*/

/*
内嵌汇编功能添加的看法:

要实现内嵌汇编要解决的问题有:
1.语法转换(基本要求,作者的爱因斯坦)
2.__asm 块运行监控(假定运行中出了异常时,是怎么办?是否报错撤消代码并halt?还是询问用户进行分支处理?还是...)
3.运行内嵌汇编前的eip是否需要恢复,恢复以何种形式最方便最少影响实现(push save_eip+ret 或jmp save_eip或还有别的)?
4.内嵌汇编运行到什么时候可认为是结束(不再需要,并可撤消代码)

本人认为(仅为愚见,可不当真),如果在后续版本加标签功能,不妨在__asm块中定义特殊的“恢复 eip 标识” @eip (放在{}内的开头,在一个 __asm 块中最多仅能只有一个 @eip,有则表示脚本在执行完 __asm 块时需要虚拟机代为修正到原来的 eip;没有,则不干此事)和“出口标识”(即执行到或遇到该标识,那么表示它下面紧接着的那1条即将被执行的指令是最后一条指令,一旦那条指令被执行了,就可以回收代码或还原代码,看看是否有必要修正 eip,没有则停下) : @exit,在一个 __asm 块中最多仅能只有一个 @exit,如果用户把 @exit 的位置放到不合理的地方,就不关 __asm 的问题了!

@eip和@exit 只是特殊标识,不算是标签,标签的定义是字母、下划线和数字...

现在OllyMachine还不支持间接寻址运算难免肯定它的实用性,比如 :mov reg01,[eax]

__asm 能否少一个下划线

最后,luocong兄弟要保重身体,看见兄弟天天升级,毅力可赞,虽然你是公认的“牛”,有时放松一下,未尝不是好事,OllyMachine 的未来还是很值得期代的...老罗的 API 太多了啊...我能全记上就好了...
2004-11-30 23:05
0
雪    币: 3814
活跃值: (4382)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
203
askformore 支持!

小罗,把waht's new 放到你的包里不成吗?每次都得让我上站点上来看看更新了什么,连你站点上都没有,郁闷。
2004-12-1 10:50
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
204
最初由 china 发布
askformore 支持!

小罗,把waht's new 放到你的包里不成吗?每次都得让我上站点上来看看更新了什么,连你站点上都没有,郁闷。


有的啊,在“历史”那里,从手册的目录可以找到的,呵呵。
2004-12-1 11:08
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
205
最初由 askformore 发布
1.8版 以后的版本能否将 “编译”和“运行”菜单每次成功选择脚本时所打开窗口的目录位置进行记录(可记录到 OllyMachine.ini),使得编译或运行脚本时,打开的位置合理些,不用再去找OMs的脚本所在目录(现在好像都采用每次总先打开 OD 目录)。比如我都想:OllyScript的脚本为 OllyScripts 目录,OllyMachine 的脚本为 OllyMachines 目录,或别的。

1.8以后的版本在 编译时,我个人觉得,没必要去再确认 .oms的文件名,只会浪费时间去点击,要不你直跑“运行”好了,直接取与源文件相同的文件名和相同的目录就好了,反正它们是有扩展名的区别的,不是吗?

在1.7版 每当执行了 __asm 块时,都强行要求进行一次 “分析”,似乎不大好,何况如果程序比较大,分析一次会比较长,若你使用的 __asm 块比较多,岂不是 分分钟 都要 “分飞燕”(虽然空格容易“击中”,我可不想那么“激”,更何况有时分析后会面目全非,对于眼睛先前的概念 适不其反)!
........


太感谢了!考虑中...有你们的支持我一定会尽量把它做好,虽然进度可能会比较慢...
2004-12-1 11:09
0
雪    币: 398
活跃值: (1078)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
206
Thank you.

最近不开发金山独霸了 ?  还是利用 业余时间 开发 OM?

你开发 OM 的目的是什么? :D
2004-12-1 12:42
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
207
最初由 simonzh2000 发布
Thank you.

最近不开发金山独霸了 ? 还是利用 业余时间 开发 OM?

开发 OM 的目的是什么?:D


1、利用业余时间。
2、我一直以来都想写个编译器(哪怕再简单也好),正好可以用OM来完成我这个心愿。;)
2004-12-1 12:51
0
雪    币: 282
活跃值: (233)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
208
OllyMachine能不能自定义变量名啊?只能是reg00-reg64吗?看起来比较累!不知说的对不对?
2004-12-1 12:59
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
209
最初由 wangli_com 发布
OllyMachine能不能自定义变量名啊?只能是reg00-reg64吗?看起来比较累!不知说的对不对?


不能自定义变量名,只能是reg00 ~ reg64,我估计也没有时间去改进这个了,很抱歉。
2004-12-1 13:02
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
210
OllyMachine 0.19版发布。

地址: http://www.luocong.com/om

更新如下:

1. 新增:一个新的输出API:
* UpdateDumpBuf

2. 新增:三个新的跟断点相关的API:
* EOBINT3
* EOBHW
* EOBMEM

说明:

1、UpdateDumpBuf是用来更新某个已经存在的dump窗口的数据的,这在分析网络封包的时候比较有用。
示例:

// Create a new dump window:
invoke PrintBufToNewDump, "New Dump Window", eip, 0x100
// Save its hwnd:
mov reg01, reg00
//...
// Update it:
invoke UpdateDumpBuf, reg01, eip, 0x200


首先用PrintBufToNewDump创建了一个dump窗口,并且保存了dump窗口的句柄,后面就可以用UpdateDumpBuf来更新这个dump窗口了。

2、三个跟断点相关的API是:EOBINT3、EOBHW、EOBMEM,它们可以用来分别对付不同的断点,举例如下:

EOBInt3 OnInt3
EOBHW OnHardware
EOBMEM OnMemory

// set hardware breakpoint:
invoke GetNextOpAddr, eip, 1
invoke bphws, reg00, 1

// ... (set other type of breakpoint)

run
halt

OnInt3:
invoke msg, "Int3 breakpoint occured!"
halt

OnHardware:
invoke msg, "Hardware breakpoint occured!"

OnMemory:
invoke msg, "Memory breakpoint occured!"
halt
2004-12-1 19:12
0
雪    币: 3814
活跃值: (4382)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
211
跟上,尽管还没开始学习使用。
2004-12-2 07:51
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
212
支持!

不过,我还是想等版本稳定下来再学。
刚习惯了osc:D

另外,就感兴趣的指令查了一下说明。WriteMemLong能否提供
类似osc的

mov [ecx], #00DEAD00BEEF00#

功能,只限制在1-4 byte不大方便。
2004-12-2 12:10
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
213
感谢楼上两位的支持,我过几天可能还会发一次0.20版,那个版本应该就是最终版了。:D
2004-12-2 12:24
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
214
最初由 softworm 发布
另外,就感兴趣的指令查了一下说明。WriteMemLong能否提供
类似osc的

mov [ecx], #00DEAD00BEEF00#

功能,只限制在1-4 byte不大方便。


收到!
2004-12-2 12:25
0
雪    币: 557
活跃值: (2303)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
215
最初由 luocong 发布
感谢楼上两位的支持,我过几天可能还会发一次0.20版,那个版本应该就是最终版了。:D

不会吧,这么快  ,v0.2就是源码共享日?:D
2004-12-2 17:46
0
雪    币: 319
活跃值: (2459)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
216
先把手册打印出来学习:D
2004-12-2 18:53
0
雪    币: 93
活跃值: (117)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
y2k
217
有个问题想请教,如果我要在程序运行到某个指定地址,满足某个指定条件后就断下,比如在0x122333处,如果eax == 2就中断,该怎么编写脚本?
我自己编了一个,但却是死循环,希望大大们帮忙改改
begin:
mov reg00,eip
cmp reg00,0x122333
jne begin
cmp eax,2
jne begin
invoke BP,eip
halt
还希望罗老大帮帮忙。
谢谢各位!
2004-12-3 15:18
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
218
试试用条件断点:

invoke BPCND, 0x122333, "eax == 2"
run
2004-12-3 15:27
0
雪    币: 93
活跃值: (117)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
y2k
219
好的,谢谢老大!
2004-12-3 16:02
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
220
最初由 tane 发布
//修正后的UPX脚本
///////////////////////////////////////////////////////////////////////////////
//
// FileName : UPX.oms
// Author : Luo Cong
........


看着别扭,改了一下:)
invoke FindOpcode, eip, 0x61
invoke Go, reg00
invoke stepovers,2

invoke InputText, "Please input filename for dump"
invoke DumpAsPE, FreeBufferReg, eip
2004-12-6 01:43
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
221
既然增加自定义变量很困难
是否可以增加一个typedef呢? :)
譬如typedef reg00 pStr
以后代码里使用pStr即可
做一个影射表,应该不会困难吧
2004-12-6 01:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
222
谢谢
2004-12-6 07:58
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
223
做了一个给editplus用的语法着色文件
附件:oms.rar[/URL]附件:oms.rar
2004-12-6 12:30
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
224
最初由 playar 发布


看着别扭,改了一下:)
invoke FindOpcode, eip, 0x61
invoke Go, reg00
........


确实是简洁多了!:D
2004-12-6 17:27
0
雪    币: 1583
活跃值: (831)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
225
最初由 playar 发布
既然增加自定义变量很困难
是否可以增加一个typedef呢? :)
譬如typedef reg00 pStr
以后代码里使用pStr即可
做一个影射表,应该不会困难吧


需要一定的时间。其实并不是在技术上做不到自定义变量的功能,而是我现在没有那么多时间去修改原来的词法和语法分析器了。
2004-12-6 17:28
0
游客
登录 | 注册 方可回帖
返回
//