当前位置:文档之家› OD快捷键

OD快捷键

OD快捷键
OD快捷键

OD快捷键使用大全。非常详细(游戏逆向分析必看)

分类:反汇编 2013-01-19 01:05 2713人阅读评论(0) 收藏举报

快捷键

无论当前的OllyDbg窗口是什么,这些快捷键均有效:

Ctrl+F2 - 重启程序,即重新启动被调试程序。如果当前没有调试的程序,OllyDbg会运行历史列表[history

list]中的第一个程序。程序重启后,将会删除所有内存断点和硬件断点。

译者注:从实际使用效果看,硬件断点在程序重启后并没有移除。

Alt+F2 - 关闭,即关闭被调试程序。如果程序仍在运行,会弹出一个提示信息,询问您是否要关闭程序。

F3 - 弹出“打开32位.EXE文件”对话框[Open 32-bit .EXE file],您可以选择可执行文件,并可以输入运行参数。

Alt+F5 -

让OllyDbg总在最前面。如果被调试程序在某个断点处发生中断,而这时调试程序弹出一个总在最前面的窗口(一般为模式消息或模式对话框[modal message

or dialog]),它可能会遮住OllyDbg的一部分,但是我们又不能移动最小化这个窗口。激活OllyDbg(比如按任务栏上的标签)并按

Alt+F5,OllyDbg将设置成总在最前面,会反过来遮住刚才那个窗口。如果您再按一下Alt+F5,OllyDbg会恢复到正常状态。

OllyDbg是否处于总在最前面状态,将会保存,在下一次调试时依然有效。当前是否处于总在最前面状态,会显示在状态栏中。

F7 -

单步步入到下一条命令,如果当前命令是一个函数[Call],则会停在这个函数体的第一条命令上。如果当前命令是是含有REP前缀,则只执行一次重复操作。

Shift+F7 -

与F7相同,但是如果被调试程序发生异常而中止,调试器会首先尝试步入被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。

Ctrl+F7 -

自动步入,在所有的函数调用中一条一条地执行命令(就像您按住F7键不放一样,只是更快一些)。当您执行其他一些单步命令,或者程序到达断点,或者发生异常时,自动步入过程都会停止。每次单步步入,OllyDbg都会更新所有的窗口。所以为了提高自动步入的速度,请您关闭不必要成窗口,对于保留的窗口最好尽量的小。按Esc键,可以停止自动步入。

F8 -

单步步过到下一条命令。如果当前命令是一个函数,则一次执行完这个函数(除非这个函数内部包含断点,或发生了异常)。如果当前命令是含有REP前缀,则会执行完重复操作,并停在下一条命令上。

Shift+F8 -

与F8相同,但是如果被调试程序发生异常而中止,调试器会首先尝试步过被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。

Ctrl+F8 -

自动步过,一条一条的执行命令,但并不进入函数调用内部(就像您按住F8键不放一样,只是更快一些)。当您执行其他一些单步命令,或者程序到达断点,或者发生异常时,自动步过过程都会停止。每次单步步过,OllyDbg都会更新所有的窗口。所以为了提高自动步过的速度,请您关闭不必要成窗口,对于保留的窗口最好尽量的小。按Esc键,可以停止自动步过。

F9 - 让程序继续执行。

Shift+F9 -

与F9相同,但是如果被调试程序发生异常而中止,调试器会首先尝试执行被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。

Ctrl+F9 -

执行直到返回,跟踪程序直到遇到返回,在此期间不进入子函数也不更新CPU

数据。因为程序是一条一条命令执行的,所以速度可能会慢一些。按Esc键,可以停止跟踪。

Alt+F9 -

执行直到返回到用户代码段,跟踪程序直到指令所属于的模块不在系统目录中,在此期间不进入子函数也不更新CPU数据。因为程序是一条一条执行的,所以速度可能会慢一些。按Esc键,可以停止跟踪。

Ctrl+F11

-Run跟踪步入,一条一条执行命令,进入每个子函数调用,并把寄存器的信息加入到Run跟踪的存储数据中。Run跟踪不会同步更新CPU窗口。

F12 - 停止程序执行,同时暂停被调试程序的所有线程。请不要手动恢复线程运行,最好使用继续执行快捷键或菜单选项(像 F9)。

Ctrl+F12 - Run跟踪

步过,一条一条执行命令,但是不进入子函数调用,,并把寄存器的信息加入到Run跟踪的存储数据中。Run跟踪不会同步更新CPU窗口。

Esc - 如果当前处于自动运行或跟踪状态,则停止自动运行或跟踪;如果CPU

显示的是跟踪数据,则显示真实数据。

Alt+B - 显示断点窗口。在这个窗口中,您可以编辑、删除、或跟进到断点处。Alt+C - 显示CPU窗口。

Alt+E - 显示模块列表[list of modules]。

Alt+K - 显示调用栈[Call stack]窗口。

Alt+L - 显示日志窗口。

Alt+M - 显示内存窗口。

Alt+O - 显示选项对话框[Options dialog]

Ctrl+P - 显示补丁窗口。

Ctrl+T - 打开暂停 Run跟踪对话框

Alt+X - 关闭 OllyDbg。

大多数窗口都支持以下的键盘命令:

Alt+F3 - 关闭当前窗口。

c.&vWmLSGE

Ctrl+F4 - 关闭当前窗口。

F5 - 最大化当前窗口或将当前窗口大小改为正常化。F6 - 切换到下一个窗口。

Shift+F6 - 切换到前一个窗口。

F10 - 打开与当前窗口或面板相关的快捷菜单。

左方向键 - 显示窗口左方一个字节宽度的内容。

Ctrl+左方向键 - 显示窗口左方一栏的内容。

右方向键 - 显示窗口右方一个字节宽度的内容

Ctrl+右方向键 - 显示窗口右方一栏的内容

反汇编窗口中的快捷键[Disassembler shortcuts]

当CPU窗口中的反汇编面板[Disassembler pane]处于激活状态时,您可以使用以下快捷键:

回车键 - 将选中的命令添加到命令历史[command history]中,如果当前命令是一个跳转、函数或者是转换表的一个部分,则进入到目的地址。

退格键 - 移除选中部分的自动分析信息。如果分析器将代码误识别为数据,这个快捷键就非常有用。请参考解码提示[decoding hints].

Alt+退格键 - 撤消所选部分的修改,以备份数据的相应内容替换所选部分。仅当备份数据存在且与所选部分不同时可用。

Ctrl+F1 -如果API帮助文件已经选择,将打开与首个选择行内的符号名相关联的帮助主题。

F2 -在首个选择的命令上开关INT3 断点[Breakpoint],也可以双击该行第二列。

Shift+F2 -在首个选择命令设置条件断点,参见忽略Kernel32中内存访问异常[Ignore memory access violations

in Kernel32]。

F4

-执行到所选行,在首个选择的命令上设置一次性断点,然后继续执行调试程序,直到OllyDbg捕获到异常或者停止在该断点上。在程序执行到该命令之前,该一次性断点一直有效。如有必要,可在断点窗口[Breakpoints

window]中删除它。

Shift+F4 -设置记录断点(一种条件断点,当条件满足时一些表达式的值会记录下来),详情参见断点[Breakpoint]。

Ctrl+F5 -打开与首个选择的命令相对应的源文件。

Alt+F7 -转到上一个找到的参考。

Alt+F8 -转到下一个找到参考。

Ctrl+A -分析当前模块的代码段。

Ctrl+B - 开始二进制搜索。

Ctrl+C -复制所选内容到剪贴板。复制时会简单地按列宽截断不可见内容,如果希望排除不需要的列,可把这些列的宽度调整到最小。

Ctrl+E -以二进制(十六进制)格式编辑所选内容。

Ctrl+F -开始命令搜索。

Ctrl+G -转到某地址。该命令将弹出输入地址或表达式的窗口。该命令不会修改EIP。

Ctrl+J -列出所有的涉及到该位置的调用和跳转,在您用这个功能之前,您必须使用分析代码功能。

Ctrl+K - 查看与当前函数相关的调用树[Call tree]。在您用这个功能之前,您必须使用分析代码功能。

Ctrl+L - 搜索下一个,重复上一次的搜索内容。

Ctrl+N - 打开当前模块的名称(标签)列表。

Ctrl+O -

扫描object文件。扫描Object文件。该命令会显示扫描Object文件对话框,您可以在该对话框中选择Object文件或者lib文件,并扫描这个文件,试图找到在实际代码段中用到的目标模块。

Ctrl+R

-搜索所选命令的参考。该命令扫描激活模块的全部可执行代码,以找到涉及到首个选中的命令的全部相关参考(包括:常量、跳转及调用),您可以在参考中使用快捷键

Alt+F7 和 Alt+F8来浏览这些参考。为便于您使用,被参考的命令也包含在该

列表中。

Ctrl+S -命令搜索。该命令显示命令查找[Find command]对话框供您输入汇编命令,并从当前命令开始搜索。

星号[Asterisk](*) -转到原始位置(激活线程的EIP处)。

Ctrl+星号(*) - 指定新的起始位置,设置当前所选线程的EIP为首个选择字节的地址。您可以在选择EIP并撤消该操作。

加号[Plus](+) -如果run跟踪[run trace]没有激活,则根据命令历史[command history]跳到下一条运行过命令的地方;否则跳到Run跟踪的下一个记录。

Ctrl+加号 - 跳到前一个函数开始处。(注意只是跳到,并不执行)

减号[Minus](-) - 如果run跟踪[run trace]没有激活,则根据命令历史[command

history]跳到前一条运行过命令的地方;否则跳到Run跟踪的前一个记录。

Ctrl+减号 - 跳到下一个函数开始处。(注意只是跳到,并不执行)

空格[Space] -

修改命令。您可在显示对话框中以汇编语言修改实际指令或输入新指令,这些指令将替换实际代码,您也可以在想要修改的指令处双击鼠标。

冒号[Colon]( - 添加标签。显示添加标签窗口[Add label]或修改标签窗口[Change

label],您可在此输入与首个选择的命令中的第一个字节相关联的标签(符号名)。注意,在多种编程语言中,冒号可以是标签的一部分。

分号[Semicolon](;) - 添加注释[comment]。显示添加注释窗口[Add label]或修改注释窗口[Change

label],您可在此输入与首条所选命令的第一个字节相关联的注释(注释串会显示在最后一列中)。注意,多种汇编语言使用分号作为注释开始。您也可以在注释列双击需要注释的命令行。

命令行插件支持的命令

CALC

判断表达式

WATCH

添加监视表达式

AT

在指定地址进行反汇编

FOLLOW

跟随命令

ORIG

反汇编于 EIP

DUMP

在指定地址进行转存

DA

转存为反汇编代码

DB

使用十六进制字节格式转存DC

使用 ASCII 格式转存

DD

转存在堆栈格式

DU

转存在 UNICODE 格式

DW

使用十六进制字词格式转存STK

(AS + 地址 + 字符串)

在指定地址进行汇编

BP

进行条件中断(有条件的断点)BPX

中断在全部调用(Call)

BPD

清除全部调用中的断点

BC

清除断点

MR

内存断点于访问时

MW

内存断点于写入时

MD

清除内存断点

HR

访问时进行硬件中断

写入时进行硬件中断HE

执行时进行硬件中断HD

清除硬件断点STOP

停止运行程序调试PAUSE

暂停执行程序调试RUN

运行程序进行调试GE

运行和通过例外

SI

单步进入 Call 中SO

步过 Call

TI

跟踪进入直到地址

跟踪步过直到地址

TC

跟踪进入直到满足条件TOC

跟踪步过直到满足条件TR

运行直到返回

TU

运行直到用户代码LOG

查看记录窗口

MOD

查看模块窗口

MEM

查看内存窗口

CPU

查看 CPU 窗口

CS

查看 Call 堆栈

BRK

查看断点窗口

OPT

打开选项设置窗口EXIT

退出 OllyDbg

QUIT

退出 OllyDbg OPEN

打开一个可执行文件CLOSE

关闭可执行文件

RST

重新运行当前程序HELP

查看 API 函数的帮助

OD菜鸟的福音(经典讲解CALL的找法)

详细教程 目录 第一章概述 (1) 第二章组件 (5) 一、一般原理[General prnciples] (5) 二、反汇编器[Disassembler] (8) 三、分析器[Analysis] (9) 四、Object扫描器[Object scanner] (12) 五、Implib扫描器[Implib scanner] (12) 第三章 OllyDbg的使用 (13) 一、如何开始调试[How to start debugging session] (13) 二、CPU 窗口[CPU window] (14) 三、断点[Breakpoints] (14) 四、数据窗口[Dump] (15) 五、可执行模块窗口[Executable modules window] (16) 六、内存映射窗口[Memory map window] (17) 七、监视与监察器[Watches and inspectors] (19) 八、线程[Threads] (19) 九、调用栈[Call stack] (20) 十、调用树[Call tree] (21) 十一、选项[Options] (21) 十二、搜索[Search] (22) 十三、自解压文件[Self—extracting (SFX) files] (22) 十四、单步执行与自动执行[Step—by—step execution and animation] (23) 十五、Hit跟踪[Hit trace] (23) 十六、Run 跟踪[Run trace] (24) 十七、快捷键 (26) 十八、插件[Plugins] (29) 十九、技巧提示[Tips and tricks] (29) 第四章其他功能 (30) 一、调试独立的DLL[Debugging of stand—alone DLLs] (30) 二、解码提示[Decoding hints] (32) 三、表达式赋值[Evaluation of expressions] (32) 四、自定义函数描述[Custom function descriptions] (34)

TRANSCAD使用技巧(od表、id转换、合并分区)

TC使用技巧 目录 1、转换id:选中质心连接点id (1) 2、连接数据 (2) 3、调整主题图 (3) 4、TransCAD中建立交通小区的两种方法 (6) 5、TransCAD直接导入OD矩阵的方法 (7) 6、tc分配结果另存为dbf文件可以用excel直接打开 (10) 7、小区合并大区 (10) 1、转换ID:选中质心连接点ID 转换出效果如下 1

2、连接数据 先将一组dataview另存为bin格式,然后用tc打开bin ,点击或是dataview中的jion,如下图: 点ok出如下结果: 2

选中index实验填充小区实际编号,,6、矩阵对角线清零 3、调整主题图 点弹出以下对话框,点styles 3

质心输出 1、在学习TransCAD之前,先来认识几个文件格式: (1)dbd:保存点、线、面层的数据;(2)map:地图文件,编辑完dbd后,生成map;(3)bin:表格数据,存储一般表格形式的数据,编辑完bin后,若想保存,出来dvw格式的文件,表示普通数据表的外观;(4)mtx:矩阵文件,一般用来表示OD数据之类的,若想创建矩阵文件,需打开创建好的bin文件或者map文件,因为这是基于bin、map创建的。 4

2、使用该软件之前,最好进行一些设置:edit-preferences,包括地图精度,存放位置之类的,改成中国的习惯 3、创建面类型文件:new-geographic file-area geographic file,然后进行设置面类型文件的字段 4、点击“铅笔+方格”快捷菜单,可进行面的绘制之类的操作,“i”可进行面(小区)的信息扩展 5、如果修改面的类型,可点击“类似三层图层”的那个快捷菜单 6、修改字段的话,可点击dadaview-modify table,前提条件是:表格数据并没有和面文件join,joinzai dataview菜单下 7、创建表格文件时,基本上是在“edit”菜单下进行操作,增加记录,删除记录,等 8、建立矩阵文件的前提是打开创建好的bin文件或者地图文件。将外部的OD数据导入到建好的矩阵文件中,直行matrix-inport,填写好对应的字段即可。当然也可从矩阵文件中进行数据的导出,方便进行编辑 9、制作期望线:直行tools-geographic analysis-desire lines,将字段一一对应,就制作好了期望线,期望线直观的显示小区之间出行分布量的大小。宽度代表了量的大小。如果修改期望线的线条之类的,可直接点击“有三个星星”的快捷菜单。 交通需求预测建模即传统的“四阶段法”---出行产生,出行分布,方式划分,交通分配。 1)建设项目交通需求预测主要包括目标年背景交通量预测和拟建项目新增交通量预测两方面。目标年交通量即为背景交通量与拟建项目新增交通量之和。 5

OD使用方法

壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种 UPX ASPCAK TELOCK PELITE NSPACK ... ARMADILLO ASPROTECT ACPROTECT EPE SVKP ... 顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。当然加密壳的保护能力要强得多! 二、常见脱壳方法 预备知识 1.PUSHAD (压栈)代表程序的入口点, 2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近 3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。 方法一:单步跟踪法 1.用OD载入,点“不分析代码!” 2.单步向下跟踪F8,实现向下的跳。也就是说向上的跳不让其实现!(通过F4) 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选) 4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现! 5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP 6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入 7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。 Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。一般情况下可以轻松到达OEP! 方法二:ESP定律法 ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!) 1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) 2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车! 3.选中下断的地址,断点--->硬件访--->WORD断点。 4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。 方法三:内存镜像法 1:用OD打开软件! 2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序! 3:按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE(也就是00401000处),按F2下断点!然后按SHIFT+F9(或者是在没异常情况下按F9),直接到达程序OEP! 方法四:一步到达OEP 1.开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX,ASPACK壳),然后按下F2,F9运

OD里SHIFT+F4条件断点用法篇

致菜鸟: OD里SHIFT+F4条件断点用法篇 发帖人:pjb 时间: 2005-08-24 20:25 原文链接:https://www.doczj.com/doc/143961860.html,/showthread.php?threadid=16494 高手就不必看了~,若有错误的地方请指正! 先说一点ALT+L 看记录~ 在某条语句上按了SHIFT+F4后出现了个对话框, 1)第一行是"条件": 要输入的肯定是你感兴趣的条件啦,比如说下面的俩句 0041150 push eax 0041151 call [TranslateMessage] 你在0041150处下条件记录中断,假如这时候你要是想知道ESI等不等于0,那就可以设置条件ESI==0 或ESI!=0 反正是关于ESI的条件了而不是只能利用这行的EAX. 当然一样可以在0041150处下断追消息,比如说你想知道按了鼠标移动消息,那么就设置MSG==WM_ MOUSEMOVE 或是MSG==0200(移动的数字代码). 有人该问了,消息记录好象应该在下一行有函数的下断才正确吧? 其实不一定非要在传递消息的那行0041151下断的,但在那行下断的好处是可以记录到函数参数,这在下面会讲到~

"条件"这的书写是按照MASM32汇编的形式书写的,比如== != > < 2)"说明"="表达" "解码表达式的值" "说明"就是个注释啦,添不添无所谓了,除非你下的记录中断比较多,这样在记录里能看的明白~ "表达"其实就是我们记录的核心啦,程序在我们第1小条里的"条件"为真的时候,就会记录我们在"表达"里填的内容,比如说ESI==0的时候,我们记录[eax+4]的值 反正是你感兴趣的内容啦,若是想记录消息就添MSG 啦,很多时候我们只添了"条件"而没有添"表达",程序中断后就会显示"未知的函数或标识符!",这就是原因了. 至于下面的"解码表达式的值"你可以随便选了,他不过是把记录后的数据又分析了一下, 比如说我们记录了[eax+4]的值是201 ,那么当你选" 信息代码(WM_XXX)"的时候那么你在记录(ALT+L看记录)里看到的就是被分析成了201 WM_LBUTTONDOWN 当你选"布尔数值",那么记录里数值201后面就会跟个TRUE了,其实就是OD对这个数据按照我们选择的类型又进行了一次分析而已~~ 3)暂停程序=> 永不条件满足时永远 这三个选择就是条件为真记录表达的时候程序暂不暂停程序,那就看你调试的需要了~ 4)记录表达式的值=> 永不条件满足时永远 呵呵,要是选"永不",那么我们设立记录"表达"还有啥意义啊, 若是选"永远",那么条件似乎不就没意义了,因为记录的时候已经不管条件了,只要运行到这就记录表达.不过好象也可以利用的,自己去想想啦..我不说. 一般都是选"条件满足"啦. 5)记录函数参数=> 永不条件满足时永远 这个要是你下在没函数的那行,那么这行就变灰了~~ 记录函数的参数很有意义啊,直接可以看到很多信息,我们比如说在有函数的那行下条件记录."条件"是EAX==0 "表达"是[EAX+ 4],然后在这选择记录函数参数在"条件满足时";当然你若只想记录运行到此处的函数参数,那么就空着" 条件"和"表达"吧,同时3)和4)的选择也要变为"永不"了...也许你在记录了啥也看不到,因为运行到这行可能EAX总不=0 ,那么好换换EAX>0 ,好象看了到一堆,然后还有P MSG=XXXX Hw=XXXX,这就是运行到这里这个函数的参数啦~~ 我们也可以记录CREA TFILEA 函数,那么就知道都打开什么文件了~~

OD管理中的“六定”操作

OD管理中的“六定”操作 定责、定岗、定编、定额、定员、定薪(以下简称“六定”),对于企业而言,设计出企业发展需求的组织系统,首先要理解人力资源管理系统的基础依据。很多HR承担了这项任务,却还没有系统学习定岗定编定责定额定员定薪的理论和实践,更不具备组织设计能力,导致HR苦于事务操作,却没有任何建树。 概念 定责定责是指在明确组织目标,对组织目标进行设定、分解,并进行系统的岗位分析的基础上,对部门职能和岗位职责进行分解和设计,达到各部门与各岗位职责明晰、高效分工与协作,最终制作出部门职责说明书、岗位职责说明书的过程。 定岗合理、顺畅、高效的组织结构是企业快速有序运行的基础,其中岗位是企业组织结构中最基本的功能单位。定岗就是在生产组织合理设计以及劳动组织科学化的基础上,从空间上和时间上科学地界定各个工作岗位的分工与协作关系,并明确地规定各个岗位的职责范围、人员的素质要求、工作程序和任务总量。因事设岗是岗位设置的基本原则。(因人设岗是最低级的错误) 定编广义的定编是指国家机关、企事业单位、社会团体及其他工作单位中,各类组织机构的设置以及人员数量定额、结构和职务的配置。编制包括机构编制和人员编制两部分,这里研究的是对工作组织中各类岗位的数量、职务的分配,以及人员的数量及其结构所作的统一规定的人员编制。 定编就是在定责、定岗的基础上,对各种职能部门和业务机构的合理布局和设置的过程。定编为企业制订生产经营计划和人事调配提供了依据,有利于企业不断优化组织结构,提高劳动效率。 定额定额是在规范的劳动组织,合理地使用材料、机械、设备的条件下,预先规定完成单位合格产品所消耗的资源数量的标准,它反映的是在一定时期的社会生产力水平的高低。在企业中实行劳动定额的人员约占全体员工的40%~50%左右,企业可以工时定额等数据为依据,核定出这些有定额人员的定员人数。 定员定员是在一定生产技术组织的条件下,为保证企业生产经营活动正常进行,按照工作任务所需的一定素质要求,对企业配备各类人员所预先规定的限额。

OD使用说明书

一、下边是几个通用的按钮 1、:重新运行程序(重复上次运行的程序,快捷键:ctrl+F2)。 2、:关闭当前正在运行的程序。(快捷键:Alt+F2) 3、:运行程序,(快捷键:F9) 4、:暂停执行,(快捷键:F12) 5、:单步步入,意思就是:当遇到call时,就进入call的内部(快捷键:F7) 6、:单步步过,意思就是:当遇到call时,就跳过call得内部,直接运行完call,然后执行下条语句。(快捷键:F8) 7、:跟踪步入,意思跟F9基本一样,步过就是遇到call就进入,这个按钮几乎不用(快捷键:ctrl+f11) 8、:跟踪步过,同上,区别是遇到call就跳过了,同样也几乎不用(快捷键:ctrl+f12) 9、:执行到返回,意思是执行某段代码后返回执行前的位置,(是在设置断点后才用的,)(快捷键:ctrl+f9) 10、:是跳转到某一内存地址,在弹出的对话框里输入地址,然后就跳到你想要看的地址,但程序没有被执行,只是用来查看的功能。 二、后便的蓝色按钮(功能不是很经常用) 1、:是用来查看记录的,(程序被载入后,调用的系统DLL和一些函数) 2、:是用来显示模块窗口,告诉我们有多少个模块,和模块在机器的位置 3、:是用来显示内存窗口的,一般是在脱壳的时候用到的内存脱壳方法,在这里设断点, 4、:是用来显示线程的, 5、:是用来显示句柄的, 6、:是用来显示当前程序运行的位置的,点击后就会跑到程序当前的位置,(功能就是:当你查看其他模块的代码,然后点一下,就会跑回原来的地方, ) 前边的黑色就代表了程序已经运行到0100645C了,每次点击就会跑到当前运行的位置。这个按钮主要为了提供用户方便,快速的回到当前位置。 7、:这个是用来查看当前有多少个断点,在这里也可以取消断点。(这个按钮和C经常会用到) 三、在反汇编窗口的右键功能 经常用到的功能有(一级目录):二进制、汇编、断点、数据窗口跟随、查找、复制到可执行文件、ultra string reference. 1、二进制:主要用来复制语句的,同时也可以清空选中的语句(即在2级目录里的NOP) 2、汇编:主要用来修改语句的 3、断点:主要用来设置断点,一般情况都是在比较有用的信息上设断点,(如:发现某个 关键的ascii值时,一般都是在后边的注释里,能够看到的) 4、数据窗口跟随:一般情况都是在2级目录里选第二个,然后你就会发现在数据窗口发现 你想要的数据了。 5、查找:主要是用来查找字符串,和你想要的命令、还有二进制数通常都查找这3个 6、复制到可执行文件:是用来保存功能的,如果你修改了很多地方,那么你就选择(所有

OD使用须知常识,CPU寄存器和汇编指令

OD使用须知常识,CPU寄存器和汇编指令 用OD和CE,不断找汇编资料,解读指令,实在是累。总算找到篇比较完整的资料与大家分享。 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。 对低16位数据的存取,不会影响高16位的数据。 这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。 4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。 程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。 寄存器EAX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。可用于乘、除、输入/输出等操作,使用频率很高; 寄存器EBX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器ECX称为计数寄存器(Count Register)。 在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数; 寄存器EDX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。 在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址, 在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果, 而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。 2、变址寄存器 32位CPU有2个32位通用寄存器ESI和EDI。 其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。 寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量, 用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

OD使用方法简单说明

Ollydbg中断方法浅探 Ollydbg是一个新的32位的汇编层调试软件。适应于windows98、me、2000、xp和2003操作系统。由于他具有图形窗口界面,所以操作方便、直观,是cracker的好工具。 由于Ollydbg没有了TRW2000的万能断点,所以许多的新手感觉到用Ollydbg断点不好找。现在我来的说说Ollydbg下中断的几种方法。本人是个菜鸟,水平有限,可能不能完整的写出来,也可能存在错误。请大家指正。 我所表述的是Ollydbg v1.09d中文版,其他版本和英文版下自己参考。 第一寻常断点 Ollydbg中一般下中断的方法,就是在程序的地址处用鼠标选择这一行。然后按F2键,这时被选择的那一行的地址会变成别的颜色,就表示这个地址处下了中断。然后运行程序时只有到这个地址处就会被Ollydbg 中断。 这个方法用的比较多,所以把他称作寻常断点。 如果有命令行插件,就可以在命令窗口中输入BPX xxxxxxxx 下断点。 优点:只要自己怀疑是重要的代码处都可以下这种下断点,不受条件的限制,所以方便实用。 缺点:如果不知道代码功能下断点具有盲目性。 第二 API断点 Ollydbg中一般下API中断的方法,有二种。 1. 在代码窗口中点鼠标右键,出现功能菜单。在[搜索]选择项下有〔当前模块的名称〕和〔全部模块的名称〕俩项,选择其中的一项就打开了程序调用API的窗口,在这个窗口中选择你要跟踪的API函数名。双击这个函数就能到程序的调用地址处。然后用F2下中断。也可以在API窗口中选择需要跟踪的函数点鼠标右键出现功能菜单,选择〔在每个参考设置断点〕。同样下了断点。 快捷方式:Ctrl+N 2. 在命令行窗口中输入BPX API函数名或者BP API函数名后回车。这时出现了所有调用这个函数的地址的窗口,在这个窗口中可以看到调用这个API函数的地址已改变了颜色。说明下好了断点。 说明一下:BPX一般中断在程序调用API的地址处。BP会中断在API的写入地址处。二这有所不同,根据需要选择。 优点:这种方法下的断点是针对每一个API函数的,所以具有明确的目的。 缺点:关键的API函数不容易找到。所以有时下的断点没有作用。 第三内存断点(跟踪关键数据的断点) Ollydbg中的内存断点相当于TRW中的bpm 断点。 下断点的方法是:在程序运行中断时选择界面中的转存窗口,用光标选择内存中的一段关键数据(颜色会改变),然后右击鼠标出现功能菜单。选择〔断点〕项,其中有二个选择〔内存访问〕和〔内存写入〕。〔内存访问〕断点是程序运行时要调用被选择的内存数据时就会被Ollydbg中断,根据这个特点在破解跟踪时只要在关键数据内存中下中断就可以知道程序在什么地方和什么时候用到了跟踪的数据。对于一些复杂算法和流程变态的算法跟踪有很大的帮助。从破解上讲,一个注册码的生成一定是由一些关键数据或者原始数据计算来的。所以在内存中一定要用到这些关键数据。那么〔内存访问〕断点就是最好的中断方法。〔内存写入〕断点是程序运行时向被选择的内存地址写入数据时就会被Ollydbg中断。根据这个特点在破解时可以跟踪一个关键数据是什么时候生成的,生成的代码段在那个地方。所以一个关键的数据如果不知道他的由来就可以用〔内存访问〕断点查找计算的核心。

OD使用完全教程

教你如何破解软件,OD破解软件,OD使用教程 教你如何破解软件,OD破解软件,OD使用教程 大家好,这几天我上网大概看了一下,ITyouth论坛的内容真的应有尽有,不知道应该写什么了,所以我想了一晚上终于想到了还是教你们些破解知识吧!我想对大家来说都很有用吧!我将会一直坚持下去保证课堂质量, 有不会的可以提出来问我,尽量解答(呵呵!我也是鸟嘛!)废话不多说!支持我的就往下看吧! 先教大家一些基础知识,学习破解其实是要和程序打交道的,汇编是破解程序的必 备知识,但有可能部分朋友都没有学习过汇编语言,所以我就在这里叫大家一些简 单实用的破解语句吧! ---------------------------------------------------------------------------------------------------------------- 语句:cmp a,b//cmp是比较的意思!在这里假如a=1,b=2 那么就是a 与b比较大小. mov a,b//mov是赋值语句,把b的值赋给a. je/jz//就是相等就到指定位置(也叫跳转). jne/jnz//不相等就到指定位置. jmp//无条件跳转. jl/jb//若小于就跳. ja/jg//若大于就跳. jge//若大于等于就跳. ---------------------------------------------------------------------------------------------------------------------- 这些都是我们在以后的课程中会经常遇到的语句,应该记住它们,接下来我们在讲 讲破解工具的使用: 我们破解或给软件脱壳最常用的软件就是OD全名叫ODbyDYK界面如图1 它是一个功能很强大的工具,左上角是cpu窗口,分别是地址,机器码,汇编代码,注 释;注释添加方便,而且还能即时显示函数的调用结果,返回值. 右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示. cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态. 左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息. 右下角的是当前堆栈情况,还有注释啊. 恩,今天的课程就上到这了,大家可以在自己的电脑下试试OD,了解了解OD,下堂 课我将破解一款软件给大家看,我们就用今天讲的语句和OD来破解,在以后的课 程里我还会教大家脱壳,因为现在的软件为了维护版权多数都加了壳的,所以要破

OD零基础入门级教程

首先,我要声明一下,本教程只局限于不懂破解的朋友,让你们了解并有机会深入破解!其次,诸位大神请高抬贵手,不要骂我。虽然简易,但我的初衷是让不懂的人更有信心加入破解行列! 最后,我们只需5步,让你了解一个程序被破解。 介绍一下这个软件吧,我写的一个简单的软件,方便初学者容易理解。 程序需要输入正确的帐号和密码才可以登录成功,否则登录失败。 可是我们不知道正确的帐号密码。(也可以理解成是其他软件注册码) 既然他能提示登录成功与登录失败(或某些软件提示注册码错误),就说明他有一个判断,我们来打开OD载入程序,让他判断所有字符都是成功。 (由于是初级零基础入门级教程,所以不涉及“各种壳”、“暗桩”等等系列干扰新手的元素)在左上角窗口右键,选择“中文搜索引擎”-“搜索ASCII” 之后搜索(Ctrl+F)输入“登录失败”(也就是你不想看到的东西),找到结果后,我们双击那一行代码。

我们向上找找,这个判断跳转的来源在哪儿。 下图可以看到,在图片最上方的je命令左边有一条线,跳过了成功,指向了失败前面的代码。

我们在这行代码上右键,选择“二进制”-“NOP填充” 就是让这个跳转失效。那么现在,你所填写的注册码或密码,输入所有字符或不输入任何字 符,都是正确的了!

但是还没完,不用我说大家也知道,还需要保存一下~ 我们右键,选择“复制到可执行文件”-“所有” 跳转后继续右键“保存文件”,生成一个新的文件,也就是破解补丁,覆盖源文件。 最后,我们来打开刚才保存出来的新程序(也就是我们破解后的程序),是不是真的被破解

了? 我们还同样输入“abc”,恭喜,成功破解! 有了第一课的基础,大家是不是想试试身手,那么我们就拿个真实的软件试试身手吧! 这一课,我们要利用第一课假软件的知识,来获得一个真实软件的注册码! 这个软件其他视频教程也借用过,所以我也来借用一下。 ******************************************************************* 软件是一个IP搜索工具,有注册项,我们就来拿这个软件获得注册码,只需5步!注:(同样是初级软件,不涉及干扰新手学习的各种元素) 下面是注册界面的截图 注册后,截图就有提示出来了,暂且不管他提示的是什么,我们也知道要干什么了,对吗?

使用OllyDbg从零开始Cracking 第一章-OD的各个窗口介绍

使用OllyDbg从零开始Cracking 第一章 (翻译:BGCoder) 《使用OllyDbg从零开始Cracking》教程的目的是为那些想精通Cracking(译注1)艺术的人提供必要的基础知识。有了这些基础知识,你就可以阅读和理解更高级的教程,例如《INTRODUCCIóN AL CRACKING》(译注2),这个系列教程现在仍在不断加入新的内容。 写这个教程想法的产生,是由于意识到了《INTRODUCCIóN AL CRACKING》中的很多教程对于新手来说太过于复杂。而新手们还未能达到课程所需的能力要求。多方面的原因导致这些新人难以继续学习。因此,《使用OllyDbg从零开始Cracking》的目标并不是取代来自《INTRODUCCIóN AL CRACKING》中的教程(它里面的教程数量已逾500),而是为学完这个课程后的读者打下一个良好的基础,以便去学习阅读日益复杂的资料。它的主要目的是减少课程数量,提供必要的基础知识,从而使新的Cracker对更复杂的文章资料能够深入的理解。 为什么使用OllyDbg? 我们不会去探讨SoftICE和OllyDbg之间的对抗,我认为即使是SoftICE的狂热追随者也可以很容易的入手OllyDbg。而OllyDbg拥有更多的资料且更容易学习。我们需要从OllyDbg这扇大门进入Cracking的世界。以后可能会在必要的时候换成其它调试器,但变化的只是它们的使用方法,不变的是它们的本质。 让我们从头开始。 首先,需要装备我们以后将主要使用的工具(OllyDbg),点此下载(译注3)。 下载成功后,将其解压到你容易访问的硬盘文件夹内,一个好的办法是在C盘创建一个目录,尽管它在哪里都可以运行,在这里我选择了C:\。

od使用方法

转Draren总结的ollydbg v1.09d 中文版使用说明 一点一滴的积累,也就会了. 之所以选择ollydbg 1.我的os是winXP,无法使用trw2000,而softice装了多次均未成功,还蓝屏死机多次.郁闷. 2.友好的gui界面,不像softice.可以边干活边听歌,不像softice,把整个os都挂起了.多用两次,连时间都不知道了. 3.强大的内存查看功能,再不用什么-d了,而且跳转方便,爽!一目了然. 4.强大的右键菜单功能 ollydbg的界面: 菜单: 文件: 1.其中包括该菜单的下部有上次打开的纪录,该纪录保存有上次未清除的断点. 2.附加.对付那些Anti-Debug程序.先运行程序,再运行od,文件-->附加. 查看: 1.执行模块(Alt+E),查看程序使用的动态链接库 2.查看断点.Alt+B 调试: 1.运行(F9)加载程序后,运行! 2.暂停(F12) 3.单步进入(F7)遇见CALL进入!进入该子程序. 4.单步跳过(F8)遇见CALL不进去! 5.执行到返回(ALT+F9)就是执行到该子程的返回语句 ollydbg的16进制编辑功能.类似与hiew,hex workshop

查看-->文件 二进制文件编辑功能.查看-->文件,打开的文件是二进制显示.选中要改变的机器指令,空格,修改,右击-->保存. ollydbg的四个区域 左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值. 右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色显示. cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态. 不错; 左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息; 右下角的是当前堆栈情况,还有注释啊. F3选择打开程序. 使用 F9执行程序. 下断点: 1.对函数下下断点 在代码区右击-->搜索-->当前模块中的名称(ctrl+N),在跳出来的对话框中选择需要下的断点函数.->右击->查找导入参考(enter),按F2下断点.如果有多个地方调用了该函数就这样操作。 2.在需要的地方下断点 F2 添加注释: 在代码区第四列,右击-->注释

自动档技巧OD 档

自动档O/D 档 O/D挡(Over-Drive)的意思是自动档车型的超速挡,以最普遍的四前速自动挡变速箱为例,第四挡就是超速挡,它的齿比约在0.5-0.7之间,相当于手排的5挡。 先看看某些自动排的排挡编排,一般是P-R-N-D-2-1,为何没有三挡?原因就是有O/D 开关,按下排挡头上的O/D按钮,此时仪表盘上O/D OFF灯亮,即4挡被锁,即车子最高只能使用3挡而去不到4挡。 而其他一些自动挡车的挡位编排多是P-R-N-D-3-2-1,一目了然,正因为它设了D3挡,所以无需再设O/D开关了。实际上它们只是设计方式不同,作用则是一样的。 自动变速器也是有档位的,象手动变速一样,都有档位,只是变速的齿轮结构不一样,手动需要人工判断与操作是否加减档位,自动的是靠车速度和发动机负荷状态,经控制系统(如变速器电脑ECT)综合分析后是否加减档位.四速(4AT)五速(5AT)新款变速器有6速.... 当我们在D位起步时候,先是1档,随着车速度的升高,自动升档,直到最高档. O/D的意思为OVERDIVER专业术语为超速档即输出转速高于输入转速 O/DOFF的意思为关闭超速档 通常变速器的最高档位为超速档 以四档变速器为例子4档为超速档 通常当车速在0-25KM时候为1挡 25-45为2档 45-70为3挡 70以上进入4档 当O/DOFF,即使你油门踩的再大,车速再高,也不会进入4档 为什么要这样做呢? 以手动为例子 当我们车上乘客较多,想超车,可发现油门踩到底了,加速度还不够快,于是我们把档位退到3档,这时候,听见发动机声音变大,车更有力了,一下就超过去了. 自动变速器的车在这种情况下,你油门踩到底(你的意愿是想快点超过去嘛)时自动变速器会自动从4档退到三档,(这种状态称为强迫降档,正常现象)..当然,你按动开关,O/DOFF灯亮时候,也就进入了3档.

相关主题
文本预览
相关文档 最新文档