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

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

2004-11-15 20:37
65758
OllyMachine 0.20最终版发布。

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

更新如下:

1. 新增:四个新的API:
* WriteMemHexes
* ReadFileIntoMem
* VirtualAllocEx
* VirtualFreeEx

2. 新增:可以对标志位CF, PF, AF, ZF, SF, DF, OF进行操作,例如:

not cf
mov zf, 0
mov pf, 1


3. 新增:可以用别的插件调用OllyMachine,调用方式:

HMODULE hOMDll;
typedef void (__cdecl *RUNOMFILE)(const char *);
RUNOMFILE RunOMFile;

hOMDll = GetModuleHandle("OllyMachine.dll");
// Check that the other plugin is present and loaded
if (hOMDll)
{
// Get address of exported function
RunOMFile = (RUNOMFILE)GetProcAddress(hOMDll, "RunOMFile");
// Check that the other plugin exports the correct function
if (RunOMFile)
{
RunOMFile("test.oms"); // Execute script
RunOMFile("test.omb"); // Execute binary
}
}


4. 修正:在双引号中的双斜线的bug。

5. 修正:在某些算术操作中没有对OllyDbg的寄存器进行操作的bug。

说明:

1、WriteMemHexes用来写一段数据到内存中,举例:

invoke WriteMemHexes, eip, "e800000000"


2、ReadFileIntoMem用来把一个文件读入内存中,并且自动分配一段内存给它,返回内存的起始地址和文件的大小。
注意!使用完后一定要用VirtualFreeEx来释放这段内存,否则会造成内存泄漏!!!
举例:

// Read the file into the memory
// reg01 = memory starting address
// reg02 = filesize
invoke ReadFileIntoMem, "test.exe", indexof reg01, indexof reg02

// Print the file contents byte by byte
mov reg10, reg01
read_file_contents:
invoke ReadMemLong, reg10, 1
invoke PrintNum, reg00, 16
inc reg10
dec reg02
cmp reg02, 0
jne read_file_contents

// Remember to free the memory!!!
invoke VirtualFreeEx, indexof reg01

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞1
打赏
分享
最新回复 (244)
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
jingulong 5 2004-11-15 20:45
2
0
Many thanks:D :D :D
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-11-15 20:45
3
0
老罗辛苦  :D
雪    币: 2183
活跃值: (1940)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
fxyang 20 2004-11-15 20:46
4
0
好东东!
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
jingulong 5 2004-11-15 20:50
5
0
laoluo搞一个chm吧,再次感谢
雪    币: 1593
活跃值: (726)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
luocong 9 2004-11-15 20:55
6
0
最初由 jingulong 发布
laoluo搞一个chm吧,再次感谢


搞CHM太麻烦了

这份手册可能会每个版本都不一样的,因为API函数将来肯定会扩充的,等以后再弄吧,OK?

也请大家帮忙测试一下,0.10版的API我基本上是照搬了OllyScript的,少部分增加了一些我自己想到的,如果有哪些API是比较常用的请提出来,谢谢。

习惯了OllyScript的朋友可能会不喜欢:

push XXXX
push YYYY
API_Name

这样的调用方式,如果有这个疑问的话请耐心等候,我想想办法在下个版本中看能不能改进。
雪    币: 12867
活跃值: (3748)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
LOCKLOSE 2 2004-11-15 21:06
7
0
支持老罗的东东.:D
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
cyclotron 17 2004-11-15 22:20
8
0
造福万民的好东西,支持:D
雪    币: 221
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Sen 1 2004-11-15 22:28
9
0
支持老罗
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
昨天 2004-11-15 23:34
10
0
最初由 jingulong 发布
laoluo搞一个chm吧,再次感谢


呵呵,老罗的好东东要支持一下,送上CHM格式的帮助文件附件:OLLYMACHINE 帮助.rar:D
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2004-11-15 23:45
11
0
多谢!
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
wenglingok 26 2004-11-16 07:34
12
0
雪    币: 78
活跃值: (115)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
采臣·宁 1 2004-11-16 08:23
13
0
好的东西需要大家来共同参与,大家快来测试啊!
有一个疑问:为什么要多出汇编这一个步骤,直接虚拟执行不可以吗?这样做是不是考虑到和你的反病毒引擎相呼应啊
雪    币: 229
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
CoDe_Inject 2004-11-16 08:58
14
0
支持!
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
qiweixue 19 2004-11-16 09:11
15
0
支持~:D
雪    币: 513
活跃值: (2228)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
loveboom 53 2004-11-16 09:30
16
0
:D
Good,谢谢,push的方式,不是很习惯;)
建议像masm那样,用一个伪指令invoke等
雪    币: 1593
活跃值: (726)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
luocong 9 2004-11-16 09:41
17
0
最初由 采臣・宁 发布
好的东西需要大家来共同参与,大家快来测试啊!
有一个疑问:为什么要多出汇编这一个步骤,直接虚拟执行不可以吗?这样做是不是考虑到和你的反病毒引擎相呼应啊


因为可以只发布字节码啊,比如辛辛苦苦写了一个脚本,不太想公开脚本的源代码了,就可以发布一个编译好的。
雪    币: 1593
活跃值: (726)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
luocong 9 2004-11-16 09:44
18
0
最初由 loveboom 发布
:D
Good,谢谢,push的方式,不是很习惯;)


的确,这样不太方便。我会考虑一下怎么解决;)
雪    币: 1593
活跃值: (726)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
luocong 9 2004-11-16 09:45
19
0
最初由 昨天 发布


呵呵,老罗的好东东要支持一下,送上CHM格式的帮助文件附件:OLLYMACHINE 帮助.rar:D


谢谢啊,不过为什么我下载不了呢?是不是浏览器要设置点什么?
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-11-16 09:49
20
0
论坛的一个bug
附件名太长,无法下载
雪    币: 78
活跃值: (115)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
采臣·宁 1 2004-11-16 10:57
21
0
最初由 luocong 发布


因为可以只发布字节码啊,比如辛辛苦苦写了一个脚本,不太想公开脚本的源代码了,就可以发布一个编译好的。

这个想法很好啊。虽然可能没有人会这样做。对此,你能给出一个编译好的例子吗?在调用你的API的时候,字节码的定义是怎么样的?
雪    币: 1593
活跃值: (726)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
luocong 9 2004-11-16 11:47
22
0
最初由 采臣・宁 发布

这个想法很好啊。虽然可能没有人会这样做。对此,你能给出一个编译好的例子吗?在调用你的API的时候,字节码的定义是怎么样的?


好的。举个例子,比如说Hello World的源代码 HelloWorld.oms:

///////////////////////////////////////////////////////////////////////////////
//
// FileName : HelloWorld.oms
// Author : Luo Cong
// Date : 2004-11-15
// Comment : HelloWorld!!!
//
///////////////////////////////////////////////////////////////////////////////

lds reg01, "Hello World!"
push reg01
msg


我们可以在OllyMachine的菜单里面选择“Compile”,于是源代码就会被编译成HelloWorld.omb,内容是字节码(bytecode)的形式:

00000000 4F 4D 4C 43 00 0A 11 00 00 00 0D 00 00 00 16 00 OMLC............
00000010 00 00 27 00 00 00 1F 01 00 00 00 00 00 00 00 1C ..'.............
00000020 01 01 00 00 00 24 1E 48 65 6C 6C 6F 20 57 6F 72 .....$.Hello Wor
00000030 6C 64 21 00                   ld!.


以后就可以直接载入这个HelloWorld.omb来运行了,无需源代码。

这样做有两个好处:
1、编译好之后,以后运行就不需要再次执行编译的步骤,如果源文件比较大的话,可以节省一定的时间。
2、可以不发布源代码,只发布字节码文件,在运行效果上是一样的。其实就是相当于我们用C语言写好了程序并编译成EXE,但是在发布的时候只发布那个EXE文件。

其实每次载入脚本文件的时候都会先执行汇编(assemble)步骤的,把源代码编译成字节码之后才传入虚拟机执行。这套字节码的定义、以及字节码文件的格式,如果大家需要的话我找时间整理出来。
雪    币: 32406
活跃值: (18815)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2004-11-16 11:57
23
0
最初由 luocong 发布


谢谢啊,不过为什么我下载不了呢?是不是浏览器要设置点什么?


附件名最好不要用中文字出现,一般能下载的。
雪    币: 367
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
DarkNess0ut 2004-11-16 12:22
24
0
最初由 kanxue 发布


附件名最好不要用中文字出现,一般能下载的。


应该是不能加 空格,因为空格变成了?就不能下载了,用%20替代就可以
雪    币: 78
活跃值: (115)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
采臣·宁 1 2004-11-16 12:34
25
0
谢谢你的回复!有一个建议,能否把OLLYDBG的异常选项中的功能加入到OM中呢,也就是可以从OM中控制异常的过滤开关。这一点对于脱壳来说是很重要的。因为有时候我们需要用异常来判断壳的运行时。另外建议把这一主题移到插件论坛中去,这样就专业对口了,也可以增强点人气。
游客
登录 | 注册 方可回帖
返回