开始学习 0Day 了,前进了小小一步:《0Day 安全:软件漏洞分析艺术》第一篇末尾的 crack_me 实验成功了。

纪念一下。

几个概念:

PE:    Portable Execute

文件偏移地址 File Offset

相对于文件头的偏移量

装载基址 Image Base

PE 装入内存的基地址。Default EXE IB: 0x00400000; Default DLL IB: 0x10000000

虚拟内存地址 Virtual AddressVA

PE 装入内存后的地址

相对虚拟地址 Relative Virtual AddressRVA

内存地址相对于装载基址 IB 的偏移量

VA = IB + RVA

PE 文件按磁盘数据标准存放,以 0x200 (512) 字节为基本数据节。

内存中代码以 0x1000 (4096) 字节为基本数据节。

节偏移:由存储基本数据节的差异引起的节基址差。

如:某 PE 中 .text 的 FileOffset=0x400, RVA=0x00001000, 则节偏移=0x1000-0x400=0xc00

File Offset = VA - IB - 节偏移 = RVA - 节偏移

OD: First Step的更多相关文章

  1. BZOJ3998:[TJOI2015]弦论(SAM)

    Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个. ...

  2. BZOJ1396:识别子串(SAM)

    Description Input 一行,一个由小写字母组成的字符串S,长度不超过10^5 Output L行,每行一个整数,第i行的数据表示关于S的第i个元素的最短识别子串有多长. Sample I ...

  3. BZOJ4566:[HAOI2016]找相同字符(SAM)

    Description 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两 个子串中有一个位置不同. Input 两行,两个字符串s1,s2,长度分别 ...

  4. gdb windbg and od use

    gdb aslr -- 显示/设置 gdb 的 ASLR asmsearch -- Search for ASM instructions in memory asmsearch "int ...

  5. OD脚本指令集

    声明: 1.本指令集搜集自各论坛.博客,欢迎补充讨论 OD脚本指令集 在后面的文档中, “源操作数” 和 “目的操作数”表示以下含义: - 十六进制常数,既没有前缀也没有后缀. (例如:是00FF, ...

  6. Linux之od命令详解

    功能说明:输出文件内容.语 法:od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数&g ...

  7. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

  8. od 查看特殊格式的文件内容

    用户通常使用od命令查看特殊格式的文件内容.通过指定该命令的不同选项可以以十进制.八进制.十六进制和ASCII码来显示文件. 语法: od [选项] 文件- 命令中各选项的含义: - A 指定地址基数 ...

  9. time step和采样频率的关系

    当前的采样频率为11025HZ,overlap=0.5,取的是1024个采样点为1帧.则time step为256时的时间长度为11秒.即以11秒为单位分割原始的音频,生成一张语普图. >> ...

随机推荐

  1. log4j日志输出使用教程

    Log4j是帮助开发人员进行日志输出管理的API类库.它最重要的特点就可以配置文件灵活的设置日志信息的优先级.日志信息的输出目的地以及日志信息的输出格式.Log4j除了可以记录程序运行日志信息外还有一 ...

  2. 如何启动Service,如何停用Service(转)

    如何启用Service,如何停用Service Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发现,可以使用它开发如监控之类的程序.服 ...

  3. Android向SDCard中上传文件时报错:Failed to push items

    向sdcard中添加文件为什么总是提示Failed to push the item(s) Failed to push XXXXX.txt on emulator-     : Read-only ...

  4. windows7下python环境变量配置

    默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行或cmd里直接使用python命令. 1. 首先需要在系统中注册python环境变量:假设pyth ...

  5. 可控制转速CSS3旋转风车特效

    以前制作网页动画一般使用javascript,现在已经有越来越多动动画使用纯CSS实现,并且动画的控制也可以使用CSS3实现,因为CSS 3来了,CSS 3的动画功能确实强大.以下是一个纯CSS3制作 ...

  6. arm linux上的第一个应用程序 BOA移植

    1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才 ...

  7. MyBatis错误--Invalid bound statement (not found)

    今天在开发项目的时候使用MyBatis发生错误:Invalid bound statement (not found) 具体错误信息: org.springframework.beans.factor ...

  8. QuerryRunner Tools

    package com.ydbg.gis.utils; import java.sql.SQLException; import java.util.List; import java.util.Ma ...

  9. UNIQUE NullAble

    一般情况 UNIQUE 不应该出现nullable的 但是如果我们要支持也是有办法的,就是写一个filter. https://msdn.microsoft.com/en-us/library/ms1 ...

  10. C++实现发送HTTP请求

    #include <stdio.h>#include <windows.h>#include <wininet.h> #define MAXSIZE 1024#pr ...