C++做的dll,能被反编译吗?

时间:2022-04-16 21:25:59
俺有一个WPF应用程序,没有找到好用的、有教程的混淆器,于是想找人做一个C++的dll,然后这个WPF就引用这个dll,把数据库连接字符串就放在这个dll里面就行了,很少的代码。
请问,这样行不啊,C++做的dll,能被反编译吗?或者说能增加反编译难度吗?

13 个解决方案

#1


能,都是汇编代码

#2


不管什么高级语言编程,都是先编译成中间语言,最后变成计算机能够识别的机器码.
计算机能识别,反编译软件就能识别.除非你变成根本运行不了的东西,不过那样也失去意义了

#3


能反编译为汇编代码。所以操作系统都可以被破解。

#4


不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢

#5


如果是C++/CLI,那么反编译的难度和C#差不多。
另外,无论混淆加密,无论什么语言,只要程序能被计算机执行,都可以分析出程序干了什么,只是难度大小的问题。所以即便windows是闭源操作系统,一样有黑客整天找出其中的漏洞,同时无论多么贵的商业软件,都有人做破解。

#6


引用 4 楼 wr3crr4 的回复:
不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢


有些工具反编译出来的就差不多是源码了~比如很多C#的工具

C++反编译~是观察cpu和内存的运行过程~从而来推算出程序原本的运行逻辑

我为什么会知道,难道我会告诉你我搞过游戏外挂么~

记得有一篇教材就是破解软件注册
找到判断验证注册码的地方,无论注册码填什么,把返回false的地方也修改返回true就可以了



#7


哎,还是不懂,一堆大道理

#8


用你打算用c++把你的连接字符串硬编码进去,那你不用费心反编译了,使用任意支持二进制文本编辑工具打开此dll,你也可以找到你的连接字符串。

#9


引用 4 楼 wr3crr4 的回复:
不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢

谁说C++不会被反编译的,揍他一顿.

#10


引用 7 楼 wr3crr4 的回复:
哎,还是不懂,一堆大道理

我觉得你还是先百度下计算机的运行原理吧...要大概了解下基础的东西...

#11


可以被反 编译的  不过现在也有技术混淆dll 增加反编译的难度

#12


引用 6 楼 moonwrite 的回复:
Quote: 引用 4 楼 wr3crr4 的回复:

不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢


有些工具反编译出来的就差不多是源码了~比如很多C#的工具

C++反编译~是观察cpu和内存的运行过程~从而来推算出程序原本的运行逻辑

我为什么会知道,难道我会告诉你我搞过游戏外挂么~

记得有一篇教材就是破解软件注册
找到判断验证注册码的地方,无论注册码填什么,把返回false的地方也修改返回true就可以了




要知道所有东西都是加载到内存,再用cpu操作的,而内存地址是具有规律编址的,这样可以分析内存地址,找到注册函数的入口地址和返回值,再利用外部工具强制修改那个内存单元的值。。。有些病毒的原理也是这样的,把函数堆栈地址重新指向到自己的函数入口,这样就可以随意执行特定函数中的代码了。。。但这需要对计算机原理有相当深的理解才能做到呢。

#13


引用 12 楼 zhi_ai_yaya 的回复:
要知道所有东西都是加载到内存,再用cpu操作的,而内存地址是具有规律编址的,这样可以分析内存地址,找到注册函数的入口地址和返回值,再利用外部工具强制修改那个内存单元的值。。。有些病毒的原理也是这样的,把函数堆栈地址重新指向到自己的函数入口,这样就可以随意执行特定函数中的代码了。。。但这需要对计算机原理有相当深的理解才能做到呢。


要想找到在dll二进制文件、运行时进程数据内存、传向数据库连接钓鱼程序(专门用来查看程序运行时发出的数据库连接字符串的工具软件)之中找到数据库连接串,易如反掌。根本用不着一个程序员懂什么病毒或者逆向工程原理就可以操作。

#1


能,都是汇编代码

#2


不管什么高级语言编程,都是先编译成中间语言,最后变成计算机能够识别的机器码.
计算机能识别,反编译软件就能识别.除非你变成根本运行不了的东西,不过那样也失去意义了

#3


能反编译为汇编代码。所以操作系统都可以被破解。

#4


不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢

#5


如果是C++/CLI,那么反编译的难度和C#差不多。
另外,无论混淆加密,无论什么语言,只要程序能被计算机执行,都可以分析出程序干了什么,只是难度大小的问题。所以即便windows是闭源操作系统,一样有黑客整天找出其中的漏洞,同时无论多么贵的商业软件,都有人做破解。

#6


引用 4 楼 wr3crr4 的回复:
不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢


有些工具反编译出来的就差不多是源码了~比如很多C#的工具

C++反编译~是观察cpu和内存的运行过程~从而来推算出程序原本的运行逻辑

我为什么会知道,难道我会告诉你我搞过游戏外挂么~

记得有一篇教材就是破解软件注册
找到判断验证注册码的地方,无论注册码填什么,把返回false的地方也修改返回true就可以了



#7


哎,还是不懂,一堆大道理

#8


用你打算用c++把你的连接字符串硬编码进去,那你不用费心反编译了,使用任意支持二进制文本编辑工具打开此dll,你也可以找到你的连接字符串。

#9


引用 4 楼 wr3crr4 的回复:
不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢

谁说C++不会被反编译的,揍他一顿.

#10


引用 7 楼 wr3crr4 的回复:
哎,还是不懂,一堆大道理

我觉得你还是先百度下计算机的运行原理吧...要大概了解下基础的东西...

#11


可以被反 编译的  不过现在也有技术混淆dll 增加反编译的难度

#12


引用 6 楼 moonwrite 的回复:
Quote: 引用 4 楼 wr3crr4 的回复:

不是说的C++的,不会被反编译的吗?怎么又变成可以被反编译了呢


有些工具反编译出来的就差不多是源码了~比如很多C#的工具

C++反编译~是观察cpu和内存的运行过程~从而来推算出程序原本的运行逻辑

我为什么会知道,难道我会告诉你我搞过游戏外挂么~

记得有一篇教材就是破解软件注册
找到判断验证注册码的地方,无论注册码填什么,把返回false的地方也修改返回true就可以了




要知道所有东西都是加载到内存,再用cpu操作的,而内存地址是具有规律编址的,这样可以分析内存地址,找到注册函数的入口地址和返回值,再利用外部工具强制修改那个内存单元的值。。。有些病毒的原理也是这样的,把函数堆栈地址重新指向到自己的函数入口,这样就可以随意执行特定函数中的代码了。。。但这需要对计算机原理有相当深的理解才能做到呢。

#13


引用 12 楼 zhi_ai_yaya 的回复:
要知道所有东西都是加载到内存,再用cpu操作的,而内存地址是具有规律编址的,这样可以分析内存地址,找到注册函数的入口地址和返回值,再利用外部工具强制修改那个内存单元的值。。。有些病毒的原理也是这样的,把函数堆栈地址重新指向到自己的函数入口,这样就可以随意执行特定函数中的代码了。。。但这需要对计算机原理有相当深的理解才能做到呢。


要想找到在dll二进制文件、运行时进程数据内存、传向数据库连接钓鱼程序(专门用来查看程序运行时发出的数据库连接字符串的工具软件)之中找到数据库连接串,易如反掌。根本用不着一个程序员懂什么病毒或者逆向工程原理就可以操作。