能力值:
( LV2,RANK:10 )
|
-
-
126 楼
偶正需要这东东
|
能力值:
( LV13,RANK:370 )
|
-
-
127 楼
OllyMachine 0.15版发布。
地址: http://www.luocong.com/om
更新如下:
1. 新增:一个新的搜索API:
* Search
2. 新增:两个新的运行API:
* StepIntoS
* StepOverS
3. 新增:五个新的辅助调试API:
* FindProcBegin
* FindProcEnd
* FindPrevProc
* FindNextProc
* FollowCall
说明:
1、StepInto和StepOver由于每次只执行一次,显得不够方便,所以新增StepIntoS和StepOverS来弥补。
例如:
invoke StepOverS, 3
相当于:
stepover stepover stepover
注意最后的“S”千万不能忘了写!
2、新增一个搜索API:Search。
Search与Find的不同之处在于,Search并不会从一个合法的Opcode的起始地址开始搜寻。例如:
004010DC 55 PUSH EBP 004010DD 8BEC MOV EBP,ESP 004010DF 6A FF PUSH -1
如果用invoke Find, eip, "EC6AFF",那么不会找到,返回-1;
如果用invoke Search, eip, "EC6AFF",那么会返回004010DE。
3、新增的五个辅助调试API可以用来找到一个函数体的起始和终止地址,有助于自动搜寻和分析程序的流程。具体的用处请自行尝试之。
|
能力值:
( LV2,RANK:10 )
|
-
-
128 楼
赶紧设顶。:)
|
能力值:
( LV9,RANK:3410 )
|
-
-
129 楼
把老罗的同系列主题合并了一下
方便大家察看
:D
|
能力值:
( LV9,RANK:290 )
|
-
-
130 楼
谢谢,更新的真快啊
|
能力值:
( LV13,RANK:370 )
|
-
-
131 楼
最初由 fly 发布 把老罗的同系列主题合并了一下 方便大家察看
:D
感谢fly!
跟大家说声对不起,现在这样几乎每天升级可能给大家带来困惑了,不过再过几个版本应该就不会像现在这样疯狂升级了...
|
能力值:
( LV12,RANK:810 )
|
-
-
132 楼
内嵌汇编问题还没有解决
|
能力值:
( LV13,RANK:370 )
|
-
-
133 楼
最初由 fxyang 发布 内嵌汇编问题还没有解决
这个功能实现起来比较困难,请容我再研究一会:(
|
能力值:
( LV2,RANK:10 )
|
-
-
134 楼
excellent plugin...i going to switch to OM when luocong fix the memory pointer problem....:)
btw...can u fix the "OllyMachine.ini" default save location in OllyDbg folder.
|
能力值:
( LV13,RANK:370 )
|
-
-
135 楼
最初由 stephenteh 发布 excellent plugin...i going to switch to OM when luocong fix the memory pointer problem....:)
btw...can u fix the "OllyMachine.ini" default save location in OllyDbg folder.
OK, i'll fix this bug.
Thank you for using OM! :D
|
能力值:
( LV12,RANK:730 )
|
-
-
136 楼
不如加个Windows系统版本检测的功能命令,看来调试时,利用该命令的返回值作判断会对调试“决策”(比如:脚本是否适用你所使用的系统?)有用的,应该不难实现吧:)
|
能力值:
( LV13,RANK:370 )
|
-
-
137 楼
最初由 askformore 发布 不如加个Windows系统版本检测的功能命令,看来调试时,利用该命令的返回值作判断会对调试“决策”(比如:脚本是否适用你所使用的系统?)有用的,应该不难实现吧:)
不难,下个版本中加入。;)
|
能力值:
( LV12,RANK:730 )
|
-
-
138 楼
最初由 luocong 发布
不难,下个版本中加入。;)
呵呵,thanks,是这样了的,举个实际例子:
在98想汇编一个 call KERNEL32.CloseHandle
asm "call KERNEL32.CloseHandle"
你会发现无法汇编
应该改为:
asm "call KERNEL32.FindCloseChangeNotification"
那就需要知道你的系统是什么才能决定用那个汇编命令等等。 还想你实现这个功能(可能不好玩):
能否实现 Ctrl+G 的功能(前往某个地址,主要实现对于是for cup的[代码窗口和内存窗口]),比方说,我们用刚写好的脚本运行补丁了某个地址,不知所补丁的代码是否写对或有遗留,想到该地址浏览核对(如果不明确核对,可能一运行就有麻烦,而且可能该地址是运算取得的,即使能输出那地址,还要复制来复制去,再Ctrl+G那地址,很烦的,是吗?)。:D
|
能力值:
( LV13,RANK:370 )
|
-
-
139 楼
最初由 askformore 发布
呵呵,thanks,是这样了的,举个实际例子: 在98想汇编一个 call KERNEL32.CloseHandle
........
没问题,很容易实现。;)
|
能力值:
( LV13,RANK:370 )
|
-
-
140 楼
OllyMachine 0.16版发布。
地址: http://www.luocong.com/om
更新如下:
1. 新增:内嵌汇编功能:__asm { }
2. 新增:三个新的API:
* IsWinNTKernel
* GotoCpuAddr
* GotoDumpAddr
说明:
1、内嵌汇编功能,必须使用以下的形式调用:
__asm { mov eax, 1 push 0 call ExitProcess }
注意事项:
1、可以使用“//”、“;”作为行注释,“/* */”作为块注释。
2、不允许使用OllyMachine的寄存器。
3、内嵌汇编也是要经过编译的,如果编译后的大小超过2046个字节,则必须把一个大的__asm{}块分开成几个小的块。
例如:
__asm { mov eax, 1 // ... // ... mov ecx, 1 }
如果编译器提示内嵌汇编经过编译后的字节数太大的话,则可以把这个大的块分成两个小块:
__asm { mov eax, 1 // ... } __asm { // ... mov ecx, 1 }
一直这样分解下去,直到编译器不出错误提示为止。
实际上2046个字节对于大多数情况来说应该已经足够了,如果不够的话我可以增加。
2、IsWinNTKernel的示例:
invoke IsWinNTKernel cmp reg00, 1 // it is NT kernel! je WinNT // ... WinNT: // ...
它的返回值:1 表示是NT内核(Windows NT/2000/XP),0 表示不是(Windows 95/98/Me)。
3、GotoCpuAddr用来跳转到反汇编窗口的address地址处。GotoDumpAddr用来跳转到Dump窗口的address地址处。示例:
invoke GotoCpuAddr, 0x401300
|
能力值:
( LV13,RANK:370 )
|
-
-
141 楼
补充一点:由于内嵌汇编的模块需要我改造原有的词法分析器以及部分语法分析器,所以在目前的内嵌汇编中有些语句是不支持的(主要是我还没写好,所以暂时屏蔽),例如:
mov eax, [ecx] mov eax, [ecx * 2]
请等待下一个版本的完善。
|
能力值:
( LV12,RANK:810 )
|
-
-
142 楼
感谢老罗!
|
能力值:
( LV13,RANK:370 )
|
-
-
143 楼
请fxyang帮忙测试一下啊!我个人感觉内嵌汇编不支持OllyMachine的寄存器,这是不够方便的,但我暂时还没想到解决的方法。另外我不知道内嵌汇编的速度够没有,也不知道有没有什么大的bug,因为这个模块真的是很难写,我研究了好几天才做了个勉强能用的模块出来,希望能尽早发现里面隐藏的bug。
|
能力值:
( LV12,RANK:810 )
|
-
-
144 楼
测试中
|
能力值:
( LV12,RANK:810 )
|
-
-
145 楼
_asm
{
PUSHAD
PUSH EDX
push 0
push 0
CALL kernel32.CreateMutexA
POPAD
jmp kernel32.OpenMutexA
}
出现如下错误:
请老罗检查看看
|
能力值:
( LV13,RANK:370 )
|
-
-
146 楼
最初由 fxyang 发布 _asm { PUSHAD PUSH EDX push 0 ........
OK,感谢测试!
我正在努力修改中...
|
能力值:
( LV12,RANK:980 )
|
-
-
147 楼
等成熟了再来用:D
|
能力值:
( LV12,RANK:810 )
|
-
-
148 楼
sorry!老罗
是我的脚本语法错误,不是内嵌汇编问题!
|
能力值:
( LV12,RANK:810 )
|
-
-
149 楼
提醒一下:
__asm {} 前面的下划线是双下划线
|
能力值:
( LV12,RANK:810 )
|
-
-
150 楼
OM如下:
HideOD
EOE exception1
invoke GetProcAddress, "OpenMutexA","kernel32.dll"
mov reg01,reg00
invoke bp reg01
eob II2I
run exception1:
mov reg05,eip
cmp eip,reg05
jb begin
esto
begin:
run
II2I:
__asm
{
PUSHAD
PUSH EDX
push 0
push 0
CALL CreateMutexA
POPAD
jmp OpenMutexA
}
//完成双进程到单进程的转换
invoke bc reg01
现在运行到了__asm的代码中,出现了这样的错误提示:
|
|
|