VB能不能被反编译得到全部代码?

oNiShiHuaiDan 2018-07-03 07:11:35
请教各位大神。
我给我们公司写了一个简单的ERP软件。
现在公司领导很担心软件被反编译,造成内部资料外泄。
因为我是把连接语句写在代码里的,里面包含了服务器的IP地址,用户名,密码等等。
但是,我在网上查了一下,要完全反编译EXE文件,得到全部代码非常难。
并且,就算被被反编译了,对方得到源码,也只是公司内部IP,指定数据库的用户和密码。
从外部,用这些资料根本无法得到公司数据库上的资料。
(我的ERP软件只能在公司内部局域网用,外网是连不上的。)
这样看,基本不存在资料外泄的可能。(除非公司的服务器被攻击,但这不应该是我软件的问题)
这样理解,对吗?
...全文
5797 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
sevk 2019-05-28
  • 打赏
  • 举报
回复
听说反编译后,面目全非,还会有岐义。
aq1232007 2019-03-12
  • 打赏
  • 举报
回复
你们公司的领导一定是个傻瓜,你就把他当傻瓜来对待,就可以以。
cbm6666 2018-07-22
  • 打赏
  • 举报
回复
最简单的是将明文用户名与密码加密 使用时解密 加密解密将程序写在DLL里面

VB6是能被反编译 但是除了一些使用的框架控件与小部分的明文看得到,大半都是看不到的, 如果真能被反编译你还学VB6干啥?? 等着反编译别人写好的代码就行,何必那么辛苦自己学习编程?
脆皮大雪糕 2018-07-17
  • 打赏
  • 举报
回复
引用 13 楼 oNiShiHuaiDan 的回复:
[quote=引用 12 楼 Chen8013 的回复:]
[quote=引用 11 楼 oNiShiHuaiDan 的回复:]
. . . . . . .
有没有其他相对比较简单的安全措施来保护我们的数据?

在你的“服务器”上运行一个服务程序,所有的数据信息,必须通过这个服务程序获取。
这个“服务程序”不要被泄露出去(程序源码更是不要泄露)。
所有“数据”的增、删、查、改等操作,都由“客户端”连接服务程序,
  通过向服务程序发送“指令代码”(代码表由你自己决定),由服务程序完成实际操作、返回结果。
你的“客户端”发送的需要连接的数据库、表名、字段名等“文本”,
  可以“加密”发送(指某种“可逆”加密算法),当然同样可以用“指令代码”表示。
[/quote]
谢谢。[/quote]


这不就是实现中间的业务逻辑层
threenewbee 2018-07-17
  • 打赏
  • 举报
回复
引用 16 楼 oNiShiHuaiDan 的回复:
我的想法大概是如此(不是严格意义上的三层架构)
我在服务器上放置一个程序,我的客户端运行时,会顺便运行这个服务器上的程序。
服务器上的程序只有一个功能,就是根据加密函数产生一个连接数据库的语句给客户端用。
然后客户端根据这个连接语句操作数据库。

这个应该不是严格意义上的三层价格,但是也可以对数据库产生一定的保护。

现在问题是,我在运行服务器上的加密程序后,如何得到那个连接语句。
也就是说,如果在一个运行的EXE程序中,得到另外一个运行的EXE程序的某个函数的值。

能不能指点一下?
--------------------------------错别字太多,更正一下。


vb的isapi程序编写服务器程序,inet控件编写客户端和服务器通讯的程序,可以做到。
oNiShiHuaiDan 2018-07-17
  • 打赏
  • 举报
回复
我的想法大概是如此(不是严格意义上的三层架构)
我在服务器上放置一个程序,我的客户端运行时,会顺便运行这个服务器上的程序。
服务器上的程序只有一个功能,就是根据加密函数产生一个连接数据库的语句给客户端用。
然后客户端根据这个连接语句操作数据库。

这个应该不是严格意义上的三层价格,但是也可以对数据库产生一定的保护。

现在问题是,我在运行服务器上的加密程序后,如何得到那个连接语句。
也就是说,如果在一个运行的EXE程序中,得到另外一个运行的EXE程序的某个函数的值。

能不能指点一下?
--------------------------------错别字太多,更正一下。
oNiShiHuaiDan 2018-07-17
  • 打赏
  • 举报
回复


这不就是实现中间的业务逻辑层[/quote]
-----------------------------------------------------------------
我的想法大概是如此(不是严格意义上的三层架构)
我在服务器上放置一个程序,我的客户端运行是,会顺便运行这个服务器上的程序。
服务器上的程序只有一个功能,就是根据加密函数产生一个连接数据库的语句给客户端用。
然后客户端根据这个连接语句跟数据库发送接受数据。

这个应该不是严格意义上的三层价格,但是也可以对数据库产生一定的保护。

现在问题是,我在运行服务器上的加密程序后,如果得到那个连接语句。
也就是说,如果在一个运行的EXE程序中,得到另外一个运行的EXE程序的某个函数的值。

能不能指点一下?

oNiShiHuaiDan 2018-07-15
  • 打赏
  • 举报
回复
引用 12 楼 Chen8013 的回复:
[quote=引用 11 楼 oNiShiHuaiDan 的回复:]
. . . . . . .
有没有其他相对比较简单的安全措施来保护我们的数据?

在你的“服务器”上运行一个服务程序,所有的数据信息,必须通过这个服务程序获取。
这个“服务程序”不要被泄露出去(程序源码更是不要泄露)。
所有“数据”的增、删、查、改等操作,都由“客户端”连接服务程序,
  通过向服务程序发送“指令代码”(代码表由你自己决定),由服务程序完成实际操作、返回结果。
你的“客户端”发送的需要连接的数据库、表名、字段名等“文本”,
  可以“加密”发送(指某种“可逆”加密算法),当然同样可以用“指令代码”表示。
[/quote]
谢谢。
舉杯邀明月 2018-07-15
  • 打赏
  • 举报
回复
引用 11 楼 oNiShiHuaiDan 的回复:
. . . . . . .
有没有其他相对比较简单的安全措施来保护我们的数据?

在你的“服务器”上运行一个服务程序,所有的数据信息,必须通过这个服务程序获取。
这个“服务程序”不要被泄露出去(程序源码更是不要泄露)。
所有“数据”的增、删、查、改等操作,都由“客户端”连接服务程序,
  通过向服务程序发送“指令代码”(代码表由你自己决定),由服务程序完成实际操作、返回结果。
你的“客户端”发送的需要连接的数据库、表名、字段名等“文本”,
  可以“加密”发送(指某种“可逆”加密算法),当然同样可以用“指令代码”表示。
oNiShiHuaiDan 2018-07-15
  • 打赏
  • 举报
回复
引用 3 楼 chewinggum 的回复:
都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来。到了断点看看传入的参数,就有你的连接串了。不论你怎么加密,连接串是明文的吧。
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了。
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的。

请教您一个问题。三层架构我去了解了一下,发现对于我这种菜鸟来说,要实现几乎不可能。
有没有其他相对比较简单的安全措施来保护我们的数据?
oNiShiHuaiDan 2018-07-15
  • 打赏
  • 举报
回复
我们公司有专门的IT部门(我不是IT部门的,我是业余的,玩小儿科那种)
我们公司IT部门专业人员大概7-8个。
按理说,让老板花钱买一个专业的ERP软件,应该问题也不大。但是难在实施。
一个软件几十万(当然,贵的几百万)的预算应该也是没啥问题的,但是公司很多特殊的要求在软件里无法实施,推行的压力会很大。
如果找人二次开发,又怕碰到不道德的人,漫天要价,尤其实施到一半时,来搞得你不上不下的(公司以前碰到过一起这样的事情)。
所以,现在大家对软件实施,是真的有比较多的担心。
2016年时,买了管家婆来用,现在发现还是有很多要求达不到。很多公司的业务行为确实不规范,我们也知道不规范,但是各部门不愿意改,就是要那样操作,而一般市面上的软件又不支持这样的不规范的行为,所以导致实施很难进行。

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

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

你公司只要有一个人,一个坏人,连接数据库干坏事就有可能给你老板带来巨大的损失,这个坏人本身并不需要技术精通。
我回帖里说的是十多年前真实的做法,当时一个医院,内部人员想取药品数据卖给医药代表,自己搞不定就找到我同事给酬劳看能不能弄出来数据。我同事周末去了一趟没搞定,把整个终端程序文件夹拷贝回来分析。后来吃饭的时候跟我聊到这事情,我跟他讲了这个思路,然后演示了一下如何跟踪。第二个周末他过去就搞定了。举这个例子只是告诉你有想法的人并不一定要他自己会这么做。而且这个手法并不需要多么高手,当年我研究这个的时候才刚毕业没多久,我那个同事从来没接触过的也就看了一遍我的演示就明白怎么回事了。整个过程就跟调试程序一样一样的,并不需要太多汇编语言基础。
三年前还有一件事,公司搞健身比赛,找一家公司做,这家公司给每人发了一个手环,可以通过手机或PC端应用读取手环的计步信息上传到服务器。PC端的那个程序看了一下有mysql的dll,一看就是是直连数据库的。用上面完全相同的做法,三分钟就抓到数据库连接串。一堆人都在想办法甩手环作弊的时候,我只要update一下就行。
在2000年左右的时候终端直连数据库的做法很普遍,现在看来这已经是极其落后和危险的做法了。不要因为你个人的自信,馅一个20年历史的公司于危险,另外建议你老板花点钱把公司的信息系统完整的规划及实现起来。[/quote]
你这样说很有道理,我明白了。
果然是行内人
脆皮大雪糕 2018-07-14
  • 打赏
  • 举报
回复
引用 6 楼 oNiShiHuaiDan 的回复:
[quote=引用 3 楼 chewinggum 的回复:]
都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来。到了断点看看传入的参数,就有你的连接串了。不论你怎么加密,连接串是明文的吧。
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了。
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的。

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

你公司只要有一个人,一个坏人,连接数据库干坏事就有可能给你老板带来巨大的损失,这个坏人本身并不需要技术精通。
我回帖里说的是十多年前真实的做法,当时一个医院,内部人员想取药品数据卖给医药代表,自己搞不定就找到我同事给酬劳看能不能弄出来数据。我同事周末去了一趟没搞定,把整个终端程序文件夹拷贝回来分析。后来吃饭的时候跟我聊到这事情,我跟他讲了这个思路,然后演示了一下如何跟踪。第二个周末他过去就搞定了。举这个例子只是告诉你有想法的人并不一定要他自己会这么做。而且这个手法并不需要多么高手,当年我研究这个的时候才刚毕业没多久,我那个同事从来没接触过的也就看了一遍我的演示就明白怎么回事了。整个过程就跟调试程序一样一样的,并不需要太多汇编语言基础。
三年前还有一件事,公司搞健身比赛,找一家公司做,这家公司给每人发了一个手环,可以通过手机或PC端应用读取手环的计步信息上传到服务器。PC端的那个程序看了一下有mysql的dll,一看就是是直连数据库的。用上面完全相同的做法,三分钟就抓到数据库连接串。一堆人都在想办法甩手环作弊的时候,我只要update一下就行。
在2000年左右的时候终端直连数据库的做法很普遍,现在看来这已经是极其落后和危险的做法了。不要因为你个人的自信,馅一个20年历史的公司于危险,另外建议你老板花点钱把公司的信息系统完整的规划及实现起来。
threenewbee 2018-07-14
  • 打赏
  • 举报
回复
ida pro了解一下,基本上vb的代码可以反编译出可读性很高的c语言的伪代码。
oNiShiHuaiDan 2018-07-14
  • 打赏
  • 举报
回复
引用 3 楼 chewinggum 的回复:
都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来。到了断点看看传入的参数,就有你的连接串了。不论你怎么加密,连接串是明文的吧。
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了。
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的。

你这个好难哦。除非很厉害的高手,一般人没办法。
而且,如果真有这个高手,肯定不会在我们公司干了。
我们公司20几年的历史,年销售额5-6个亿。连一个像样的ERP都没有,你可以想象,我们公司的数据管理落后到什么程度?
我甚至可以在内部公开我的ERP源码,估计他们都找不到连接语句在哪里,就算他们拿到连接语句,我估计都没几个人会用。
所以,有时候,我感觉我的担心都是多余的。
oNiShiHuaiDan 2018-07-14
  • 打赏
  • 举报
回复
引用 1 楼 Chen8013 的回复:
VB6的exe,无法“反编译”到源码级别,只能算是“反汇编”。
并且多数针对VB程序“反编译”的工具软件,反编译的代码也基本没什么价值。

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

谢谢,下一步打算按照2楼的方法加一层保护。
oNiShiHuaiDan 2018-07-14
  • 打赏
  • 举报
回复


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

这个方法好。谢谢。
djmake 2018-07-04
  • 打赏
  • 举报
回复
连接字符串直接写软件中,用反编译工具是可以直接查看到的,不过你只是在内部局域网用就没什么好担心的,除非你老板担心员工盗取公司数据,那你可以把连接字符串中的 ip 用户名 密码 用变量 拼接,把这些关键变量进行加密放入配置文件中,拼接连接字符串时进行读取解密拼接,这样加一层保护因该够用了。
脆皮大雪糕 2018-07-04
  • 打赏
  • 举报
回复
都不用全部反编译,动态跟踪,在你调用数据库连接函数那里加个断点,然后跑起来。到了断点看看传入的参数,就有你的连接串了。不论你怎么加密,连接串是明文的吧。
再说IP问题,家贼难防,往往出问题都是内部人使坏,破坏性比外部黑客猛多了。
所以,如果不是三层架构,而是操作员操作的客户端直连数据库进行处理,那么你老板的担心是有道理的。
舉杯邀明月 2018-07-03
  • 打赏
  • 举报
回复
VB6的exe,无法“反编译”到源码级别,只能算是“反汇编”。
并且多数针对VB程序“反编译”的工具软件,反编译的代码也基本没什么价值。

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

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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