精华内容
下载资源
问答
  • 微信小程序反编译

    2021-01-04 14:43:04
    微信小程序反编译   最近公司想做地图业务,但是考虑到数据的重要性,我们就需要从各个角度进行评估,如何保证我们的程序安全;经过长期的调研发现微信小程序是没办法防止别人抓包的,只要连上charles就能随意...

    微信小程序反编译

      最近公司想做地图业务,但是考虑到数据的重要性,我们就需要从各个角度进行评估,如何保证我们的程序安全;经过长期的调研发现微信小程序是没办法防止别人抓包的,只要连上charles就能随意抓取微信小程序的任意一个接口数据,因此我们只能对程序代码进行加固,主要的方式如下:

    1.  接口通讯层面添加signature,后台获取参数后进行解密比对,如果不一致直接返回报错。

    2. 接口次数限制,为了防止别人频繁刷后台接口,接口需要对同一用户做次数限制。

    3. 数据加密,为了防止别人轻易获取数据,需要对接口返回值再后台进行对称加密,前端进行解密。

    以上是目前考虑的安全防范,但是由于小程序本身是可以破解的,因此以上的方案就现的不太安全,但是能够起到一定的保护作用。可能很多人对小程序破解感到陌生,认为小程序是微信的,微信的安全肯定会很高,不可破解,事实并非如此。

    于是我针对OFO小程序做一次编译和破解,深入了解一下情况,看看我们的加密是否安全,如果解密之后,代码暴露无疑,公钥和算法轻易拿到,说明前端永远都不是安全的。

    一、下载网易模拟器

    mumu.163.com/baidu/

    根据自己的系统选择对应的软件进行安装。

    安装成功后,如下:

     

    image

     

     

    二、再模拟器上面安装对应的软件(微信、RE文件管理器)

    1. 打开应用中心,搜索 RE文件管理器和微信,分别进行下载

     

    image

     

     

    2. 打开微信,输入帐号进行登录,登录成功后,点击发现,点击 “小程序”

     

    image

     

     

    3. 搜索ofo小黄车

     

    image

     

     

    4. 打开ofo小黄车官方版本

     

    image

     

     

    此页面可能会打不开,可能是模拟器的问题,但是没关系,小程序文件已经下载到本地了。

    三、打开RE文件管理器

    1. 进入到目录中:/data/data/com.tencent.mm/MicroMsg

    这个下面会存放各种文件,没登录一个用户会产生一个hash串作为用户标识

     

    image

     

     

    如上图所示,我登录了2个微信帐号,产生了2个hash串。

    2. 随便选择一个用户进去,确保这个用户点击过ofo小程序。(如果只登录过一个帐号,里面只有一个hash串)

     

    image

     

     

    3. 进入到appbrand中,里面包含2个文件夹,一个是pkg(执行文件),一个是jscache(缓存文件)

     

    image

     

     

    4. 打开pkg文件夹

     

    image

     

     

    里面包含了打开过的小程序执行文件,找到ofo的文件进行;

    a. 鼠标单击长按,右边会出现一个选项

    b. 选择创建tar文件

     

    image

     

     

    c. 接下来,选择不压缩、压缩成功后,选择查看,会进到查看目录,看到刚刚压缩的tar文件

     

    image

     

     

    5. 鼠标长按此文件,右边选择发送,通过微信发送给对应的好友,不能直接拷贝到自己电脑上,只能通过微信接收的方式。

    四、编译小程序源码

    1. 打开终端,用git下载代码

    git clone https://github.com/qwerty472123/wxappUnpacker.git
    复制代码
    1. 安装依赖,安装之前需要安装Node环境(此处自行安装,不提供安装方式)
    cd wxappUnpacker
    
    npm i 或者 cnpm i
    
    //安装依赖文件
    复制代码
    1. 运行代码
    //window系统:
    node wuWxapkg.js C:\work\UppackWxApp\app\_362760388_3.wxapkg
    
    //Mac系统
    node wuWxapkg.js /Users/jacksoft/Desktop/_-1050685970_73.wxapk
    复制代码

    运行完成后,即可生成编译之后的源码,如下:

    目录结构:

     

    image

     

     

    页面结构:

     

    image

     

     

    以上即为对OFO小程序的破解步骤,通过编辑器打开看了一下代码,发现可读性还是非常好的,结构完整,部分变量做了混淆,即使里面存放了公钥和算法都可以找到进行研究,因此前端永远都不是安全的。

    我们能做的,就是先把自己变强大,等到强大以后,才会有人来攻击你,针对一个小企业要考虑的不是安全而是如何快速成长和壮大。

    展开全文
  • 简介:Java是一种跨平台的、解释型语言。...因此,Java中间代码的反编译 ...转发+关注,私信编“资料”免费分享资料给你retro tin robot toys hold up the word JAVAJava是一种跨平台的、解释型语言。...

    简介:Java是一种跨平台的、解释型语言。Java 源代码编译中间“字节码”存储于class文件中。Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名、方法名等。因此,Java中间代码的反编译 ...转发+关注,私信小编“资料”免费分享资料给你

    09de8352da175e3b49898cd9ed880a3a.png

    retro tin robot toys hold up the word JAVA

    Java是一种跨平台的、解释型语言。Java 源代码编译中间“字节码”存储于class文件中。Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名、方法名等。因此,Java中间代码的反编译就变得非常容易。目前市场上有许多免费的、商用的反编译软件,都能够生成高质量的反编译后的源代码。所以,对开发人员来说,如何保护Java程序就变成了一个非常重要的挑战。本文首先讨论了保护Java程序的基本方法,然后对代码混淆问题进行深入研究,最后结合一个实际的应用程序,分析如何在实践中保护Java程序。

    反编译成为保护Java程序的最大挑战

    通常C、C++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码。通常所有的源文件被编译、链接成一个可执行文件。在这些可执行文件中,编译器删除了程序中的变量名称、方法名称等信息,这些信息往往是由内存地址表示,例如如果需要使用一个变量,往往是通过这个变量的地址来访问的。因此,反编译这些本地的目标代码就是非常困难的。

    Java语言的出现,使得反编译变得非常容易而有效。原因如下:1.由于跨平台的需求,Java的指令集比较简单而通用,较容易得出程序的语义信息;2.Java编译器将每一个类编译成一个单独的文件,这也简化了反编译的工作;3.Java 的Class文件中,仍然保留所有的方法名称、变量名称,并且通过这些名称来访问变量和方法,这些符号往往带有许多语义信息。由于Java程序自身的特点,对于不经过处理的Java程序反编译的效果非常好。

    目前,市场上有许多Java的反编译工具,有免费的,也有商业使用的,还有的是开放源代码的。这些工具的反编译速度和效果都非常不错。好的反编译软件,能够反编译出非常接近源代码的程序。因此,通过反编译器,黑客能够对这些程序进行更改,或者复用其中的程序。因此,如何保护Java程序不被反编译,是非常重要的一个问题。

    常用的保护技术

    由于Java字节码的抽象级别较高,因此它们较容易被反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。

    隔离Java程序

    最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。目前,通过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等。但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离Java程序。这种保护方式见图1所示。

    c69de7d5e0b1c75acd8fcb4606c03146.gif

    图1隔离Java程序示意图

    对Class文件进行加密

    为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。

    在实现时,开发人员往往通过自定义ClassLoader类来完成加密类的装载(注意由于安全性的原因,Applet不能够支持自定义的ClassLoader)。自定义的ClassLoader首先找到加密的类,而后进行解密,最后将解密后的类装载到JVM当中。在这种保护方式中,自定义的ClassLoader是非常关键的类。由于它本身不是被加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法被攻克,那么被加密的类也很容易被解密。这种保护方式示意图见图2。

    c4ed3d747d2610a298caac706414d369.gif

    图2 对Class文件进行加密示意图

    转换成本地代码

    将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换。如果仅仅转换关键部分模块,Java程序在使用这些模块时,需要使用JNI技术进行调用。

    当然,在使用这种技术保护Java程序的同时,也牺牲了Java的跨平台特性。对于不同的平台,我们需要维护不同版本的本地代码,这将加重软件支持和维护的工作。不过对于一些关键的模块,有时这种方案往往是必要的。

    为了保证这些本地代码不被修改和替代,通常需要对这些代码进行数字签名。在使用这些本地代码之前,往往需要对这些本地代码进行认证,确保这些代码没有被黑客更改。如果签名检查通过,则调用相关JNI方法。这种保护方式示意图见图3。

    代码混淆

    e24793d3a4bf3701787e1d99e6a5628d.gif

    图3 转换成本地代码示意图

    代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。下面我们会详细介绍混淆技术,因为混淆是一种保护Java程序的重要技术。图4是代码混淆的示意图。

    a905a880331cc52974c8886b93cbd72c.gif

    图4 代码混淆示意图

    几种技术的总结

    以上几种技术都有不同的应用环境,各自都有自己的弱点,表1是相关特点的比较。

    混淆技术介绍

    cca3a1d3884ab10d53f9f213d4f5b908.gif

    表1 不同保护技术比较表

    到目前为止,对于Java程序的保护,混淆技术还是最基本的保护方法。Java混淆工具也非常多,包括商业的、免费的、开放源代码的。Sun公司也提供了自己的混淆工具。它们大多都是对Class文件进行混淆处理,也有少量工具首先对源代码进行处理,然后再对Class进行处理,这样加大了混淆处理的力度。目前,商业上比较成功的混淆工具包括JProof公司的1stBarrier系列、Eastridge公司的JShrink和4thpass.com的SourceGuard等。主要的混淆技术按照混淆目标可以进行如下分类,它们分别为符号混淆(Lexical Obfuscation)、数据混淆(Data Obfuscation)、控制混淆(Control Obfuscation)、预防性混淆(Prevent Transformation)。

    符号混淆

    在Class中存在许多与程序执行本身无关的信息,例如方法名称、变量名称,这些符号的名称往往带有一定的含义。例如某个方法名为getKeyLength(),那么这个方法很可能就是用来返回Key的长度。符号混淆就是将这些信息打乱,把这些信息变成无任何意义的表示,例如将所有的变量从vairant_001开始编号;对于所有的方法从method_001开始编号。这将对反编译带来一定的困难。对于私有函数、局部变量,通常可以改变它们的符号,而不影响程序的运行。但是对于一些接口名称、公有函数、成员变量,如果有其它外部模块需要引用这些符号,我们往往需要保留这些名称,否则外部模块找不到这些名称的方法和变量。因此,多数的混淆工具对于符号混淆,都提供了丰富的选项,让用户选择是否、如何进行符号混淆。

    数据混淆

    feaa116470d65d765f03c71587cf5bc3.gif

    图5 改变数据访问

    数据混淆是对程序使用的数据进行混淆。混淆的方法也有多种,主要可以分为改变数据存储及编码(Store and Encode Transform)、改变数据访问(Access Transform)。

    改变数据存储和编码可以打乱程序使用的数据存储方式。例如将一个有10个成员的数组,拆开为10个变量,并且打乱这些变量的名字;将一个两维数组转化为一个一维数组等。对于一些复杂的数据结构,我们将打乱它的数据结构,例如用多个类代替一个复杂的类等。

    另外一种方式是改变数据访问。例如访问数组的下标时,我们可以进行一定的计算,图5就是一个例子。

    在实践混淆处理中,这两种方法通常是综合使用的,在打乱数据存储的同时,也打乱数据访问的方式。经过对数据混淆,程序的语义变得复杂了,这样增大了反编译的难度。

    控制混淆

    控制混淆就是对程序的控制流进行混淆,使得程序的控制流更加难以反编译,通常控制流的改变需要增加一些额外的计算和控制流,因此在性能上会给程序带来一定的负面影响。有时,需要在程序的性能和混淆程度之间进行权衡。控制混淆的技术最为复杂,技巧也最多。这些技术可以分为如下几类:

    增加混淆控制 通过增加额外的、复杂的控制流,可以将程序原来的语义隐藏起来。例如,对于按次序执行的两个语句A、B,我们可以增加一个控制条件,以决定B的执行。通过这种方式加大反汇编的难度。但是所有的干扰控制都不应该影响B的执行。图6就给出三种方式,为这个例子增加混淆控制。

    e2e2497ce2730c08748277ca08d9a5cf.gif

    图6 增加混淆控制的三种方式

    控制流重组 重组控制流也是重要的混淆方法。例如,程序调用一个方法,在混淆后,可以将该方法代码嵌入到调用程序当中。反过来,程序中的一段代码也可以转变为一个函数调用。另外,对于一个循环的控制流,为可以拆分多个循环的控制流,或者将循环转化成一个递归过程。这种方法最为复杂,研究的人员也非常多。

    预防性混淆

    这种混淆通常是针对一些专用的反编译器而设计的,一般来说,这些技术利用反编译器的弱点或者Bug来设计混淆方案。例如,有些反编译器对于Return后面的指令不进行反编译,而有些混淆方案恰恰将代码放在Return语句后面。这种混淆的有效性对于不同反编译器的作用也不太相同的。一个好的混淆工具,通常会综合使用这些混淆技术。

    案例分析

    在实践当中,保护一个大型Java程序经常需要综合使用这些方法,而不是单一使用某一种方法。这是因为每种方法都有其弱点和应用环境。综合使用这些方法使得Java程序的保护更加有效。另外,我们经常还需要使用其它的相关安全技术,例如安全认证、数字签名、PKI等。

    本文给出的例子是一个Java应用程序,它是一个SCJP(Sun Certificate Java Programmer)的模拟考试软件。该应用程序带有大量的模拟题目,所有的题目都被加密后存储在文件中。由于它所带的题库是该软件的核心部分,所以关于题库的存取和访问就成为非常核心的类。一旦这些相关的类被反编译,则所有的题库将被破解。现在,我们来考虑如何保护这些题库及相关的类。

    在这个例子中,我们考虑使用综合保护技术,其中包括本地代码和混淆技术。因为该软件主要发布在Windows上,因此转换成本地代码后,仅仅需要维护一个版本的本地代码。另外,混淆对Java程序也是非常有效的,适用于这种独立发布的应用系统。

    在具体的方案中,我们将程序分为两个部分,一个是由本地代码编写的题库访问的模块,另外一个是由Java开发的其它模块。这样可以更高程度地保护题目管理模块不被反编译。对于Java开发的模块,我们仍然要使用混淆技术。该方案的示意图参见图7。

    e4a0dcee00e190a7ad206d8924e4d075.gif

    图7 SCJP保护技术方案图

    对于题目管理模块,由于程序主要在Windows下使用,所以使用C++开发题库访问模块,并且提供了一定的访问接口。为了保护题库访问的接口,我们还增加了一个初始化接口,用于每次使用题库访问接口之前的初始化工作。它的接口主要分为两类:

    1. 初始化接口

    在使用题库模块之前,我们必须先调用初始化接口。在调用该接口时,客户端需要提供一个随机数作为参数。题库管理模块和客户端通过这个随机数,按一定的算法同时生成相同的SessionKey,用于加密以后输入和输出的所有数据。通过这种方式,只有授权(有效)的客户端才能够连接正确的连接,生成正确的SessionKey,用于访问题库信息。非法的客户很难生成正确的SessionKey,因此无法获得题库的信息。如果需要建立更高的保密级别,也可以采用双向认证技术。

    2. 数据访问接口

    认证完成之后,客户端就可以正常的访问题库数据。但是,输入和输出的数据都是由SessionKey所加密的数据。因此,只有正确的题库管理模块才能够使用题库管理模块。图8时序图表示了题库管理模块和其它部分的交互过程。

    18bb3f9213a19b6f4554b6a8ef487641.gif

    需要观看python? java? web 资料的:

    老规矩:转发+关注,私信小编“资料”免费分享资料给你!

    展开全文
  • 最近根据公司生产需求写了个脚本,想打包成exe文件分发给其他人使用,但又担心代码本反编译而泄露信息,所以花了一整天时间,磕磕绊绊的,终于搞定了!来之不易的“成果”需要总结和记载(毕竟耗费了生命中一天之...

            最近根据公司生产需求写了个小脚本,想打包成exe文件分发给其他人使用,但又担心代码本反编译而泄露信息,所以花了一整天时间,磕磕绊绊的,终于搞定了!来之不易的“成果”需要总结和记载(毕竟耗费了生命中一天之久的时长)。

    目录

    一、python如何打包成exe (常规打包方法)

    二、反编译exe文件

    三、防止反编译方式生成exe

    正文

    一、python如何打包成exe (常规打包方法)

    1.1首先你要先把自己的程序写好,在pycharm中运行正常。我的程序文件目录结构如下图所示:

    1.2直接控制台输入命令:pyinstaller -p C:\Users\Administrator\PycharmProjects\ExportCustomerInfo\venv\Lib\site-packages -i v6.ico -F main.py

    此句解释如下:

    这里输入自己的第三方引用包的路径(不懂的看我上一篇文章);

    这里是将要生成exe的图标设置(友情提示:非ico格式的图片会出错哦)

    这里是你要发布的主程序文件

    1.3运行结果如下:Building EXE from EXE-00.toc completed successfully.代表成功!

    1.4新产生的文件及文件夹如下,请到dist文件夹里去找exe双击运行效果如下:

     

     

    二、反编译exe文件

    2.1先去网上下载一个pyinstxtractor.py的文件,将其和exe文件放到一个新文件夹里面如12345。

    下载地址:https://download.csdn.net/download/hmy123cq3/16231988

    2.2在电脑cmd命令行,切换到12345这个文件夹路径里并执行如下代码:

    python pyinstxtractor.py main.exe

    执行效果如下:

    2.3可以到如下路径查找文件,可见很多pyc文件,其中我们的机密代码就在这些文件内,反编译pyc文件是很容易的可以借助工具或在线反编译,这里就不详细介绍了。

     

    三、防止反编译方式生成exe

    3.1首先,清理环境,将一、二两步产生的文件,全部删除掉。我删除的文件如下图所示:

    3.2然后,创建一个py文件,命名为create_pyd.py,然后在此文件中敲入如下代码:

    # -*- coding: utf-8 -*-
    """
    Created on Wed Aug 29 13:33:20 2018
    @author: Li Zeng hai
    
    python build_pyd.py build_ext --inplace
    """
    
    from distutils.core import setup
    from Cython.Build import cythonize
    
    setup(
        name='any words.....',
        ext_modules=cythonize(["jr_customer_excel.py", "send_mail.py"]), )

    注意最后一行代码了吗,ext_modules=cythonize(["jr_customer_excel.py", "send_mail.py"])...,这里面的数组就是你想要编译成pyd格式的文件,有多少就添加多少。

    3.3然后在pycharm控制台执行如下代码:

    python create_pyd.py build_ext --inplace

    结果如下图所示:

    接着将这几个pyd后缀的文件名中的cp39-win_amd64部分去掉,去掉后如下图所示:

    3.4执行步骤一中的打包exe(常规方法),即直接执行代码:

    pyinstaller -p C:\Users\Administrator\Pycharm Projects\ExportCustomerInfo\venv\Lib\site-packages -i v6.ico -F main.py

    执行结果如下图所示,Building EXE from EXE-00.toc completed successfully.代表成功了!

    此步骤需要注意的一个坑就,main.py顶部的引用,已经要把其他py文件里的引用都加上,不然会提示找不到模块,什么原因我也不知道,我是按错误提示操作的,如下所示:

    3.5到dist文件夹里运行exe文件看看成果吧!

    3.5重复执行一下步骤二作为校验,结果如下所示:

    此时,已经找不到这里面的两个文件了。

    至此,本文全部完毕!

     

    展开全文
  • Dotfuscator专业版是一个.NET混淆器和压缩器,它可以帮助您防止您的应用程序反编译。同时,它还以可以使得您的应用程序更加小巧以及高效。 具体功能: 先进的.NET代码安全技术: 命名空间(Namespace)/...

    Dotfuscator专业版是一个.NET混淆器和压缩器,它可以帮助您防止您的应用程序被反编译。同时,它还以可以使得您的应用程序更加小巧以及高效。

    具体功能:
    先进的.NET代码安全技术:   
    命名空间(Namespace)/类型(Type)/方法(Method)/字段(Field)重命名使用我们拥有专利的Overload-Induction TM重命名系统。具有强大的“超载感应”功能。
     

    • 控制流混淆-使用本产品,即使是当前最好的反编译器也无法得到有用的输出。
    • 字符串加密。
    • 几个预定义的包含不可打印字符的重命名方案。
    • 水印软件

    .NET代码效率:
     

    • 您的应用程序将变得更加小。
    • 修整(Pruning)/压缩(Compacting):源码混淆控件移除实际并不使用的类型、方法、以及字段。
    • 增强的修整以及重命名报表。
    • 汇编链接。

    全面高效的.NET代码开发以及部署:
     

    • 完全支持.NET框架。
    • 您可以轻松地使用基于XML的配置文件。
    • 所生成的Map文件允许您进行堆栈跟踪。
    • 增加混淆功能。
    • 包含了适合集成到编译环境的图形用户接口以及命令行接口。
    • 提供更加全面以及精确的PDF格式的用户使用指南。
    • 支持托管的C++模块。
    • 强大易用的命名行接口。
    • 全面支持精简版.NET框架。
    • 附属动态链接库的无缝混淆。
    • 与Visual Studio“项目生成”功能的高度集成。
    • 调试支持,包括堆栈跟踪信息解码。
    • 能够通过定制属性匹配来实现include/exclude。
    • 不仅完全支持且与Visual Stu源码混淆控件dio 2005实现集成。
    • 支持通过标准的定制属性来实现声明式混淆。
    • 支持普通类型(Generic Types)以及普通类方法(Generic Methods)。
    • 许多图形用户接口都进行了改进,包括对XP主题的支持。
    • 支持生成前(Pre-build)以及生成后(Post-build)事件。
    • 每一个装配要素都可以选择库模式。
    • 自动强命名程序集,并且在生成之后解除。
    • 改进依靠“用户指定的程序集装载路径”来寻找外部程序集依赖关系的算法。
    • 可与MSBuild集成使用。
    源码混淆控件源码混淆控件源码混淆控件源码混淆控件





    原文来自 http://www.fanganwang.com/product/3184

    展开全文
  • 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现步快跑、快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美团、淘宝...
  • Dotfuscator专业版是一个.NET混淆器和压缩器,它可以帮助您防止您的应用程序反编译。同时,它还以可以使得您的应用程序更加小巧以及高效。 具体功能: 先进的.NET代码安全技术: 命名空间(Namespace)/...
  • Dotfuscator专业版是一个.NET混淆器和压缩器,它可以帮助您防止您的应用程序反编译。同时,它还以可以使得您的应用程序更加小巧以及高效。 具体功能:先进的.NET代码安全技术: 命名空间(Namespace)/类型...
  • JAVA防止反编译

    2010-08-05 09:33:48
    Java有它方便的一面,同时也给开发者带来了一个不的烦恼,就是保护程序代码变得困难,因为java语言编译和代码执行的特殊性,目前,还没有一个更好的解决办法或保护方案,但如果不采取有力的措施,则自己辛辛苦苦...
  • 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现步快跑、快速迭代的目的越来越难,还有65535,应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美团...
  • ProGuard  ProGuard 工具通过移除无用的代码[ProGuard认为无用的],...由于ProGuard可以使你的应用程序难于被反编译,所以当你的应用程序使用了一些对安全性要求较高的特性(如对应用进行license控制)的时候,这一点
  • 更多Android高级面试合集放在github上面了(更多...文末这里我们定义了源程序APK的Application类名。项目下载点击下面↓ 需要更多的伙伴可以点击关于我 联系我获取 之前听去腾讯面试的伙伴说,在面试的面试...
  • 编典典将机密帐户和密码硬编码到软件中非常方便-对于熟练的反向...这是防止密码因反编译而泄漏的唯一真实方法(切勿首先将其编译为二进制文件)。有关此常见错误的更多信息,你可以阅读CWE-259文章。本文包含更全...
  • Java有它方便的一面,同时也给开发者带来了一个不的烦恼,就是保护程序代码变得困难,因为java语言编译和代码执行的特殊性,目前,除了好的加密产品外,还没有一个更好的解决办法或保护方案,但如果不采取有力的...
  • ProGuard ProGuard 工具通过移除无用的代码[ProGuard认为无用的],使用晦涩的...由于ProGuard可以使你的应用程序难于被反编译,所以当你的应用程序使用了一些对安全性要求较高的特性(如对应用进行license控制)的时...
  • PeP 使用多态变形引擎(防止嗅探工具探测特征码),LZMA 压缩算法,高级调试器方法,虚拟输入表,入口点抽取字节,偷取资源技术(首个采用此技术的保护工具)。 选取一个程序,输入16进制的 OEP值(或者点击“扫描...
  • 用C#写的桌面小程序。 假设会有无聊攻击者给小程序加个病毒再传播, 我想如果能给小程序做个防篡改检测,如果检测到程序被篡改,就弹出提示,让用户不要使用(最好能够不要运行&#...
  • 应用程序混淆

    2016-04-18 14:41:54
    作用1,防止反编译apk 2,瘦身apk 发布的时候体积变步骤1,拷贝D:\Program Files\adt-bundle-windows-x86_64-20130917\sdk\tools\proguard\proguard-android.txt文件到工程项目的根目录下。 2,在自己的工程项目...
  • pyinstaller 打包时加密源码,防止反编译,可以使用 --key 参数,需要 pycrypto 包,安装 pycrypto 包需要安装 VC 14.0 编译,有4G大小 … 不能改目录…C 盘剩余 2G… 本来按照网上说的,使用 pycryptodome 代替 ...
  • 每种高级语言程序在连接为可执行程序之前,都必须被编译为汇编语言程序,因此对于高级语言程序设计者来说,了解编译器如何生成汇编语言代码十分有用。 本书分为三部分。第一部分讲解汇编语言程序设计环境基础,第二...
  • Dotfuscator是.NET混淆器和压缩器,它可以帮助您防止您的应用程序反编译。同时,它还可以使得您的应用程序更加小巧以及高效。
  • DotfuscatorPro_4.9可以防止你的.NET软件被反编译,可以在一定程度上防止你的软件被反编译。现在很多软件都有被反编译的现象,虽然不能做到百分百的防范,但是你至少可以先做些技术上的处理,至少能挡住许多小白。 ...
  • Dotfuscator是VS.NET混淆器和压缩器,它可以帮助您防止您的应用程序反编译。同时,它还可以使得您的应用程序更加小巧以及高效。 本程序为破解牌,直接安装便可使用。
  • Dotfuscator是VS里面一个自带的.NET混淆器和压缩器,它可以帮助您防止您的应用程序反编译。同时,它还可以使得您的应用程序更加小巧以及高效;版本4.96,可免费使用
  • Dotfuscator专业版是一个.NET混淆器和压缩器,它可以帮助您防止您的应用程序反编译。同时,它还以可以使得您的应用程序更加小巧以及高效。
  • 需求很简单,使用c#开发的程序,编译后产生的dll和exe文件,但是为了被他人反编译盗取源代码,我们需要对开发程序进行混淆操作,防止他人盗看我们的源代码程序,其实混淆处理这一概念不光在这里提到,如果伙伴们...
  • Android混淆代码总结

    2018-11-15 17:54:33
    混淆之后的apk体积会一些,同时加大了反编译的成本,但是不能彻底防止反编译。 混淆是个力气活,再添加第三方库的时候,最好就把反编译的代码加上,否则后面很容易造成错误,导致混淆后的apk运行出错。 三、如果...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

反编译小程序防止