能力值:
( LV12,RANK:980 )
|
-
-
26 楼
昨天打印了手册学习了一下,感觉功能上比OS强。只是还一时没适应过来。因为用OS形成了一种习惯。
|
能力值:
( LV12,RANK:980 )
|
-
-
27 楼
写了个记录异常次数的脚本,但执行后出现问题:
HideOD
run
aman:
eoe aman
invoke loglong,reg00
inc reg00
esto
halt
执行后在OD的LOG里看到reg00的值除了第一次记录为1,其他的记录全为00000002。无法实现++。请laoluo指教。
已解决。原来不能使用reg00的,改用reg01就可以了:D
|
能力值:
( LV13,RANK:370 )
|
-
-
28 楼
应该尽量避免使用reg00,因为reg00是用来储存API的返回值的:p
|
能力值:
( LV12,RANK:980 )
|
-
-
29 楼
ReadMemLong读取在address地址处的len个字节数据,并且储存在寄存器reg00中返回。
len 只能在1~4之间,小于1的话会被设置为1,大于4的话会被设置为4。
4个字节太小了。能不能增加?
|
能力值:
( LV13,RANK:370 )
|
-
-
30 楼
最初由 csjwaman 发布 ReadMemLong读取在address地址处的len个字节数据,并且储存在寄存器reg00中返回。 len 只能在1~4之间,小于1的话会被设置为1,大于4的话会被设置为4。
4个字节太小了。能不能增加?
已经在0.20版中新增了一条API来完成这个功能,请稍微等待几天...
|
能力值:
( LV12,RANK:730 )
|
-
-
31 楼
呵呵,我曾经有个班长叫 “x 钜聪”,很投缘的,经常有他说没我说的。不是广州人,佛山人罢了,不过都是人,不是吗:D
至于LoadFileInMem,应该申请与请求的文件一样大小,希望没有文件句柄的烦脑,一般来说不会需要太多的内存,反正如 hex编辑器一样加载文件就行了,可以考虑加入撤消此“块”的 API,但不加入也行的,反正都作“间接”应用!
我都说了,大家可以发表意见嘛!:D
|
能力值:
( LV13,RANK:370 )
|
-
-
32 楼
那好,增加一个API用来load一个文件进内存,然后返回该内存的首地址吧。我有不少同学在佛山、南海,有时间去佛山的话找你玩。
|
能力值:
(RANK:215 )
|
-
-
33 楼
|
能力值:
( LV13,RANK:370 )
|
-
-
34 楼
|
能力值:
(RANK:460 )
|
-
-
35 楼
我也打印了,不过不是80多页,而是100多页:)
拿起来厚厚的一沓,一个牛皮档案袋刚好装下。
当时打印的时候我看那个负责打印机的人脸都绿了~~~~~~~~~~~
|
能力值:
( LV13,RANK:370 )
|
-
-
36 楼
问: 如何在OllyMachine中使用间接寻址?也就是 [ ] 这种类型的寻址方式?
答:目前OllyMachine不支持间接寻址,例如 mov reg00, [reg01] 是不允许的,但是我们可以用一些小技巧来实现它:
// 先保存eax和ebx的值,因为我们要用它们来作中介 push eax push ebx
mov eax, reg01 __asm { mov ebx, [eax] } mov reg00, ebx
// 恢复eax和ebx的值 pop ebx pop eax
原理:在嵌入汇编中是支持间接寻址的,所以可以利用嵌入汇编来间接地完成这个功能。我们可以把这个功能写成一个单独的文件,然后在需要用到的时候include该文件就可以了。
|
能力值:
( LV12,RANK:980 )
|
-
-
37 楼
可是这很烦呀!最好能实现间接寻址:D
|
能力值:
( LV12,RANK:980 )
|
-
-
38 楼
1、OS脚本和OM脚本的MSG区别:
OS:msg "请先设置忽略除INT3外的所有异常,同时忽略0EEDFADF和C0000008异常!"/////运行脚本后,可以对OD进行设置,然后点确定脚本会继续执行。
OM:invoke msg,"请先设置忽略除INT3外的所有异常,同时忽略0EEDFADF和C0000008异常!"/////运行脚本后,无法对OD进行设置,OD被锁定。
能不能不锁定?
2、invoke msg,"已DUMP在c:\test.exe。请重新载入用另一脚本修复IAT。"
运行后其中的\不能完整显示。
|
能力值:
( LV13,RANK:370 )
|
-
-
39 楼
最初由 csjwaman 发布 1、OS脚本和OM脚本的MSG区别: OS:msg "请先设置忽略除INT3外的所有异常,同时忽略0EEDFADF和C0000008异常!"/////运行脚本后,可以对OD进行设置,然后点确定脚本会继续执行。
OM:invoke msg,"请先设置忽略除INT3外的所有异常,同时忽略0EEDFADF和C0000008异常!"/////运行脚本后,无法对OD进行设置,OD被锁定。
能不能不锁定?
2、invoke msg,"已DUMP在c:\test.exe。请重新载入用另一脚本修复IAT。"
运行后其中的\不能完整显示。
1、Sorry,我没看明白……
2、你用的是哪个版本的OM呢?“\”的问题确实曾经在某个版本中存在过,但0.19版应该已经没有这个bug的了。
|
能力值:
( LV12,RANK:980 )
|
-
-
40 楼
1、我的意思是在OS中调用MSG后,仍然可以激活OD窗口,对OD进行设置。而OM中调用MSG后,就无法激活OD窗口,返回到OD中进行设置了。
2、我用的是0.19的。
压缩包内是图片。 附件:a.rar
|
能力值:
( LV12,RANK:730 )
|
-
-
41 楼
忘记 了,那个load API 应该还要提供 size 的返回值,不然我们的文件头指针运算该移到什么地方才是见底:)
我觉得 asm{}
用我说过的 “特殊标识”理论上应该可行,而且是为 以后实现标签功能作准备的,引用你的话,大概意思“用户的汇编指令组织是千奇百怪的”,你所说的逻辑也有可能被拖跨,比如:
asm
{
xor eax,eax
mov ebx,eax
jmp kernel32.GetProAddress
jmp kernel32.GetProAddress //实际不是 jmp 指令也会有同样的效果
}
这样来,你的虚拟机也逻辑上不好实现,责任不知归谁,有 特殊标识 ,虚拟机只要在 标识指令(最后那个指令地址) 上设断点,断点生效时,再一个 F8 单步,就不是完事,如果不行,就说明用户安排的出口指令不合理!
还有的是如果日后支持 标签,大家会愿意写的篇幅会较长,在 标签 间跳来跳去,不像现在那样顺序乖乘地...
最后,理论归理论,实际还是实际,现实还是现实...:D
|
能力值:
( LV13,RANK:370 )
|
-
-
42 楼
最初由 csjwaman 发布 1、我的意思是在OS中调用MSG后,仍然可以激活OD窗口,对OD进行设置。而OM中调用MSG后,就无法激活OD窗口,返回到OD中进行设置了。 2、我用的是0.19的。 压缩包内是图片。附件:a.rar
1、那是因为OllyMachine中的MSG用了模态窗口,我传给MessageBox()的窗口句柄是OllyDbg本身的窗口句柄,所以就不能切换了。
2、请等我到星期一有条件再调试,现在周末我在家中,连个VC都没装……
|
能力值:
( LV13,RANK:370 )
|
-
-
43 楼
to askformore:
你说的两点我都明白了。你的建议总是一些我想不到的、可以引发我思考的东西,非常感谢!:D
|
能力值:
( LV4,RANK:50 )
|
-
-
44 楼
老罗:你答应我的增加“辅助破解”这一个功能,可现在OM的版本更新了n次也没见增加啊!期盼中......
|
能力值:
( LV13,RANK:370 )
|
-
-
45 楼
最初由 ljy3282393 发布 老罗:你答应我的增加“辅助破解”这一个功能,可现在OM的版本更新了n次也没见增加啊!期盼中......
有一个版本中新增了GetProcBegin、GetProcEnd、GetPrevProc和GetNextProc,就是用来完成你上次所说的那个功能的啊……但不知道是否实用。
|
能力值:
( LV4,RANK:50 )
|
-
-
46 楼
最初由 luocong 发布
有一个版本中新增了GetProcBegin、GetProcEnd、GetPrevProc和GetNextProc,就是用来完成你上次所说的那个功能的啊……但不知道是否实用。
能否随便举一个例子来说明应该如何使用?谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
4.5.9 InputHexLong
把用户输入的数值储存在reg00中。
如果用户按了CANCEL,则reg00的值为value原来的值。
这样的设计不好吧,如果输入值和原来reg00里的值相同,则应该如何判断是否输入数据?
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
另外有些东西,我觉得统一一下比较好
譬如mov,参数顺序是 dest, src
而有些函数的参数顺序确实src,dest...
|
能力值:
( LV12,RANK:730 )
|
-
-
49 楼
鉴于 china 的要求 “索要成品”,其实多属于这类情况,原因比较简单,这类人不喜欢劳动或是我后者所述的,出于作者文章所写所贴的关键代码是 以 汇编指令 放出来,而不是机器码串,所以他们不会愿意将 汇编指令 一条一条地 去录回到 调试器上(数量比较多或利害)再保存,那是不现实的事。如果成品很大,上传那也是很不现实的...
其实 我上传也有不便之处。记得,早段日子,我曾经提过 [建议] 一个插件,现在好像到流放到了编辑开发论坛,其目的就是能够让大家,可以在 自己 拥有同样的 对象,假设是 exe 对象,利用 OD [建议的] 插件,就可以将文章放出的 汇编指令代码 进行 一次在目的地址的 批量的 静态汇编 到 对象,从而我们还能够将成功的 批量汇编 的代码 另存为一个副本 机器码文件,永久享用。
所以,这里我想向 luocong 兄弟建议增加一个 API,批量静态汇编,类似 BatAsmInAddress 或者 BatAsmInMem,原形大概定义为这样:
BatAsmInAddress,address
{
……
}
举例:
BatAsmInAddress,address //假设现在address=643210
{
xor eax,eax
push ebx
push ecx
call 401000
je 402345
push 456780
ret
……
}
功能大概说明:
插件会 从 BatAsmInAddress API 的 address 参数指定的地址处开始,进行 批量汇编 “{}”所狼括的汇编指令,当然其实它内部是一条一条指令地去汇编,倘若遇到不能汇编的指令,就会返回-1的错误到reg00,并发出一个窗口消息指出是出错于第 n 条指令,终止继续汇编;否则全部成功汇编的,就返回值为 1。
之所以详述一番,希望能够为插件的发展 减少麻烦
当然,至于处理“挑选汇编代码”的功能,不太合适加到插件中,我正尝试写这个处理的小程序,我可是一点编程也不会的,只能试着去抄 别人的编程例子,看看能不能东抄西凑到成功,正在进行中...不知能否成功!
//playar:
另外有些东西,我觉得统一一下比较好
譬如mov,参数顺序是 dest, src
而有些函数的参数顺序确实src,dest...
是会有的,但不大要紧,何况作者是业余开发的,不过是作者保持 兼容版本脚本的原则,与 OS 的发展是刚好反的...
|
能力值:
( LV9,RANK:210 )
|
-
-
50 楼
如何修改标志位啊?
|
|
|