`
hellhell
  • 浏览: 24085 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

为啥是imp_xxxx

阅读更多
    前面写过碰到的链接问题http://silconfuse.iteye.com/blog/491830,当时写的应该是错误的,从dll中import的函数并不是改名为imp_xxx,这个imp_xxx是指向函数地址的地址。
   
    比如从dll输入一个函数func,调用func时,那么生成的汇编应该是
DWROD __imp_func@4 = 0x12345678
call dword ptr[__imp_func@4]


    编译器为什么要这样做,因为链接器在链接期间肯定不会知道func的地址,只能得到一个推测值。因此模块加载器经常需要找到一个引入函数的正确地址并修改模块映象。而且对func可能有多次的调用。由于性能原因,加载器将会倾向于修改最少量的位置,这就意味着每一个地址都对应着一个引入函数。这样的话就需要一个地址来存储引入函数的地址,通常这个地址有一个内部的名称形式,__imp__xxx。这个就是我上次链接时碰到的玩意。

分享到:
评论

相关推荐

    如何将dmp文件还原到oralce库——实践修订

    赋予新用户创建和管理用户、视图以及其他权限的命令为`GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO ...

    Oracle数据转储时字符集的转换规律

    例如,如果源数据库使用ZHS16GBK字符集,而Export操作使用US7ASCII,由于US7ASCII不支持8位的中文字符,所有中文字符都将丢失并显示为"??". 反之,如果源数据库使用ZHS16GBK,Export使用ZHS16CGB231280,大部分字符...

    XXXX-computer organization-1-15件计算机发展史里程碑.pptx

    IMP(Interface Message Processor)是世界上第一台通讯处理机,由美国国防高等研究计划局(ARPA)开发。该计算机用于网络通讯处理。 8. 1971 年,世界上第一台个人计算机 Kenbak-1 问世。 Kenbak-1 是世界上第一...

    oracle数据库的备份和还原

    - **定义**:逻辑备份是通过SQL*Plus或其他工具将数据库对象导出为脚本文件的方式进行备份。 - **适用场景**:适用于备份表、视图等数据库对象。 #### 三、Oracle数据库的还原 Oracle数据库的还原通常指的是将备份...

    Oracle.pdf

    CREATE TEMPORARY TABLESPACE 临时表空间名 TEMPFILE '/xxxx/mmmm.dbf' SIZE 4096m AUTOEXTEND OFF TABLESPACE GROUP '' EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024M; ``` 删除临时表空间同删除普通表空间。 5. ...

    Oracle数据库如何导入导出表

    1. **清空表**:使用`TRUNCATE`命令可以快速清空表内容,例如`TRUNCATE TABLE xxxx`或`TRUNCATE TABLE user.xxxx`。 2. **复制表**:要复制表`uuu`的数据到`yyy`,可以使用`CREATE TABLE yyy AS SELECT * FROM uuu`...

    ORACLE 10G数据库详细操作

    - **命令**: `$imp scott/zzxsc@ORCL file='D:\daochu.dmp' fromuser="lvims" touser="scott";` - 使用`impdp`命令将数据导入数据库,`fromuser`指定了导出数据时使用的用户名,`touser`指定了导入数据的目标用户名...

    oracle 10g数据还原

    CREATE SMALLFILE TABLESPACE "xxxx" DATAFILE 'E:\oracle\product\10.2.0\oradata\hflj\sa.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE ...

    NC系统管理员维护手册

    $ exp nc50/nc50@orcl file=/home/bak/nc50$fname.dmp log=/home/bak/nc50$fname.log # 导出nc50 所有对象到 nc50xxxx.dmp 文件 ``` **1.3 Windows环境下ORACLE数据恢复** 恢复ORACLE数据库数据时,需要使用`imp`...

    IBM小机数据备份、恢复的方法命令

    imp system/fromuser=www1 file=www1090504.dmp touser=www1 FULL=y grant=y ignore=y ``` ##### 3.6 系统文件备份与恢复 - **系统文件备份**: - 切换到超级用户(root),并通过 `dsmj` 命令进入备份界面。 - ...

    oracle 10g培训文档

    创建新用户是数据库管理的基础,如`create user XXX identified by XXXX`,并使用`grant`语句授予用户特定权限,如`grant dba, resource, create view, connect to XXX`,这使得用户能够拥有管理员权限、资源权限、...

    python自动从arxiv下载paper的示例代码

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/02/11 21:44 # @Author : dangxusheng ...# @File : download_by_href.py ''' 自动从arxiv.org 下载文献 ''' import os import os.path as osp ...imp

Global site tag (gtag.js) - Google Analytics