社区
研发管理
帖子详情
对可执行文件和动态连接库用什么方法分析?
Renny
2001-06-07 01:48:00
在工作过程中,我遇到了要分析别人程序的问题。摆在我面前的只有可执行文件和动态链接库,用什么方法才能重新编写这个可执行文件呢?(注:动态链接库可以暂时采用别人的)。如果能分析出这个可执行文件的程序流程图,我也非常感激。希望各位高手不吝赐教。
...全文
85
7
打赏
收藏
对可执行文件和动态连接库用什么方法分析?
在工作过程中,我遇到了要分析别人程序的问题。摆在我面前的只有可执行文件和动态链接库,用什么方法才能重新编写这个可执行文件呢?(注:动态链接库可以暂时采用别人的)。如果能分析出这个可执行文件的程序流程图,我也非常感激。希望各位高手不吝赐教。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zxl_l
2001-06-08
打赏
举报
回复
动态链接采用接口的方式说明。
可执行文件用功能结构进行分析。
Renny
2001-06-08
打赏
举报
回复
从实际工作中找出程序流程,这当然是分析流程的最根本的方法。但我现在只是开发其中的核心部分--多媒体网关程序。非核心部分我们直接使用他们提供的API.也就是说对于编写应用程序的人是不用知道程序实现细节,而对于我来说,我必须考虑对硬件(音频、视频、串口)的控制,也必须考虑与上面API的接口问题(应用程序API由两个DLL文件提供,现在也不用去自己编写,也不用考虑它是怎么实现的)。我已经对这些网关程序进行了网络传输协议的分析,可以得到部分端口和各种数据的标志位。我也对DLL文件和EXE文件进行了比较细致的分析(WINDOWS汇编语言API级)。但我觉得这些方法都不太理想。在工作中,如果我们要消化吸收别人的核心技术,我们必然会遇到这样的问题。所以希望各位同仁都来思考一下这个问题,并且互相交流。
Renny
2001-06-08
打赏
举报
回复
要是好搞的话,那根本就不用微软开放什么原代码,自己就可以弄出来了。我现在谈的是能否找到一种比较有效率的方法,部分实现逆向编写。
zhang79
2001-06-08
打赏
举报
回复
能搞定的话,那就变成了逆向工程了
zhang79
2001-06-08
打赏
举报
回复
难搞,能搞定那不变成了逆向工程了
Renny
2001-06-08
打赏
举报
回复
在多媒体网关上的这些DLL文件里面包含的函数,变量,结构,我都是不知道的。当然经过我的仔细分析过后,我基本上得到了里面所包含的函数,函数里面参数的基本类型也能得到。但如果参数里面包含的类型很复杂,比如包含结构,我就没有办法了。而且因为只能知道基本数据类型,所以参数的含义我没法知道,取值范围更无从谈起。实际上我提的这个问题,您们可以把它想为盗版软件的问题,只不过这是一种高级盗版,因为你能还原这个程序的原代码。
guobiao_cn
2001-06-07
打赏
举报
回复
唯一方法,知道该程序用于那方面,从实际工作中找出程序流程
Site Snagger下载整个站点
Site Snagger下载整个站点,使用WInternet API COOL
【Linux】在可执行程序中
动态
库和静态库的区别?静态链接、
动态
链接?各自有什么缺点?
什么是库文件? 库文件是事先编译好的
方法
的合集。比如:我们提前写好一些数据公式的实现,将其打包成库文件,以后使用只需要库文件就可以,不需要重新编写。 库文件分两种:静态库和
动态
库(也叫共享库) Windows系统静态库扩展名为:.lib
动态
库扩展名为.dll; Linux系统下静态库的扩展名为.a
动态
库的扩展名为.so; 一、静态库(也称作归档文件): 简单来说就是一组“准备好使用”状态...
gcc分别链接静态库和
动态
库生成
可执行文件
本文分别通过链接静态库和
动态
库来编译
可执行文件
,在使用gcc编译的过程中了解链接静态库和
动态
库的区别与联系,同时深入理解Linux系统上是如何将源程序一步步的编译组装成
可执行文件
的。 目录(一)库文件(二)编译时链接静态库文件1.源程序2.编译静态库文件libx2.a (一)库文件 (二)编译时链接静态库文件 1.源程序 main.c(主函数) #include"sub1.h" #include"sub2.h" #include<stdio.h> int main() { int x.
cmake(3):编译库和链接
可执行文件
1. 说明 在实际开发的过程当中,我们会经常需要将部分程序编译成静态或
动态
库的形式,供其他应用程序调用而不是将所有文件一次编译为一个
可执行文件
。这篇笔记就记录使用cmake编译
动态
和静态库以及将库链接到
可执行文件
中的过程。 1.1 程序功能 总计三个文件: utils.cpp/utils.h:定义了一个简单的printmsg()函数供主函数调用,该函数会将传入的字符串打印出来。 hello.cpp:主程序,调用printmsg()打印"Hello world"。 1.2 CMakeLists.txt说明
库文件(
动态
库/静态库)的编译及链接
库文件的编译及链接 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a)和
动态
库(.so)。 静态库 简介 之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件 .o 与引用到的库一起链接打包到
可执行文件
中。因此对应的链接方式称为静态链接。 试想一下,静态库与汇编生成的目标文件一起链接为
可执行文件
,那么静态库
研发管理
1,268
社区成员
28,284
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章