逆向工程核心原理读书笔记(1)

工具

OllyDbg免费的win32专业调试工具。

IDA Pro收费的专业调试工具,功能强大。

设置“大本营”的四种方法

(1)goto命令快捷键是ctrl+g,目前就会根据地址找来找去,应该还有其他用法。

(2)设置断点,快捷键F2.在觉得重要的点设置断点,下次可以直接CTRL+F9运行到断点自动停止。

(3)注释,快捷键是;必须是英文的分号。

(4)标签,快捷键是:也必须是英文的冒号。

快速查找代码的四种方法

(1)代码执行法

(2)字符串检索法;鼠标右键查找:所有字符串引用。

(3)API检索法一:在调用代码中设置断点。

(4)API检索法二:在API代码中设置断点。

修改字符串的两种方式

(1)直接修改字符串缓冲区。有点事简单直观,缺点修改后的字符串不能比原字符串长。

(2)在其他内存区域建立字符串,并传递给引用函数。优点是可以任意修改,缺点是传递过程设置比较复杂。

一些快捷键和汇编指令

ctrl+e编辑数据

space编辑汇编代码

call xxxx     调用xxxx处的函数

jmp xxxx    跳转到xxxx处

push xxxx  将xxxx保存到栈中

retn 跳转到栈中保存的地址

时间: 2024-10-11 07:30:04

逆向工程核心原理读书笔记(1)的相关文章

C++Windows核心编程读书笔记

转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔记": 关键词:c++windows 核心 编程 读书笔记 这篇笔记是我在读<windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和windows实际机制可能有出入,但应该是合理的.开头几章由于我追求简洁

《逆向工程核心原理》

<逆向工程核心原理> 基本信息 作者: (韩)李承远    译者: 武传海 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115350183 上架时间:2014-4-15 出版日期:2014 年5月 开本:16开 页码:679 版次:1-1 所属分类:计算机 > 软件工程及软件方法学 > 综合 更多关于>>><逆向工程核心原理>   编辑推荐     韩国逆向分析领域龙头之作!逆向分析师必知核心原理大全!本书集中讲解逆向分析技术

&lt;&lt;操作系统精髓与设计原理&gt;&gt;读书笔记(一) 并发性:互斥与同步(1)

<<操作系统精髓与设计原理>>读书笔记(一) 并发性:互斥与同步 并发问题是所有问题的基础,也是操作系统设计的基础.并发包括很多设计问题,其中有进程间通信,资源共享与竞争,多个进程活动的同步以及分配给进程的处理器时间的. 和并发相关的关键术语:原子操作: 一个或多个指令的序列,对外是不可分的:即没有其他进程可以看到其中间状态或者中断此操作. 并发中,为了确保并发下的数据完整性,我们有一系列的同步方法,其实这些就是为了实现互斥性!对临界区程序的互斥性.有三种方法: 1.软件方法,但是

pthon核心编程-读书笔记:知识点摘录与总结(方便理解和快速记忆)

Python 中的列表(大小可变的数组)和字典(哈希表)就是内建于语言本身的.在核心语言中提供这些重要的构建单元,可以鼓励人们使用它们, 缩短开发时间与代码量,产生出可读性更好的代码.C不提供, c++功能不够简洁. 面向对象, 可升级:Python 提倡简洁的代码设计.高级的数据结构和模块化的组件,确保灵活性. 一致性并缩短必要的调试时间 扩展性:兼容扩展c和java 易读写,易维护 健壮性:Python 提供了"安全合理"的退出机制, Python由于错误崩溃,解释程序就会转出一个

spring技术核心_读书笔记_01简介

1.spring的目标 简化Java企业应用的开发是spring框架的目标. 为开发者提供一个一站式的轻量级的应用开发框架(平台). 2.spring的期望 希望能够集成管理企业应用资源,为应用开发提供平台支持. 如何为开发者集中管理在Java企业应用和Web应用中涉及的数据持久化.事务处理.消息中间件.分布式计算等抽象资源, 并在此基础上,为应用提供一个基于POJO的开发环境. 3.分为三部分 核心.组件.应用 spring架构图 spring Aop spring事务处理 spring应用

通信原理读书笔记:幅度调制

1. SSB 1.1 使用滤波器,这个方法需要极其陡峭的边沿,暂时放一边: 1.2 另一个办法,为了去掉半个边带,我们需要“构造”出一个信号,DSB的频谱与构造信号的频谱加或减后,就能去掉半个边带.根据DSB的频谱和SSB的频谱,不难画出构造信号的频谱.将这个构造信号的频谱和SSB的数学表达式放在一起就好理解了.Oppenh的<信号与系统>有AM相关内容. 2. VSB 上图是VSB发射端滤波器幅频特性,保留上边带,残留下边带.只看正频率部分. DSB的频谱是关于fc左右对称的,占用带宽为[f

Windows核心编程读书笔记-第六章线程基础

1.相较于线程,进程所使用的系统资源更多.其原因在于地址空间.为一个进程创建一个虚拟的地址空间需要大量系统资源.线程只有一个内核对象和一个栈. 2.线程的入口函数 DWORD WINAPI ThreadFunc(PVOID pvParam){ DWORD dwResult = 0; ... return(dwResult); } 线程函数的几点说明 线程函数可以任意命名. 线程函数只有一个参数,而其意义由我们(而非操作系统)来定义.因此,我们不必担心ANSI/Unicode问题. 线程函数必须返

java数据结构之HashSet和HashMap(java核心卷Ⅰ读书笔记)

增加 删除 remove方法,可以删除指定的一个元素. 查找 ********************* **************************** HashSet既不可以用 0 1 2 3这种索引来确定元素的值,也不能用key来确定元素的值 ********************* HashSet就长这样的  ["aa" , "bb"] 长成这样的数据结构 ****************** HashMap长成这样的    {a=123  ,  

java数据结构之链表(java核心卷Ⅰ读书笔记)

1.链表 数组和ArrayList的一个重大缺陷就是:从中间位置删除一个元素要付出很大的代价,因为在这个元素删除之后,所有的元素都要向前端移动,在中间的某个位置插入一个元素也是这个原因. (小感悟:sun-zheng说了一句,每天在那安静地写代码,才是最轻松的活,不用这跑那跑,不用费太多的口舌,每天吹着空调,外面就是建筑地,别人风吹日赛,真的写代码是一件最轻松的事情) 我们在数据结构这门课中,在链表中添加或者删除某个元素时候,绕来如去的指针可能已经给人留下了极坏的印象,那么Java的集合类库提供