怎么知道软件里使用了开源的代码??

chary8088 2011-11-10 10:23:27
for example:
某个软件使用了开源的库,如果他使用的静态库,你怎么知道他使用了某个开源的库?
比如绿坝,如果它使用静态库,你怎么查出来呢???
Apache,BSD,GPL,LGPL,MIT,协议还怎么实现,你没法他的软件使用了开源的代码,怎么还要求他开源??
...全文
809 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chary8088 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 keiy 的回复:]

用peid或ollgdb可以搜索EXE中字串,看看是否含开源码的关键字
[/Quote]
面对浩如烟海的软件,这样应该不行的
柯本 2011-11-10
  • 打赏
  • 举报
回复
用peid或ollgdb可以搜索EXE中字串,看看是否含开源码的关键字
chary8088 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 akirya 的回复:]

引用楼主 chary8088 的回复:
for example:
某个软件使用了开源的库,如果他使用的静态库,你怎么知道他使用了某个开源的库?
比如绿坝,如果它使用静态库,你怎么查出来呢???
Apache,BSD,GPL,LGPL,MIT,协议还怎么实现,你没法他的软件使用了开源的代码,怎么还要求他开源??

一般来说,同样的代码,编译出来的二进制是一样的。
用二进制工具比对一下……
[/Quote]
能从二进制中搜索出加密算法?这个还没用过
看到过一些修改二进制程序中作者名之类的
wxwlll 2011-11-10
  • 打赏
  • 举报
回复
看注释!
chary8088 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 waistcoat06 的回复:]

开源代码里一般都有版本描述的串,类似下面的东西
static char[] = "GUN xxx version 1.1 etc"
这种东西最终会编译,进入lib中
如果某个软件没有修改过开源代码,而直接引入lib,在最终的二进制文件EXE DLL中一般会有这种字符串存在
去www.sysinternals.com中下载个提串工具strings.exe跑一下这种二进制文件
[/Quote]

哦 原来是这样,
听另一位同事说导出符号表,我认为不对,导出的都是汇编,都一样。。。
  • 打赏
  • 举报
回复
[Quote=引用楼主 chary8088 的回复:]
for example:
某个软件使用了开源的库,如果他使用的静态库,你怎么知道他使用了某个开源的库?
比如绿坝,如果它使用静态库,你怎么查出来呢???
Apache,BSD,GPL,LGPL,MIT,协议还怎么实现,你没法他的软件使用了开源的代码,怎么还要求他开源??
[/Quote]
一般来说,同样的代码,编译出来的二进制是一样的。
用二进制工具比对一下基本上就可以确定。

估计lz是没见过某些破解专用工具,搜索可执行文件,能够找出代码中使用了那些加密算法。
WaistCoat06 2011-11-10
  • 打赏
  • 举报
回复
开源代码里一般都有版本描述的串,类似下面的东西
static char[] = "GUN xxx version 1.1 etc"
这种东西最终会编译,进入lib中
如果某个软件没有修改过开源代码,而直接引入lib,在最终的二进制文件EXE DLL中一般会有这种字符串存在
去www.sysinternals.com中下载个提串工具strings.exe跑一下这种二进制文件

chary8088 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luciferisnotsatan 的回复:]

至于驴霸,传说是直接把一些信息传到别人服务器上了(抄的代码里,有上报数据相关的内容,比如,更新。改都没改,直接发到对方服务器上了)
[/Quote]

这也太懒了吧,稍微修改下就OK了
luciferisnotsatan 2011-11-10
  • 打赏
  • 举报
回复
至于驴霸,传说是直接把一些信息传到别人服务器上了(抄的代码里,有上报数据相关的内容,比如,更新。改都没改,直接发到对方服务器上了)
luciferisnotsatan 2011-11-10
  • 打赏
  • 举报
回复
个人觉得,查编译后的汇编码,看看是不是整段整段一样的。
chary8088 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 luciferisnotsatan 的回复:]

传送门
http://bbs.chinaunix.net/thread-3617163-1-1.html

难道lz主要想问Apache,BSD,GPL,LGPL,MIT这几个里哪个商用有限制??
[/Quote]

不是,我是想知道开源组织怎么知道你使用了他们的library或一些中间件,底层网络库
luciferisnotsatan 2011-11-10
  • 打赏
  • 举报
回复
传送门
http://bbs.chinaunix.net/thread-3617163-1-1.html

难道lz主要想问Apache,BSD,GPL,LGPL,MIT这几个里哪个商用有限制??
luciferisnotsatan 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 chary8088 的回复:]

同时同样的帖子chinaunix论坛,
CSDN看来学生和新手站了多数。。。。。。。
[/Quote]
????

我怎么觉得这边的回答比那边c++版的靠谱点

chary8088 2011-11-10
  • 打赏
  • 举报
回复
同时同样的帖子chinaunix论坛,
CSDN看来学生和新手站了多数。。。。。。。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧