Home > Software engineering >  VB can be decompiled got all the code?
VB can be decompiled got all the code?

Time:11-20

请教各位大神,
我给我们公司写了一个简单的ERP软件,
现在公司领导很担心软件被反编译,造成内部资料外泄,
因为我是把连接语句写在代码里的,里面包含了服务器的IP地址,用户名,密码等等,
但是,我在网上查了一下,要完全反编译EXE文件,得到全部代码非常难,
并且,就算被被反编译了,对方得到源码,也只是公司内部IP,指定数据库的用户和密码,
从外部,用这些资料根本无法得到公司数据库上的资料,
(我的ERP软件只能在公司内部局域网用,外网是连不上的,)
这样看,基本不存在资料外泄的可能,(除非公司的服务器被攻击,但这不应该是我软件的问题)
这样理解,对吗?

CodePudding user response:

VB6的exe,无法"反编译"到源码级别,只能算是"反汇编",
并且多数针对VB程序"反编译"的工具软件,反编译的代码也基本没什么价值,

如果你的IP,用户名,密码是明文写在代码中的,那倒是可以得到那些信息的,

CodePudding user response:

连接字符串直接写软件中,用反编译工具是可以直接查看到的,不过你只是在内部局域网用就没什么好担心的,除非你老板担心员工盗取公司数据,那你可以把连接字符串中的 ip 用户名 密码 用变量 拼接,把这些关键变量进行加密放入配置文件中,拼接连接字符串时进行读取解密拼接,这样加一层保护因该够用了,

CodePudding user response:

都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来,到了断点看看传入的参数,就有你的连接串了,不论你怎么加密,连接串是明文的吧,
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了,
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的,

CodePudding user response:



引用 2 楼 djmake 的回复:
连接字符串直接写软件中,用反编译工具是可以直接查看到的,不过你只是在内部局域网用就没什么好担心的,除非你老板担心员工盗取公司数据,那你可以把连接字符串中的 ip 用户名 密码 用变量 拼接,把这些关键变量进行加密放入配置文件中,拼接连接字符串时进行读取解密拼接,这样加一层保护因该够用了,

这个方法好,谢谢,

CodePudding user response:

引用 1 楼 Chen8013 的回复:
VB6的exe,无法"反编译"到源码级别,只能算是"反汇编",
并且多数针对VB程序"反编译"的工具软件,反编译的代码也基本没什么价值,

如果你的IP,用户名,密码是明文写在代码中的,那倒是可以得到那些信息的,

谢谢,下一步打算按照2楼的方法加一层保护,

CodePudding user response:

引用 3 楼 chewinggum 的回复:
都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来,到了断点看看传入的参数,就有你的连接串了,不论你怎么加密,连接串是明文的吧,
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了,
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的,

你这个好难哦,除非很厉害的高手,一般人没办法,
而且,如果真有这个高手,肯定不会在我们公司干了,
我们公司20几年的历史,年销售额5-6个亿,连一个像样的ERP都没有,你可以想象,我们公司的数据管理落后到什么程度?
我甚至可以在内部公开我的ERP源码,估计他们都找不到连接语句在哪里,就算他们拿到连接语句,我估计都没几个人会用,
所以,有时候,我感觉我的担心都是多余的,

CodePudding user response:

ida pro了解一下,基本上vb的代码可以反编译出可读性很高的c语言的伪代码,

CodePudding user response:

引用 6 楼 oNiShiHuaiDan 的回复:
Quote: 引用 3 楼 chewinggum 的回复:

都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来,到了断点看看传入的参数,就有你的连接串了,不论你怎么加密,连接串是明文的吧,
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了,
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的,

你这个好难哦,除非很厉害的高手,一般人没办法,
而且,如果真有这个高手,肯定不会在我们公司干了,
我们公司20几年的历史,年销售额5-6个亿,连一个像样的ERP都没有,你可以想象,我们公司的数据管理落后到什么程度?
我甚至可以在内部公开我的ERP源码,估计他们都找不到连接语句在哪里,就算他们拿到连接语句,我估计都没几个人会用,
所以,有时候,我感觉我的担心都是多余的,


你公司只要有一个人,一个坏人,连接数据库干坏事就有可能给你老板带来巨大的损失,这个坏人本身并不需要技术精通,
我回帖里说的是十多年前真实的做法,当时一个医院,内部人员想取药品数据卖给医药代表,自己搞不定就找到我同事给酬劳看能不能弄出来数据,我同事周末去了一趟没搞定,把整个终端程序文件夹拷贝回来分析,后来吃饭的时候跟我聊到这事情,我跟他讲了这个思路,然后演示了一下如何跟踪,第二个周末他过去就搞定了,举这个例子只是告诉你有想法的人并不一定要他自己会这么做,而且这个手法并不需要多么高手,当年我研究这个的时候才刚毕业没多久,我那个同事从来没接触过的也就看了一遍我的演示就明白怎么回事了,整个过程就跟调试程序一样一样的,并不需要太多汇编语言基础,
三年前还有一件事,公司搞健身比赛,找一家公司做,这家公司给每人发了一个手环,可以通过手机或PC端应用读取手环的计步信息上传到服务器,PC端的那个程序看了一下有mysql的dll,一看就是是直连数据库的,用上面完全相同的做法,三分钟就抓到数据库连接串,一堆人都在想办法甩手环作弊的时候,我只要update一下就行,
在2000年左右的时候终端直连数据库的做法很普遍,现在看来这已经是极其落后和危险的做法了,不要因为你个人的自信,馅一个20年历史的公司于危险,另外建议你老板花点钱把公司的信息系统完整的规划及实现起来,

CodePudding user response:

引用 8 楼 chewinggum 的回复:
Quote: 引用 6 楼 oNiShiHuaiDan 的回复:

Quote: 引用 3 楼 chewinggum 的回复:

都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来,到了断点看看传入的参数,就有你的连接串了,不论你怎么加密,连接串是明文的吧,
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了,
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的,

你这个好难哦,除非很厉害的高手,一般人没办法,
而且,如果真有这个高手,肯定不会在我们公司干了,
我们公司20几年的历史,年销售额5-6个亿,连一个像样的ERP都没有,你可以想象,我们公司的数据管理落后到什么程度?
我甚至可以在内部公开我的ERP源码,估计他们都找不到连接语句在哪里,就算他们拿到连接语句,我估计都没几个人会用,
所以,有时候,我感觉我的担心都是多余的,


你公司只要有一个人,一个坏人,连接数据库干坏事就有可能给你老板带来巨大的损失,这个坏人本身并不需要技术精通,
我回帖里说的是十多年前真实的做法,当时一个医院,内部人员想取药品数据卖给医药代表,自己搞不定就找到我同事给酬劳看能不能弄出来数据,我同事周末去了一趟没搞定,把整个终端程序文件夹拷贝回来分析,后来吃饭的时候跟我聊到这事情,我跟他讲了这个思路,然后演示了一下如何跟踪,第二个周末他过去就搞定了,举这个例子只是告诉你有想法的人并不一定要他自己会这么做,而且这个手法并不需要多么高手,当年我研究这个的时候才刚毕业没多久,我那个同事从来没接触过的也就看了一遍我的演示就明白怎么回事了,整个过程就跟调试程序一样一样的,并不需要太多汇编语言基础,
三年前还有一件事,公司搞健身比赛,找一家公司做,这家公司给每人发了一个手环,可以通过手机或PC端应用读取手环的计步信息上传到服务器,PC端的那个程序看了一下有mysql的dll,一看就是是直连数据库的,用上面完全相同的做法,三分钟就抓到数据库连接串,一堆人都在想办法甩手环作弊的时候,我只要update一下就行,
在2000年左右的时候终端直连数据库的做法很普遍,现在看来这已经是极其落后和危险的做法了,不要因为你个人的自信,馅一个20年历史的公司于危险,另外建议你老板花点钱把公司的信息系统完整的规划及实现起来,

你这样说很有道理,我明白了,
果然是行内人

CodePudding user response:

我们公司有专门的IT部门(我不是IT部门的,我是业余的,玩小儿科那种)
我们公司IT部门专业人员大概7-8个,
按理说,让老板花钱买一个专业的ERP软件,应该问题也不大,但是难在实施,
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related