反编译难度
⑴ goto语句放在程序中是否可增加反编译难度c++
goto语句放在程序中是否可增加反编译难度c++。
没有这种说法吧,反编译的技术难度本身并不在于goto语句吧。
只是goto正常开发都不建议使用,会影响对于程序的阅读理解。所以说增加反编译难度也有一定道理。
⑵ autoit v3 编写的软件反编译,难度颇大,希望大大帮忙
虽然我以前是这么回答的,但实话说,不借助autoit自带的反编译工具,也是有办法反编译的。
但网络知道平台上估计没这种高人,或者说,有这种能力的高人一般没时间泡在网络知道上。
所以,在这里提问是枉然的。建议去AutoIt中文论坛或官方论坛碰碰运气吧,毕竟更专业一些。
不过话又说回来,就算去那里也未必有人肯花时间帮你反编译的(真的很费时间和精力)。一来防止引发版权问题,二来人家主要是来技术交流的,不是纯粹为分数而帮人干活的。所以,这个问题要得到解决,真的不容易。只能祝你好运了 ;-)
⑶ 易语言程序反编译
无论怎样的高手,即使反编译也不会对软件进行完全的编译,其实如果你懂得易语言不如对程序进行模仿来的实在,先对程序进行研究,对功能的实现做到心里有数然后用易语言自己做个和这个程序功能一致的程序反而更好,你说呢?
⑷ 如何让C++写的dll不被反编译
简单回答:
1、理论上不能保证程序不被反编译。
2、一些加壳软件可以做到加大被反编译的难度,迫使操作者先解壳才能做反编译,但同时会降低程序的运行效率。
3、当前的技术条件下,一般而言,反编译出的“源代码”一般而言并不能作学习,参考的源代码,多数情况下只能用于分析区部片断分析,主要用于破解或小范围类修改。
4、一些简单的加壳软件:ASPACK、UPX、PECompact等,如果想尝试,自个去搜索下载后试试。加壳后的软件还有可能被某些杀软当成恶意软件。
5、这也正是很多对安全要求高的系统使用“三层架构”(类似访问网页/网站)的原因。因为在三层架构中,核心软件、数据不被用户直接接触。
************以下是相关知识,有耐心可看看************
一、关于反编译与破解。
1、以当前的技术来说,理论上,所有的程序都存在被反编译的可能。
2、但是反编译出来的代码并不一定能被技术不高的人看懂,因为反编译出来的“源代码”与编写者写出的原代码在80%以上是不同的。这是因为反编译的原理是根据机器码(或中间码),让机算机进行反向生成高级语言,而不是找出编写者原有的代码,找出原有的代码是不可能的。反编译出来的代码在可理解性、可阅读性上,一般而言是非常差的。
3、但是,这并不代码反编译出来的“源代码”没有价值,对于内行来说,分析反编译出来的代码中的某些特定片段,就可以对程序进行破解,找出程序的关键点、口令、数据来源等等。因为破坏总是比建设要容易,分析局部比规划全局要容易得多。
4、如果考虑到被反编译将关键代码进行特殊处理的话,可能加大相关的难度,比如将特定的字符串分成多个字串在程序中存储,或是进行加密后存储,在使用时合成/生成,不用时即时在内存中清除等等……。
5、反编译后对关键部分的定位往往是根据字符串来进行的,比如在用户没有注册时,跳出一行对话,告诉用户“请注册后再使用”,破解者就会在反编译后追查这个字串所在,然后查到这个字串对应的变量与地址,再追查调用这个变量或地址的代码,然后再延伸查到什么情况下调用“调用这个变量或地址的代码”,最后,设定跳过语句。这就是最典型的破解注册的方法。破解完再将修改了的“源代码”进行编译,或是根据“源代码”直接修正程序中对应的代码,OK,破解版正式完成。
二、关于加壳。
1、理论上,同样,没有破解不了的壳。
2、但是有些加壳软件使用了一些特别的方法,使得破解壳的难度变得非常难,技术不够的朋友很难下手,比如将原程序代码拆分、变型、植入自校验等等技术。
3、但加壳软件同样是程序,它自身就存在被反编的可能,加了壳可以类比成,在一个木箱外面再加个保险柜。但千万别以为保险柜就一定是保险的,面对各种技术开锁、暴力开箱,再强的保险柜也只能是加大难度而已。
4、越复杂的加壳,就会使得程序运行时效率降得越低,这是必然的,因为原本只关注目标任务的程序现在还要时时提防着被提取、被监测。
⑸ .NET下所有语言都可以轻松被反编译吗
JVM和CLR下面的所有语言都是先编译为字节码的,相对于传统的C++,容易被反编译容易被反编译的不仅仅是C#,还有Java,F#,VB.net,事实上,C#已经可以通过native编译直接生成机器码运行了(.net native技术)这样一定程度上可以提高反编译的难度
⑹ 反汇编逆向难学吗,入门难吗
反汇编是工具来做的,比如IDA,OD,你说的这个应该是逆向和破解技术。
逆向其实是有它的难度在里面的,要跟汇编打交道,很多时候破解要涉及加密算法,驱动保护还有壳。可以这么说,逆向技术本身不算太难,但是难的是逆向防御技术。
因为逆向在windows平台上的通用性而且不是太难学,导致了商业软件为了追求安全性,产生了很多逆向分析的对抗技术,来增强自己的安全性。毕竟自己辛辛苦苦花钱花时间搞出来的东西,被别人两下学了去,怎么想怎么不舒服。
这里面,加壳鄙人不了解,不做评论。驱动保护就是在内核里搞风搞雨,入手的门槛还是比较高的。所以学逆向不难,花时间花功夫多练手。但是想把你高超的逆向功力应用到实际的商业产品上,驱动和壳是你必须面对的东西,去研究这两者会花费大量精力。
AGP论坛站长,反游戏保护和windows内核技术大牛A总听说是高二就开始研究内核技术了,lz如果花时间,也是能学成的,毕竟有成功案例在了。有点基础想撸驱动,还可以找A总报名参加下付费培训。。。广告已打, 心满意足。
⑺ vb exe程序能够反编译到何种程度
反编译到代码的程度。和你自己的源代码的差别就是一些sub/function的名字。
想增加反编译后解读难度的话,多加一些sub/function,多加一些goto。
⑻ 我写的C/S程序怎么轻易就被人反编译了
简单回答: 1、理论上不能保证程序不被反编译。 2、一些加壳软件可以做到加大被反编译的难度,迫使操作者先解壳才能做反编译,但同时会降低程序的运行效率。 3、当前的技术条件下,一般而言,反编译出的“源代码”一般而言并不能作学习,参考的源
⑼ 易语言模块有什么办法防止被反编译吗
易语言论坛中的方法:防止模块被反编译的有效方法:
请在模块中建立一个或多个窗口,将其"可视"属性设置为假,窗口上放一些随机类型的组件(尽量不要用常用组件),重要数据分散放在这些组件的属性里面,模块中的代码动态载入这些窗口,从这些组件属性中读入相关数据使用.
原理: 由于易语言有相当多类型的组件,而每个组件的属性数据保存格式都不一样,模块反编译想把每种组件中的属性数据反编译出来具有相当的难度,所以数据放在组件属性里面是安全的.
个人方法:你可以把模块转化成动态链接库DLL,这样就不容易反编译了
⑽ app可以被反编译到什么程度
Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度。
第一种情况:无混淆无加密无加壳。
直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。
第二种情况:混淆。
通常是利用Proguard做的防护。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码。但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致。
第三种情况:加密。
这里以DexGuard为例。对于这种代码加密的方法,在程序运行中必定会进行解密,只要抽出它解密的逻辑便可。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的,一定要从Smali代码看。后来发现网上已经有人做了。
解密的脚本:A look inside Dexguard
第四种情况:加壳。
这种情况跟第三种类似。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里mp出来。这里推荐Xpose的ZjDroid。
加固可以在一定程度上保护自己核心代码算法,提高破解/盗版/二次打包的难度,缓解代码注入/动态调试/内存注入攻击等。
目前市面上有很多第三方加固的平台, 如果新应用发布前需要扫描或者加固的话,可以先试试免费的,例如腾讯御安全,建议自己先去扫描测试下。