首页
社区
课程
招聘
未解决 [原创] MASM伪指令Offset的使用问题
发表于: 2020-10-23 19:15 2933

未解决 [原创] MASM伪指令Offset的使用问题

2020-10-23 19:15
2933

伪指令Offset指令使用问题

定义

大致讲:使用该伪指令将获取expression相对于当前段的偏移.
offset

一个例子 demo.asm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.386
.model flat, stdcall
option casemap  :none           ;forces your labels to be case sensitive, which means Hello and hello are treated differently.
 
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
 
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
 
.data
    HelloWorld db "Hello, World!", 0
 
.code
start:
    mov eax, offset CC_Position
    invoke StdOut, addr HelloWorld
    invoke ExitProcess, 0
 
CC_Position:
    int 3
    int 3
    int 3
    int 3
end start

编译 & 运行

1
2
ml /c /Zd /coff demo.asm
link /subsystem:console demo.obj

问题

offset返回一个偏移,但链接之后的exe程序中使用的却是一个有效地址地址

 

如下图:
offset

如何在运行时获取标号的偏移呢,即CC_Position相对.code的偏移


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-10-23 19:16 被baolongshou编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 897
活跃值: (5906)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
6efK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0z5i4S2Q4x3X3g2E0k6g2)9J5c8Y4R3^5y4W2)9J5c8X3S2@1L8h3I4Q4x3V1k6X3K9h3I4W2i4K6g2X3L8h3!0V1N6h3I4W2i4K6g2X3P5o6R3$3i4K6g2X3K9h3c8Q4y4h3j5I4y4K6k6Q4x3X3g2Z5N6r3#2D9

codestart0:
   jmp codestart1

someVar dd 0

codestart1:
  mov eax,[rip+($-someVar)]

Position-Independent Code
56eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2G2M7X3g2A6L8r3I4&6i4K6u0W2j5$3!0E0i4K6u0r3L8r3W2T1M7X3q4J5P5g2)9J5c8Y4k6A6k6i4N6Q4x3V1k6H3M7X3q4U0N6r3W2U0j5h3I4Q4x3X3c8E0j5h3I4%4j5i4u0W2i4K6u0V1j5h3&6S2L8s2W2K6K9i4y4Q4x3V1j5&6y4K6R3I4y4e0V1K6x3U0M7J5z5e0l9$3i4K6u0r3j5$3R3J5x3s2x3H3x3W2)9J5k6h3S2@1L8h3H3`.

How RIP/EIP relative addressing works in 32-bit mode
4caK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4G2k6r3g2Y4N6i4u0#2M7#2)9J5k6h3u0W2i4K6u0r3f1s2u0G2k6%4u0S2L8h3#2A6L8X3N6Q4x3V1k6J5K9i4m8J5k6h3I4S2N6r3W2$3k6h3q4V1k6s2u0W2M7%4y4A6L8X3N6Q4y4h3k6W2L8W2)9J5k6h3S2@1L8g2)9J5x3@1#2G2k6r3f1K6x3R3`.`.
2020-10-24 19:17
0
游客
登录 | 注册 方可回帖
返回