两个问题:1、上图中标注5的那个 【提示】 是什么意思 他的数值是做什么用的。2、7处的入口点,是真实的加载到内存中的地址吗?还有以下问题:以下是用OllyICE查看的一个VB6开发的EXE程序中的部分代码:
请教以下问题00401014 > . 46014873 dd MSVBVM60._adj_fdiv_m16i ; ASCII "P哙%"
问题:(1). 46014873 前面的点号什么作用。(2)此句什么作用,是定义了一个字符串,还是有其他用途 00401122 $- FF25 5C104000 jmp dword ptr [<&MSVBVM60.#100>] ; MSVBVM60.ThunRTMain
问题:指令不是顺序存放的吗,此句中 $- FF25 5C104000 的作用是什么,指令 jmp dword ptr [<&MSVBVM60.#100>] 到底存放在内存的什么位置 004011F1 . 46 6F 72 6D 3>ascii "Form1",0
问题: ascii 是汇编指令吗 0040128C 94154000 dd 工程1.00401594
问题:此句的作用是什么 

解决方案 »

  1.   

    回答个简单的吧1、【提示】 对应英文界面上是hint。应该是某函数在dll导出表的序号吧。
    2、那个地址应该是相对于dll加载基地址的偏移地址吧。汇编的就不晓得了。
    不过那个ascii什么的应该是ollydbg给出的注释,一般来说是相应地址的内容
      

  2.   

    看界面是VC或C++做的东西,发到这版上,估计是憋着劲找茬的
      

  3.   

    不会看自带的帮助!?
    1、Hint The hint value for the imported function.  The hint value is used internally by the operating system抯 loader to quickly match imports with exports.  It is used as an index into the array of exported functions in the selected module.2、Entry Point The entry point memory address for the function.  This is usually "Not Bound", meaning that the entry point address will not be known until load time.  If an address is given, then the parent module has bound by the BIND program.  BIND is a program that runs through a module's import table and stores the most probable entry point address for each function.  It does this for each function by opening the import module, looking up the function, and added that function's offset address with that module's preferred base load address.  This results in a faster load time if a bounded module's dependent modules actually load at their preferred base load addresses.
      

  4.   

    我来翻译一下:
    1、Hint The hint value for the imported function. The hint value is used internally by the operating system抯 loader to quickly match imports with exports. It is used as an index into the array of exported functions in the selected module.翻译成中文:提示对于导入函数提示值。提示值所使用的操作系统加载器内部迅速配合出口进口。它是用来作为一个指标纳入导出函数在选定的组件阵列。 2、Entry Point The entry point memory address for the function. This is usually "Not Bound", meaning that the entry point address will not be known until load time. If an address is given, then the parent module has bound by the BIND program. BIND is a program that runs through a module's import table and stores the most probable entry point address for each function. It does this for each function by opening the import module, looking up the function, and added that function's offset address with that module's preferred base load address. This results in a faster load time if a bounded module's dependent modules actually load at their preferred base load addresses. 
     
    翻译成中文:入口点的入口点函数的内存地址。这通常是“没有义务“,即入口点地址将不会被载入时间才知道。如果一个地址,然后父模块的BIND程序的约束。 BIND是一个程序,通过一个模块的导入表和存储运行的最可能的条目为每个功能点的地址。它为每个函数通过打开这个导入模块,查找的功能,并补充说,功能的失调与该模块的首选基加载地址。在这一个更快的载入时间范围内的结果,如果一个模块的依赖模块实际上是在他们的首选基地加载地址的负载。
      

  5.   

    先参考下dependency waiker的帮助部分,目录"understanding the module session"下面的"Export Function List View"2,入口地址Entry Point是函数在文件中的原始地址入口,实际在系统把文件映像到内存来执行的时候,要加上文件的基地址,在pe文件结构里面能找到基地址的。00401014 > . 46014873 dd MSVBVM60._adj_fdiv_m16i ; ASCII "P哙%"
    从地址看,文件的加载基地址是401000,我的vb程序也是这样,4010014意思是,这里是一个函数的入口地址,这个函数属于msvbvm60,函数的名字是._adj_fdiv_m16i ,这里.的意思和vb里面的使用对象.属性的时候是一样的00401122 $- FF25 5C104000 jmp dword ptr [<&MSVBVM60.#100>] ; MSVBVM60.ThunRTMain
    跳转到msvbvm60的thunrtmain函数处,也是msvbvm60的输出表里面,序号是100(hex)的函数地址
    这个地址就是0004015c,是把FF25 5C104000这个指令后面的数据,按照低字节在前,高字节在后的方式。
    004011F1 . 46 6F 72 6D 3>ascii "Form1",0
    这里内存放的是个ascii码,不是指令
    0040128C 94154000 dd 工程1.00401594
    这个不知道了,呵呵,是你的工程1.exe的一个内容,好似这里放的是个指针,指向工程1.00401594,因为94154000 ,按低字节前,高字节后,就是00401594,这个地址是属于工程1映像到内存后的区域的一部分,所以是注释为 工程1.00401594。
      

  6.   

    00401122 $- FF25 5C104000 jmp dword ptr [<&MSVBVM60.#100>] ; MSVBVM60.ThunRTMain
    跳转到msvbvm60的thunrtmain函数处,也是msvbvm60的输出表里面,序号是100(hex)的函数地址
    这个地址就是0004015c,是把FF25 5C104000这个指令后面的数据,按照低字节在前,高字节在后的方式。
    说错了,是跳转到内存0040105c的内容所决定的地址。
      

  7.   

    00401014 > . 46014873 dd MSVBVM60._adj_fdiv_m16i ; ASCII "P哙%"
    从地址看,文件的加载基地址是401000,我的vb程序也是这样,4010014意思是,这里是一个函数的入口地址,这个函数属于msvbvm60,函数的名字是._adj_fdiv_m16i ,这里.的意思和vb里面的使用对象.属性的时候是一样的这句里面的数值好象不对吗,
      

  8.   

    00401014 > . 46014873 dd MSVBVM60._adj_fdiv_m16i ; ASCII "P哙%"
    问题:(1). 46014873 前面的点号什么作用。(2)此句什么作用,是定义了一个字符串,还是有其他用途  (1)MSVBVM60是个DLL,点号这个DLL里的_adj_fdiv_m16i函数。
    (2)请自行搜索_adj_fdiv_m16i的作用。00401122 $- FF25 5C104000 jmp dword ptr [<&MSVBVM60.#100>] ; MSVBVM60.ThunRTMain
    问题:指令不是顺序存放的吗,此句中 $- FF25 5C104000 的作用是什么,指令 jmp dword ptr [<&MSVBVM60.#100>] 到底存放在内存的什么位置  没听太懂,FF25 5C104000 就是jmp dword ptr [<&MSVBVM60.#100>]的汇编啊。
    放在什么位置?前面的00401122又不是摆设。004011F1 . 46 6F 72 6D 3>ascii "Form1",0
    问题: ascii 是汇编指令吗  ……不是。"Form1"的ascii码是46 6F 72 6D 31,ascii只是工具的提示,不一定准的,就像你第一个问题一样。当然,这里是准的。0040128C 94154000 dd 工程1.00401594
    问题:此句的作用是什么  鬼知道!不明工程里的不明调用。
      

  9.   

    听说通常用SmartCheck分析VB生成的exe
      

  10.   


    46014873 是内存数据,按照低字节前,高字节后显示的,反过了正常就是73480146,就是指向msvbvm60的领空中的_adj_fdiv_m16i,有什么不对的?你看看msvbvm60的导出函数表如果msvbvm60的基地址是73390000,那么_adj_fdiv_m16i的入口就是F0146,看看和你的dependency显示的一样不