如何查看LIB 文件的接口函数??

 我来答
累得像猪一样
推荐于2017-09-10 · TA获得超过4.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:86%
帮助的人:854万
展开全部
lib就是obj文件打包起来的,可以用lib.exe解出来,下面是vc环境下的操作,其他环境,看命令行帮助就可以了。

lib /list xx.lib 列出lib里所有obj文件名,我这里如下
。。。。。很多省略
lib/err/err.obj
lib/dict/dictll.obj
lib/coreDump/coreDumpWin32.obj
lib/config/preference.obj
lib/config/configUL.obj

找到你关注的obj,这里选择configUL.obj,然后 lib /EXTRACT:lib/config/configUL.obj xx.lib
解出configUL.obj, 然后把obj拖入IDA,我这里是ida5.5,在函数列表里找你要调用的函数,然后逆之

_Config_GetString .text 00000068 00000039 R . . . B . .
_Config_GetBool .text 000000B8 00000039 R . . . B . .
_Config_GetLong .text 00000108 00000039 R . . . B . .
_Config_GetInt64 .text 00000158 0000003D R . . . B . .
_Config_GetTriState .text 00000198 00000039 R . . . B . .
_Config_GetDouble .text 000001E8 00000041 R . . . B T .
_Config_GetPathName .text 00000288 00000039 R . . . B . .
_Config_NotSet .text 000002C4 00000035 R . . . B . .
_Config_GetLongPlain .text 000003B0 00000015 . . . . . . .
_Panic UNDEF 000003D0 00000004 R . . . . . .
_Preference_GetString UNDEF 000003D4 00000004 R . . . . . .
_Str_Vsnprintf UNDEF 000003D8 00000004 R . . . . . .
_Preference_GetBool UNDEF 000003DC 00000004 R . . . . . .
_Preference_GetLong UNDEF 000003E0 00000004 R . . . . . .
_Preference_GetInt64 UNDEF 000003E4 00000004 R . . . . . .
_Preference_GetTriState UNDEF 000003E8 00000004 R . . . . . .
_Preference_GetDouble UNDEF 000003EC 00000004 R . . . . . .
_Preference_GetPathName UNDEF 000003F4 00000004 R . . . . . .
_Preference_NotSet UNDEF 000003F8 00000004 R . . . . . .

我这里随便选择一个函数 _Config_GetString,很小的函数,呵呵,方便说明
.text:00000068 _Config_GetString proc near
.text:00000068
.text:00000068 var_400 = byte ptr -400h
.text:00000068 arg_0 = dword ptr 8
.text:00000068 arg_4 = dword ptr 0Ch
.text:00000068 arg_8 = byte ptr 10h
.text:00000068
.text:00000068 push ebp
.text:00000069 mov ebp, esp
.text:0000006B mov ecx, [ebp+arg_4]
.text:0000006E sub esp, 400h
.text:00000074 lea eax, [ebp+arg_8]
.text:00000077 push eax
.text:00000078 push ecx
.text:00000079 lea edx, [ebp+var_400]
.text:0000007F push 400h
.text:00000084 push edx
.text:00000085 call _Str_Vsnprintf
.text:0000008A mov ecx, [ebp+arg_0]
.text:0000008D lea eax, [ebp+var_400]
.text:00000093 push eax
.text:00000094 push ecx
.text:00000095 call _Preference_GetString
.text:0000009A add esp, 18h
.text:0000009D mov esp, ebp
.text:0000009F pop ebp
.text:000000A0 retn
.text:000000A0 _Config_GetString endp
jone091167
2015-09-25 · TA获得超过12.8万个赞
知道大有可为答主
回答量:3754
采纳率:86%
帮助的人:446万
展开全部
1.VC的话进入命令行方式(如VS2008:菜单上有Visual Studio 2008 命令提示)
然后进入lib所在目录(用cd ....)就可用dumpbin了
2.如果用gcc,可用objdump
3LIB有两种,一种是静态库,比如C-Runtime库,这种LIB中有函数的实现代码,一般用在静态连编上,它是将LIB中的代码加入目标模块(EXE或者DLL)文件中,所以链接好了之后,LIB文件就没有用了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-10
展开全部
1、用VC带的工具 Depends
2、VC自带的dumpbin就可以
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式