WeHack BBS
Windows API 通过序数导入函数 - 可打印的版本

+- WeHack BBS (https://bbs.wehack.space)
+-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html)
+--- 版块: 逆向工程讨论区 (https://bbs.wehack.space/forum-9.html)
+--- 主题: Windows API 通过序数导入函数 (/thread-339.html)



Windows API 通过序数导入函数 - vimacs - 06-01-2022

我在分析一个可执行文件的时候,发现它导入了 WS2_32.DLL 的 Ordinal_15 函数,但是怎么都找不到这个 API. 在网上搜了一下,才知道函数可以不通过名字而是通过序数导入。

https://toddcullumresearch.com/2017/03/13/winapi-ordinals/
https://www.reddit.com/r/RELounge/comments/sipu80/what_does_this_import_mean/

安装了 wine 之后,用 radare2 的 rabin 工具可以看每个 Ordinal 对应的是什么函数。

$ rabin2 -s /usr/lib32/wine/i386-windows/ws2_32.dll | head -n 20
[Symbols]

nth paddr vaddr bind type size lib name
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
1 0x0000c1a0 0x6d78cda0 GLOBAL FUNC 0 ws2_32.dll accept
2 0x0000b860 0x6d78c460 GLOBAL FUNC 0 ws2_32.dll bind
3 0x0000bbe0 0x6d78c7e0 GLOBAL FUNC 0 ws2_32.dll closesocket
4 0x0000bd00 0x6d78c900 GLOBAL FUNC 0 ws2_32.dll connect
5 0x0000bf80 0x6d78cb80 GLOBAL FUNC 0 ws2_32.dll getpeername
6 0x0000c410 0x6d78d010 GLOBAL FUNC 0 ws2_32.dll getsockname
7 0x0000c5b0 0x6d78d1b0 GLOBAL FUNC 0 ws2_32.dll getsockopt
8 0x00007690 0x6d788290 GLOBAL FUNC 0 ws2_32.dll htonl
9 0x000076a0 0x6d7882a0 GLOBAL FUNC 0 ws2_32.dll htons
10 0x0000e330 0x6d78ef30 GLOBAL FUNC 0 ws2_32.dll ioctlsocket
11 0x00006dd0 0x6d7879d0 GLOBAL FUNC 0 ws2_32.dll inet_addr
12 0x00005f50 0x6d786b50 GLOBAL FUNC 0 ws2_32.dll inet_ntoa
13 0x0000e3a0 0x6d78efa0 GLOBAL FUNC 0 ws2_32.dll listen
14 0x00007730 0x6d788330 GLOBAL FUNC 0 ws2_32.dll ntohl
15 0x00007740 0x6d788340 GLOBAL FUNC 0 ws2_32.dll ntohs
16 0x0000e520 0x6d78f120 GLOBAL FUNC 0 ws2_32.dll recv