Corax的博客

“我想做我能做的事 ”

【加密与解密】第二章 1

READ

2.1OllyDbg调试器 OllyDbg界面 C窗口是最重要的窗口,绝大部分都要在这个窗口进行,有五个面板窗口,分别是反汇编面板,寄存器面板,信息面板,数据面板和栈面板。 1.反汇编面板窗口 从左到右分别是地址,十六进制的机器码,反汇编代码和注释。 2.信息面板窗口 在进行动态分析时,这个面板会显示各种寄存器的值,API函数调用提示和跳转信息。 3.数据面板窗口 以十六进制和字...

【加密与解密】第三章 7

READ

##其他功能 ###1.图形化功能 这种模式比文本模式的可视性更好,用户更容易看清函数的代码流程。通过空格切换文本模式或者图形化模式。 ###2.修改可执行文件 使用IDA可以直接修改二进制内容。edit-patch program打开菜单再change byte和changeword菜单项以十六进制修改数据。 ###3.加载符号文件 load file-pdb file加载dbg和pdb文...

【加密与解密】第三章 6

READ

##IDA调试器 IDA支持调试器功能,弥补了静态分析能力的不足。 ###1.加载目标文件 在Debugger-select debugger中可以根据当前文件类型选择调试器类型,如图所示 选择win32 debugger,就可以打开本机模式调试目标软件了。也如同以前讲的,还有另外一种调试方式,就是附加到另外一个正在运行的进程上,能否用IDA调试器附加进程的方式,取决于目前IDA是否打开了...

【加密与解密】第三章 5

READ

##FLIRT 这是一项用于库文件快速识别与鉴定技术。可以使IDA在一系列编译器的标准库文件中自动找出调用的函数。 ###1.应用FLIRT签名 一般反汇编软件对于各种开发库无能为力,只能给反汇编结果,无法给出库函数名称。而FLIRT可以在反汇编结果正确标示调用的库函数名称。同样许多反汇编器都有类似的函数注解功能,但都局限于DLL的输出函数。ida尽可能包括了更多的开发库。IDA通常可以识别...

【加密与解密】第三章 4

READ

##数组 IDA有较强的数组聚合能力,可以将一串数据声明变成一个反汇编行,按数组的形式显示。例子如下 其中407030h指向一个数组,以下是未识别的数组。 我们可以通过打开数组排列调整窗口,来调整显示。 设置1*3后如下。 ##结构体 ###1.创建结构体 对于一些常见的文件类型,ida会自动加载其对应的类型库。这些类型库中有相应的结构体,分析代码时用于直接引用。可以通过如下方法加载...

【加密与解密】第三章 3

READ

###4.提示窗口 下方提示窗口是ida的输出控制台,主要反馈各种信息。 ###5.字符串窗口 view-》opensubviews-》strings打开字符串窗口,显示的是从二进制文件中提取的一组字符串,双击窗口中的字符串,将会跳转到字符串所在地址。字符串窗口与交叉引用结合使用,就可以快速定位程序中任何引用此字符串的位置。 ###6.输出窗口 列出了可执行文件调用的所有函数。双击函数就会跳...

【加密与解密】第三章 2

READ

##AsmJit 一个以C++封装的完整的JIT汇编器和编译器,生成兼容x86和x64架构的原生汇编指令。 它与之前的开源库并不一样,他只是一个汇编器,与别的汇编方式也不同,有个例子。 可以见得指令都被封装成了类成员函数,通过调用函数的方式来编码。参数可以使用寄存器,内存操作数,也可以用占位符变量,根据不同的逻辑给这些占位符变量赋值不同的操作数。 上面的例子用的是x86 assemble...

【加密与解密】第三章 1

READ

这一章是静态分析技术。高级语言编写的程序一般有两种形式,一种是被编译成机器语言在CPU上执行,例如C++,机器语言与汇编语言相对应。因此可以将机器语言转化成汇编语言,这个就叫反汇编。另一种是一边解释一边执行,我们称之为解释性语言,例如visual basic3.0/4.0,java。这类语言变异的程序可以被还原成高级语言的原始结构,这是反编译。 所谓静态分析,是通过反汇编,反编译获得程序汇编...

【加密与解密】第七章 1

READ

应用层进程通过系统调用进入内核,由系统底层完成相应地功能,这个时候内核执行出在该进程的上下文空间中。内核一指系统内核本身,二指第三方软件以内核模块方式加载的驱动文件。 #内核理论基础 ##权限级别 系统内核层,又称零环,ring0,简称R0,与此对应的应用层叫3环即ring3.实际上是CPU的四个运行级别中的一个,CPU设计者将CPU的运行级别从内向外分为四个,一次是R0,R1,R2,R3...

【加密与解密】第一章 1

READ

1.2文本字符 具体已经在王爽老师《汇编语言》中学习过。 本节主要介绍字符集和字节存储顺序。 ASC2与Unicode字符集 罗列了用十六进制数(Hex)和十进制(Dec)表示的部分常用的asc2值。 然后介绍了Unicode:是Asc2码的一个拓展,在windows中使用二字节进行编码,称为宽字符集。 其中所有字符都是16进制,asc2码被扩充为16位(高位扩充为0)。 注:1字...