精华内容
下载资源
问答
  • luac反编译工具

    2018-03-30 21:19:05
    luac反编译工具!luac反编译工具!luac反编译工具!luac反编译工具!luac反编译工具
  • 在面向C++的开发过程中,一些辅助工具的运用,往往会起到事半功倍的效果。下面是自己在学习工作中注意到的好用软件,现推荐给大家。Beyond CompareBeyond Compare是一款专业的文本文件对比工具,对文本、文件夹、...

    在面向C++的开发过程中,一些辅助工具的运用,往往会起到事半功倍的效果。下面是自己在学习工作中注意到的好用软件,现推荐给大家。

    Beyond Compare

    Beyond Compare是一款专业的文本文件对比工具,对文本、文件夹、表格、图片等文件进行对比、合并及同步分析。在没有使用版本库进行文件管理的情况下,这款软件可以起到“亡羊补牢”的效果。

    310b327f450af232a0d8c1b9b8406905.png

    文件夹对比

    Dependency Walker

    Dependency Walker工具是一款功能强大的VC反编译工具,它可以扫描任何32位或64位Windows模块(exe,dll,ocx,sys等),并构建所有相关模块的分层树状图。

    a2e27942756cc6a8c565ec877a8aa3a2.png

    Dll依赖关系

    Clang-format

    在多个人进行协作开发的过程中,为使不同成员提交的代码格式保持一致,可以使用Clang-format工具来对代码进行自动化统一。Clang-format支持多种代码风格:Google, Chromium, LLVM, Mozilla, WebKit,也支持自定义风格。

    c011e7dda81c2f3785f45c52e815787a.png

    Clang-format配置文件

    QssStylesheetEditor

    QssStylesheetEditor是一个功能强大的 Qt 样式表(QSS)编辑器,支持实时预览,自动提示,自定义变量。

    5380bbe6f25cf7a637c9b58cc43e3a14.png

    QssStylesheetEditor

    Visual Assist

    Visual Assist是一款非常好的Microsoft Visual Studio插件,支持C/C++,C#,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等,有助于提高开发过程的自动化和开发效率。(引自百度百科)

    94bf00973c8ce57960576907bb742810.png

    Visual Assist官网功能介绍

    展开全文
  • 投稿作品---->作者:calmness目录ApktoolApk反编译得到Java源代码dex2jarjd-gui.exe劫持工具使用方法:adb工具PYTHON2.7drozer工具安装及使用使用drozer对app进行测试Apktool 下载地址:...名字...
    投稿作品---->作者:calmness

    25bfdafed85f7048b6511a2d8ad2695b.png

    63cf37e1a53548ace2f8f6e518c323ce.png

    目录

    Apktool

    Apk反编译得到Java源代码

    dex2jar

    jd-gui.exe

    劫持工具

    使用方法:

    adb工具

    PYTHON2.7

    drozer工具安装及使用

    使用drozer对app进行测试

    Apktool 下载地址:

    https://ibotpeaches.github.io/Apktool/install/

    c28d082fd53b2e3848bdedfa789b67a1.png

    windows则下载,放置同一目录;名字一样【放置在要检测的apk里最好方便检测】

    apktool.bat 不好下载可以用我这个

    @echo offsetlocalset BASENAME=apktool_chcp 65001 2>nul >nulset java_exe=java.exeif defined JAVA_HOME (set java_exe="%JAVA_HOME%\bin\java.exe")rem Find the highest version .jar available in the same directory as the scriptsetlocal EnableDelayedExpansionpushd "%~dp0"if exist apktool.jar (    set BASENAME=apktool    goto skipversioned)set max=0for /f "tokens=1* delims=-_.0" %%A in ('dir /b /a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB:skipversionedpopdsetlocal DisableDelayedExpansionrem Find out if the commandline is a parameterless .jar or directory, for fast unpack/repackif "%~1"=="" goto loadif not "%~2"=="" goto loadset ATTR=%~a1if "%ATTR:~0,1%"=="d" (    rem Directory, rebuild    set fastCommand=b)if "%ATTR:~0,1%"=="-" if "%~x1"==".apk" (    rem APK file, unpack    set fastCommand=d):load%java_exe% -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0%BASENAME%%max%.jar" %fastCommand% %*rem Pause when ran non interactivelyfor /f "tokens=2" %%# in ("%cmdcmdline%") do if /i "%%#" equ "/c" pause

    3340b34dcb82c48928b1ad4773dfdb1a.png

    反编译后的文件如下

    87411d6a62742164502c45e770e15b41.png

    将反编译后的文件重新打包

    7611d7f1712a41ba1081d1715b4c5e30.png

    目录文件内多了一个build、dist

    563e34bf0149231c30d6e62b7ba9c478.png

    注意:

    反编译时,可能会报bug:

    Exception in thread “main” brut.androlib.AndrolibException: Could not decode 

    这个问题,就是apktool.jar比较老旧的问题; 官网下载就可以。

    Apk反编译得到Java源代码

    466ef5a222f2b12a84f4b427207b8aef.png

    得到classes.dex 文件

    它就是java文件编译再通过dx工具打包而成的,将获取到的classes.dex放到之前解压出来的工具dex2jar文件夹内

    dex2jar 下载地址:

    https://sourceforge.net/projects/dex2jar/files/latest/download

    28023ec8d7f575ee1040ba51bb4698c8.png

    去执行命令在该目录下,然后生成jar文件

    366c566ea44f6acb7c4acc709aa3fd66.png

    jd-gui.exe

    下载地址:

    https://www.sdbeta.com/plus/download.php?open=2&id=224579&uhash=6fd792195f5c2d1cd6f23471

    使用jd-gui.exe去分析生成的classes-dex2jar.jar包

    1f91078f62a2954dda7971a885d158bd.png

    640?wx_fmt=png

    劫持工具

    那么在实际检测该漏洞的时候,可以利用工具逆向、扫描源代码进行分析,查看代码在关键位置是否进行了一些报警,如toast。实现的方法为直接使用一个测试的apk对目标应用进行界面覆盖,观察目标应用是否进行了报警。

    https://github.com/aloswoya/android_app

    styles.xml文件中利用样式配置将界面设置为透明

    bd96593896b33fe77fa6a22c900f6979.png

    3099efcb354a29b3e4fd639e13c54608.png

    6f39ba944ff4ef9734d2ee8d34d97a37.png

    4d2ddf070a4a4332e764e66d94581aa7.png

    使用方法:

    adb工具

    简介

    adb是Android的一个很重要的调试工具,熟练掌握后可实现很多功能,比如有些手机的解锁、ROOT就会用到adb工具

         安装过程

    https://developer.android.com/studio/releases/platform-tools

    dce385997dc57713aed31d87a8f15e35.png

    由于网速的问题没下载下来,然后从其他网站上下载了一个比较旧的版本

    af236968013b913ad19f1304e86a3dc4.png

    设置环境变量

    7d58cf4f2b041aa9d27abecbfbfce73a.png

    安装结果

    aeb294772dd2ec3368d9b3d4ecb93c83.png

    4ffef4295353d4f21a0de816112a52f1.png

    1192357b706b763e60a76cf6852a9f2d.png

    ff642cbd6e70c0fd5f274456e14cb859.png

    46a8d1e41ba53ebc5b9214a2a38b26f9.png

    PYTHON2.7 地址:

    https://www.python.org/downloads/release/python-2718/

    9910b098d2c49cf8ecabb2513178871d.png

    228b89363ce297275f7dfecf04ac10d1.png

    安装结果

    0b9ac2fd37968a91e78106cecc0dce87.png

    drozer工具安装及使用

      0x01 简介

    drozer是一款针对Android系统的安全测试框架。

    Drozer可以通过与Dalivik VM,其它应用程序的IPC端点以及底层操作系统的交互,避免正处于开发阶段,或者部署于的组织的android应用程序和设备暴露出不可接受的安全风险。

    drozer提供了很多Android平台下的渗透测试exploit供你使用和分享。

    对于远程漏洞,drozer能够生产shellcode帮助你部署drozer代理作为一个远程管理工具,最大化对设备的利用。

    更快的Android安全评估drozer可以大大缩减Android安全评估的耗时,通过攻击测试暴露Android APP的漏洞。

    基于真机的测试

    drozer运行在Android模拟器和真实设备上,它不需要USB调试或其他开发即可使用。

    自动化和扩展drozer有很多扩展模块,你可以找到他们进行测试以发现Android安全问题

    0x02 安装过程

    https://github.com/FSecureLABS/drozer/releases

    a62f7bd880443a531cbfd0d131c01480.png

    862efcd275ee7a50a69ef4676f687778.png

    agent.apk 导入模拟器里

    70282340e46a479a9bc8e039e8e83ae3.png

    655cf159730a313d6bb2c6bdb03d8ea9.png

    0x03 使用过程

    1a9f07b61f2770b2d6675dc3cffccf9a.png

    0x04 使用drozer对app进行测试

    官方直接指定的drozer支持命令及其命令说明列表如下

    命令

    描述

    run

    执行驱动模块

    list

    显示可在当前会话中执行的所有drozer模块的列表。这将隐藏您没有适当权限运行的模块。

    shell

    在代理进程的上下文中,在设备上启动交互式Linux Shell。

    cd

    挂载特定的名称空间作为会话的根目录,以避免重复输入模块的全名。

    clean

    删除drozer在Android设备上存储的临时文件。

    contributors

    显示为系统中使用的drozer框架和模块做出贡献的人员列表。

    echo

    将文本打印到控制台。

    exit

    终止驱动程序会话。

    help

    显示有关特定命令或模块的帮助。

    load

    加载包含drozer命令的文件,并依次执行它们。

    module

    从Internet查找并安装其他drozer模块。

    permissions

    显示授予drozer代理的权限列表。

    set

    将值存储在变量中,该变量将作为环境变量传递给drozer生成的任何Linux shell。

    unset

    删除drozer传递给它产生的任何Linux shell的命名变量。

    f75baa42bfb50ccec1b729f216949bb2.png

    找到所要测试安卓应用程序的包名

    721c150d210ac06d45fa7492c13beb08.png

    1)通过app.package.list模块获取要检测的app的包名

    dz> run app.package.listcom.android.providers.telephony (绉诲姩缃戠粶閰嶇疆)com.android.providers.calendar (鏃ュ巻瀛樺偍)com.android.providers.media (濯掍綋瀛樺偍)com.android.wallpapercropper (com.android.wallpapercropper)com.android.documentsui (鏂囨。)com.android.externalstorage (澶栭儴瀛樺偍璁惧)com.android.htmlviewer (HTML 鏌ョ湅绋嬪簭)com.android.mms.service (MmsService)com.android.providers.downloads (涓嬭浇绠$悊绋嬪簭)com.android.browser (娴忚鍣?[Errno 0] Error

    2)使用app.package.info模块查看apk基本信息

    dz> run app.package.info -a com.android.providers.downloadsPackage: com.android.providers.downloads  Application Label: 涓嬭浇绠$悊绋嬪簭  Process Name: android.process.media  Version: 5.1.1-500200917  Data Directory: /data/data/com.android.providers.downloads  APK Path: /system/priv-app/DownloadProvider/DownloadProvider.apk  UID: 10004  GID: [1028, 1015, 1023, 1024, 2001, 3003, 3007]  Shared Libraries: null  Shared User ID: android.media  Uses Permissions:  - android.permission.RECEIVE_BOOT_COMPLETED  - android.permission.ACCESS_DOWNLOAD_MANAGER  - android.permission.ACCESS_CACHE_FILESYSTEM  - android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS  - android.permission.ACCESS_NETWORK_STATE  - android.permission.INTERNET  - android.permission.WRITE_EXTERNAL_STORAGE  - android.permission.ACCESS_ALL_DOWNLOADS  - android.permission.UPDATE_DEVICE_STATS  - android.permission.CONNECTIVITY_INTERNAL  - android.permission.MODIFY_NETWORK_ACCOUNTING  - android.permission.CLEAR_APP_CACHE  - android.permission.WAKE_LOCK  - android.permission.READ_EXTERNAL_STORAGE  Defines Permissions:  - android.permission.ACCESS_DOWNLOAD_MANAGER  - android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED  - android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS  - android.permission.DOWNLOAD_CACHE_NON_PURGEABLE  - android.permission.DOWNLOAD_WITHOUT_NOTIFICATION  - android.permission.ACCESS_ALL_DOWNLOADS

    3)使用app.package.attacksurface模块识别攻击面

    所谓攻击面,应该就是指可export的安卓四大组件(activaty、broadcast receiver、content provider、service)

    dz> run app.package.attacksurface com.android.providers.downloadsAttack Surface:  0 activities exported  0 broadcast receivers exported  2 content providers exported  1 services exported    Shared UID (android.media)

    4)使用app.activity.info模块查看activity组件信息

    dz> run app.activity.info -a com.android.providers.downloadsPackage: com.android.providers.downloads  No matching activities.

    5)使用app.provider.info模块查看content provider组件信息

    dz> run app.provider.info -a com.android.providers.downloadsPackage: com.android.providers.downloads  Authority: downloads    Read Permission: null    Write Permission: null    Content Provider: com.android.providers.downloads.DownloadProvider    Multiprocess Allowed: False    Grant Uri Permissions: True    Uri Permission Patterns:      Path: /all_downloads/        Type: PATTERN_PREFIX      Path: /my_downloads/        Type: PATTERN_PREFIX    Path Permissions:      Path: /my_downloads        Type: PATTERN_PREFIX        Read Permission: android.permission.INTERNET        Write Permission: android.permission.INTERNET      Path: /all_downloads        Type: PATTERN_PREFIX        Read Permission: android.permission.ACCESS_ALL_DOWNLOADS        Write Permission: android.permission.ACCESS_ALL_DOWNLOADS      Path: /download        Type: PATTERN_PREFIX        Read Permission: android.permission.INTERNET        Write Permission: android.permission.INTERNET  Authority: com.android.providers.downloads.documents    Read Permission: android.permission.MANAGE_DOCUMENTS    Write Permission: android.permission.MANAGE_DOCUMENTS    Content Provider: com.android.providers.downloads.DownloadStorageProvider    Multiprocess Allowed: False    Grant Uri Permissions: True

    6)使用app.service.info模块查看service组件信息

    dz> run app.service.info -a com.android.providers.downloadsPackage: com.android.providers.downloads  com.android.providers.downloads.DownloadIdleService    Permission: android.permission.BIND_JOB_SERVICE

    安装apk文件

    ed0e001f6036604cf2cea37a7f4c6179.png

    源码地址:https://github.com/aloswoya/android_app

    目的:方法为直接使用一个测试的APK对目标应用进行界面覆盖,观察目标应用是否进行了报警。

    166b3d4d2040a4e9899cc1a3632767b7.png

    <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.test.uihijack"    android:versionCode="1"    android:versionName="1.0" >     <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="21" />     <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.test.uihijack.MainActivity"            android:exported="true"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />            intent-filter>        activity>    application>

    0e1b355831acf615c4b47b16e014253d.png

    打包完成后,在测试apk开启的情况下,使用drozer来调用MainActivity:

    run app.activity.start --component com.test.uihijack com.test.uihijack.MainActivity

    效果图如下:

    8b78ddf85e878db37e8dd16cc86599f7.png

    修复建议

    测试到缺陷后,开发方需要对程序进行修复,修复方法也很简单,

    就是也去判断当前应用程序是否位于栈顶 (是否显示在前面),

    如果在后台了,就进行一些如toast提示、震动、通知弹窗等等,告诉用于当前应用已经在后台运行了。

    0x05 通过在线工具进行测试

    1.腾讯金刚审计系统

    http://service.security.tencent.com

    优点:包含了修复建议

    2.阿里聚安全检测

    http://jaq.alibaba.com/

    阿里聚安全下有自己的安全博客,包含一些:

    1.安全漏洞2.病毒分析3.技术研究4.安全报告相关文档

    3.360捉虫猎手检测结果

    http://appscan.360.cn/

    4.爱加密

    http://safe.ijiami.cn/analyze

    优点:在导出的报告中可以看到对当前apk的评分 

    5.百度MTC

     http://mtc.baidu.com/

    HijackActivity-劫持工具

    https://github.com/rohitshampur/droidsheep/blob/master/%20droidsheep/DroidSheep_public/src/de/trier/infsec/koch/droidsheep/activities/HijackActivity.java

    86d5522118de2d3611c206bf5a8e1231.png

    · 静态逆向分析工具-jeb;下载地址:http://www.uzzf.com/soft/313572.html· Android Killer· Tcpdump数据抓包工具;下载地址:https://www.81857.net/soft/11276.html#xzq· xposed - android hook框架[雷神模拟器或者夜神模拟器内搜索安装就行]· JustTrustMe - xposed框架下信任所有证书的插件实现[github上搜索]或者查看https://blog.csdn.net/weixin_43650289/article/details/109105943 

    58306e1963fa55f778dc9e01f1b9e74d.png

    0x06 参考链接

    https://www.freebuf.com/sectool/249725.htmlhttps://blog.csdn.net/JiaoMaGe/article/details/103023839?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-3-103023839.nonecase&utm_term=activity%20%E7%95%8C%E9%9D%A2%E5%8A%AB%E6%8C%81%E5%B7%A5%E5%85%B7&spm=1000.2123.3001.4430https://www.52pojie.cn/thread-749955-1-1.htmlhttps://blog.csdn.net/wizardforcel/article/details/54755814https://blog.csdn.net/nancyfh/article/details/81196070https://www.cnblogs.com/zhaoyixiang/p/11236458.htmlhttp://www.mamicode.com/info-detail-2486333.htmlhttps://www.jianshu.com/p/7c0a6da594c8https://www.cnblogs.com/lsdb/p/9441813.html

    d9fbbeef0d05e9289bbd62fe08c55951.png

    文章总结

    希望对大家有所帮助cbd56e7674beefe2ecb0bbe415fd4a56.pngcbd56e7674beefe2ecb0bbe415fd4a56.png

    06189212376f3c2ea3b5af27e66ead22.gif

    走过路过的大佬们留个关注再走呗dc2f08892dd2612db79369ccff107eb3.png

    86fa32d96f75b039d1d55c9aa2f9e4f0.png

    展开全文
  • GDA不仅只是反编译器,同时也是一款轻便且功能强大的综合性逆向分析利器,其不依赖java且支持apk、dex、odex、oat、jar、aar、class文件的反编译, 支持python,java脚本自动化分析。GDA提供了字符串、方法、...

    4e3a736351bf76178f7fc31c05366508.png

    GDA简介

    GGJoy Dex Analysizer(GDA),中国第一款也是唯一一款全交互式的现代反编译器,同时也是世界上最早实现的dalvik字节码反编译器。 GDA不仅只是反编译器,同时也是一款轻便且功能强大的综合性逆向分析利器,其不依赖java且支持apk、dex、odex、oat、jar、aar、class文件的反编译, 支持python,java脚本自动化分析。GDA提供了字符串、方法、类和成员变量的交叉引用及搜索功能、代码注释功能等等。 GDA中包含多个由作者独立研究的高速分析引擎:反编译引擎、漏洞检测引擎、恶意行为检测引擎、污点传播分析引擎、反混淆引擎、apk壳检测引擎等等, 尤其是恶意行为检测引擎和污点传播引擎与反编译核心的完美融合, 大大提高了无源码逆向工程的效率, 此外反编译器还提供了很多实用功能,如路径求解、 漏洞检测、隐私泄露检测、查壳、odex转dex、oat转dex、加解密算法工具、android设备内存dump等等。在交互式分析上,提供了字符串、方法、类和域交叉引用查询、调用者查询、搜索功能、注释功能、分析结果保存等等功能。

    欢迎关注GitHub进行bug反馈:

    https://github.com/charles2gan/GDA-android-reversing-Toolgithub.com

    最新版下载:

    GDA主页-中国首款交互式Android反编译器www.gda.wiki:9090
    e77563257f28278db3c153274a5cbbc9.png

    【 GDA反编译器实现原理:】

    GDA的反编译器实现采用了7阶段分析的模式,这也是一种类“ 前端 -反编译-后端”的实现方式,但与传统的反编译器实现上有所差别,同时在算法速度和反编译效果上做一些权衡,当然反编译器时刻都在进行优化和提升之中,由于反编译器的实现较为复杂,需要处理的细节比较多,所以此处仅仅是非常简单的介绍GDA的反编译核心实现,实际上也谈不上是实现原理。

    1.dex文件解析

    dex文件解析主要用于定位类,方法,域以及字符串等等信息,其中反编译器需要用到字节码是直接从method中解析得来,此外GDA还需获取try-catch信息,调试信息等以备后用(主要在代码生成时使用)。

    2.指令解码

    对方法的字节码进行解码,类似于反汇编,识别出240多条字节码并将其转化为低级中间表式(LIR)和高级中间表式(GDA的中间表式并非如llvm的文本型中间表示,而是内存结构型的表达式),然后对中间表式进行优化,剔除无效语句,然后生成控制流图。GDA中每个低级中间表式都一一对应着字节码指令,高级中间表式的数目小于等于低级中间表式的数目。此外,之后实现的污点传播分析引擎也是基于高级中间表达式进行的。

    3.控制流图的生成

    扫描每个高级中间表达式,查找分支、跳转指令建立基本块儿(同时把try-catch也考虑进去),进一步建立起控制流图。此外还需要对控制流图进行优化,简化控制流图,去除无意义的基本块,GDA还在这个阶段做一些反混淆的工作,用于对抗一些无用跳转,但是此处作用有限,更进一步的反混淆在数据流分析中实现。

    4.数据流分析

    有了控制流图,使用DFS遍历控制流图对基本块儿内及块间进行数据流分析,本处GDA并没有采用du(定义使用链)来实现,而是采用了比较快的使用定义计数法来实现数据流分析,对低级中间代码进行优化。此外,数据流分析中,GDA同时实现了类型推断,以给每个低级中间表式的输入输出值确定其类型。同时,反混淆也在数据流分析中实现。

    5.高级中间代码生成

    优化完成后,就可以生成高级中间代码,按照DFS遍历每个基本块,以基本块为单位进行高级中间代码生成,此处需要应用复制传播来进行低级中间表式的迭代,以生成大幅缩减的代码语句。同时应用调试信息来修改变量符号。

    6.结构化分析

    GDA到这个阶段实现了多复合条件的分析,并对二路(if-else)、多路(switch-case、try-catch)、环(while、do-while、for)结构进行了结构化分析,为最终代码输出做准备。结构化分析时对于非结构化图,只能采用goto来实现,确保反编译后逻辑正确性。

    7.java代码生成

    最后按照java的代码格式来生成代码,尤其对于try-catch型的结构,为了防止try块儿于代码的生成以method为单位也可以以类为单位进行代码生成。GDA主要以method为单位,并将类和方法进行了分离。

    与世界上最顶级反编译器的反编译能力对比图如下:

    1d6ea8819afddf79c04a45733eb82ad1.png

    c91df3a0d72ab1877230cceb5bb2f092.png

    e210af2b43bc2e6a46033ef818cf7e95.png

    67fe8a714d56449944923eda07917bac.png

    62a7759105292ffd80ca561ab0f36d5d.png

    一、主界面说明

    打开GDA并且将你所要分析apk文件拖拽到软件界面上:

    227abc560a54b6f6890be8e30d28f29b.png

    1.查看所有字符串;2.查看所有使用过的字符串;3查看所有API;4.查看AndroidManifest文件;5.十六进制浏览数据;6.可疑(恶意行为分析);7.漏洞静态扫描(尚待实现);8.展开权限并查看权限所属模块(方法);9.类及方法,如果出现多个DexClass*表示apk采用mulitdex技术。10、Dex头,没点击DexClass可展示相应的头,每个色块代表头部不同的区域,鼠标移动在其上面可以看到提示,每个偏移可右键跳转到偏移所在的数据区。11、申请的权限概览;12、搜索/访问记录,双击可查看历史访问;13、点击进入入口函数(method);14、连接android设备进行内存dump。

    如果APP被加固处理,GDA会对加固进行自动识别,显示在Dex头和APK权限之间,如果没有被加固,则不显示。如图:

    5d87478bea01bd02cb56dc1ef42f5197.png

    点击Entry按钮可以进入到APK的入口函数:

    ad291b3a12a23c308ee497088e90a88d.png

    在java代码区,可以按F5查看smali汇编代码。

    231ea85cf80bb8a6b7baabfb5362c1a6.png

    双击一个方法可以进入该方法,查看其代码,X交叉引用查看调用者。

    fe236e3ff159433510e8be5a9bbd17b4.png

    二、快捷键说明

    65a337ebab9b458d6548f5bf84ac821f.png

    三、辅助工具

    1.二进制XML解码

    完全自主实现的解码,可绕过反解码技术,成功解析XML。

    e5b002cc4acf9989a3d7b0256596d835.png

    2.算法工具

    实现加密解密功能,实现了如下算法:

    Hash算法: md2 md4 md5 sha sha1 sha224 sha256 sha384 sha512

    对称加密:des idea rc2 rc4 rc4-40 rc2-40 rc2-64 bf cast5 aes(128 192 256)及其相应的模式如ecb cbc ofb cfb,其他模式如(cfb1 cfb8)

    非对称加密:RSA

    编码算法:base62, base64

    e2d6f4b166c4857d55c99358d7b61bb0.png

    3.进程模块dump工具

    具体使用参考如下链接:

    https://zhuanlan.zhihu.com/p/26341224

    9ec56d6c6a8d7b97fe412c70436f0cc8.png

    4.搜索工具(S)

    2f638d82bb55306c8e7dd902242f3f02.png

    四、Android病毒静态分析实例

    本节通过一个病毒样本文件来介绍GDA的基本使用方法。

    A.概要分析

    主要从整体上对APK做一个简单的了解和掌握,以下以一款Android病毒为例来介绍GDA的使用。

    1.首先,可以直接将样本拖入GDA,非常快的我们能够看到分析主界面。我们根据主界面判断其是否有加固,如果有加固主界面会显示,如果没有显示代表没有加固。

    9bc80cbbf47cd1c467c05428d54e2acf.png

    2.然后可以检查看看该病毒开启了那些敏感权限,从主界面底部可以看到,该病毒开启了不少敏感权限。

    1eddacc51e93870a528f803d2a75a02f.png

    3.我们还可以通过点击如下红色标记的工具栏按钮看到该APK的签名信息。

    8f2b5c8553c6f88afbafb747b8e92e91.png

    4.可以通过树形控件中AndroidManifest来分析该病毒所使用的Activity,Service,receive等信息。

    cdac3a1c01e09fffad178e2bcdf789ef.png

    5.接下来还可以通过树形框中的MalScan来了解该病毒大致的恶意行为。

    4560f388f986a7bcd1524e49ec22c5e9.png

    可以看出该病毒具有很多恶意的操作。行为描述下面的是产生该种类型的恶意行为的实现方法。双击method@可以进入该方法中查看,比如点击进入第二” #读取联系人、短信等信息:”的[method@0001e5]: com.itcast.cn112.m.a

    7823a701f7b1fcb02c37cfb837042481.png

    看smali比较费劲,按F5可以查看反编译的代码。如图

    f2750fba83326746f033204207002efd.png

    可以看出,这个方法中实现了短信箱的读取,具体方法的分析后面介绍。

    6.此外概要分析时,还可以通过查看该APK所使用的字符串和API来做分析。其中AllStrings会获取该APK所有的字符串,而AppStrings只会获取APK有效类会用到的字符串,相对来说AppStrings是更有用的字符串。其中string@区域同样支持交叉引用(X),编辑(右键菜单),双击操作。

    18c9b0042bccb04243454a4c26cfe848.png

    AllAPI的method@区域支持交叉引用的功能

    de7afe64d2a55b8c702f09d08bc9aa6b.png

    B、JAVA伪代码分析

    主要从APK的执行逻辑和执行流程上对APK进行全面的分析,以下简单介绍GDA的基本使用那么方法。

    1. 从入口点分析,点击entry按钮进入APK的执行入口函数,MainActivity的onCreate函数是该APK第一个执行函数。

    1956a880488668ea5fe813493d795d3f.png

    为了高效的分析整个APK,我们需要对识别出来的方法或者类进行识别,GDA可以修改方法名称和做注释。

    双击a.d();进入该方法

    77396a3eb7839d8ee4e5bfbb9b4f6ee2.png

    可以看出该方法只是一个做日志的方法,所以我们修改函数名称为log

    d5ada4e31694dccbda0cfe08e890fef4.png

    通过同样的方法,把所有可以识别的方法进行修改。

    949bd3ad93159145ec8fb59a8e9e7ed1.png

    有时需要进一步描述,因此可以使用注释功能(C)。

    f2dc0c3112c4bd23757afcaeb14aa843.png

    很多时候需要看当前方法的调用者,这时可以通过交叉引用来查看。

    169fab1e46095acb8bf09ad980a67291.png

    有时候也需要知道当前字符串在什么地方被使用了,可以把鼠标放在字符串双引号之间,按X查看引用的方法。

    df91566c79074377a98259e763c1165c.png

    做逻辑和流程分析时需要对每个方法进行分析,尽可能覆盖所有方法进行功能识别。

    展开全文
  • 大部分文件不会出现问题,懂这方面的大佬可以自行修改下,后面修改过后也会在GitHub更新的 用netpyc修改opcode过后,可以使用uncomply6,进行反编译 还有一个问题就是部分pyc文件会有一个或两个字节码不是python中的...

    0b88ad5702a7fb7ea73112cba56eb045.png

    ​游戏中大概有3种文件,分别是pyc,nxs,npk,还有一些配置文件就不说了

    这里的pyc是修改过opcode的,pyc文件加密后就是nxs文件,nxs文件会被打包到npk文件中

    我们从里向外说吧,先放出GitHub链接

    https://github.com/yuanbi/NeteaseUnpackTools

    Pyc文件

    NeteasePycObject,这个文件夹中的文件是用来还原pyc opcode的,使用方式如下:

    netpyc 输入文件 输出文件 [是否加密]

    第三个参数是可选的,默认为0,代表解密,如果为1代表加密,就是将正常的opcode修改为游戏中python的opcode

    这个工具的部分pyobject的偏移有问题,大部分文件不会出现问题,懂这方面的大佬可以自行修改下,后面修改过后也会在GitHub更新的

    用netpyc修改opcode过后,可以使用uncomply6,进行反编译

    还有一个问题就是部分pyc文件会有一个或两个字节码不是python中的字节码,极少数的文件会出现这种问题,这个时候在反编译的时候就会报error,如果报了error可以观察解析失败的opcode附近的代码,可以自行修改

    如果被修改过的字节码不在opcode中,就要手动分析了,当然这种情况出现的很少

    Nxs文件

    接下来就是nxs文件了,nxs文件直接使用NeteaseNxsUnpack中的NeteaseNxsUnpack.py进行解密,使用方法如下

    python2 NeteaseNxsUnpack.py 输入文件 输出文件

    之后使用netpyc解密opcode,然后反编译就行了

    Npk文件

    直接使用NeteaseNpkUnpack中的NeteaseNpkUnpack.py,使用方法如下

    python2 NeteaseNpkUnpack.py 输入文件 输出文件夹,解密后的文件无后缀,文件类型需要自己分析

    Script.Npk解包

    网易游戏基本上会有script.npk,解包方法如下

    先解包npk,解包后文件夹中的所有文件都是nxs文件,在进行nxs文件解密的步骤就行了

    DecodeBuffer

    这些是三种文件,还有一种是这样的,这里说的是Windows的版本,在nxfilesystem.dll中会有一个decodebuffer函数,这个就是第四个,这个函数的上层是openwithloader

    openwithloader作用是打开文件,文件校对,和部分初始化,在openwithloader中并不是所有的数据都要经过decodebuffer函数,部分数据需要解密,多数会是一些配置文件

    在openwithloader中,捕获数据如下,在openwithloader的ret字节下断点,文件名,文件大小,会存储在[eax+4]的位置,如果我没记错的话

    还有就是在Windows中并不是所有文件都存储在npk文件里,还有一部分存储在 C:Users用户名AppDataLocal游戏名缩写 中,如果你在这里中找到了script文件夹,这个文件夹中会包含很多文件夹和一个文件

    这些文件夹和文件的名字都是被加密过的,可以在nxfilesystem.dll中搜索导出的包含path的函数,具体名字忘记了,函数功能是这样的,传入正常路径,传出加密路径

    11313456b7439a3134cdeb9e1b1a464f.png
    展开全文
  • 资源包含lua5.1、lua5.2、lua5.3编译工具和反编译工具,chunkspy5.1、chunkspy5.2反汇编工具,以及unluac.jar反编译luac工具。
  • Java下的一个简单易用的反编译工具jad, 可以很方便的将.class反编译为.Java. 点击下载一、基本用法Usage:jad [option(s)]直接输入类文件名,且支持通配符,如下所示。c:/Java/>jad example1.classc:/Java/>jad...
  • 反编译工具

    2020-05-26 22:55:50
    Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad 一、前言 1、什么是反编译? 大家都知道,将源代码转换成二进制执行代码的过程叫“编译”,比如将C源代码编译成.exe可执行文件;那么把二进制...
  • c反编译工具..........................很不错的
  • 反编译工具jad简单用法 以下假设jad.exe在c:\java目录下 一、基本用法 Usage: jad [option(s)] (s)> 直接输入类文件名,且支持通配符,如下所示。 c:\java\>jad example1.class c:\java\>jad *.class 结果是...
  • Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI 大家都知道,将源代码转换成二进制执行代码的过程叫“编译”,比如将C源代码编译成.exe可执行文件;那么把二进制执行代码转换成源代码的过程就叫“反...
  • 反编译工具Dll

    2018-01-15 16:18:49
    反编译工具Dll2C.zip,,,能够把DLL转换成可编译的C或C++代码。无病毒。
  • lua反编译工具

    2018-05-10 16:24:46
    lua反编译工具包括lua 5.1 与 lua 5.2 包括lua.exe luac.exe luadec.exe 等 可以用此工具加密lua为luac 也可以解密luac为lua
  • 反编译工具 dll to c

    2018-12-07 14:05:01
    能够把DLL转换成可编译C或C++代码。亲测可用,无病毒。
  • C#反编译工具Reflector

    2009-10-30 16:37:44
    C 反编译工具Reflector 1.下载Reflector.FileDisassembler.zip,解压后得到一些文件,其中Reflector.FileDisassembler.dll是已经编译好的,其它是它源码; 2.打开Reflector,在view菜单下的Add-Ins,将Reflector....
  • exe反编译工具,可将.exe反编译成c

    热门讨论 2009-08-20 19:37:16
    直接运行envmnu.exe可反编译c
  • DLL反编译工具

    2012-10-26 14:34:22
    一个很不错的反编译工具C,C++,C# 都可以实现反编译,详细代码
  • LUAC反编译.rar

    2020-03-18 12:50:26
    真正可用的,LUAC反编译工具 1.首先安装jdk,不会的请百度“jdk安装与环境变量配置”,安装好软件就可以为所欲为了 2.将源文件(要解密的文件)的文件后缀命名为.luac,然后选择源文件,选择解密后文件的目标目录 ...
  • Java下的一个简单易用的反编译工具jad, 可以很方便的将.class反编译为.Java. 点击下载一、基本用法Usage:jad [option(s)]直接输入类文件名,且支持通配符,如下所示。c:\Java\>jad example1.classc:\Java\>jad...
  • Lua脚本 解密加密工具喜欢的拿走吧!android编的有福了!
  • 反编译工具.zip

    2019-07-19 15:43:31
    大家都知道,将源代码转换成二进制执行代码的过程叫“编译”,比如将C源代码编译成exe可执行文件;那么把二进制执行代码的过程就叫“反编译...该工具是用于java编译后的.class反编译为.java类,这样就可以看到源码了。
  • ILSpy反编译工具

    2018-09-30 09:59:31
    ILSpy是开源的.net程序集浏览器和反编译器。反编译C #,可以搜索类型/方法/属性(子字符串)
  • 反编译工具包 VB C++ C
  • java反编译工具

    2013-11-16 15:39:29
    该资源是java最好的反编译工具,包含MyEclipse的插件,独立的C/S窗体程序工具,功能强大、简单易用、灵活小巧。
  • myeclipse安装反编译工具 所需安装包 1.反编译工具:net.sf.jadclipse_3.3.0.jar 2.反编译工具需要用到的工具:jad.exe 3.下载地址: https://download.csdn.net/download/xiyuchunfeng1/12845814 安装步骤 1.将...
  • jad反编译工具

    2013-09-02 23:42:40
    内置反编译工具jad简单用法 一、基本用法  Usage: jad [option(s)]  直接输入类文件名,且支持通配符,如下所示。  c:\java\>jad example1.class  c:\java\>jad *.class  结果是将example1.class反...
  • 本文介绍到的反编译工具下载地址:反编译工具全家桶 编程语言 编程语言分为低级语言和高级语言 graph LR 编程语言-->低级语言 编程语言-->高级语言 低级语言-->机器语言 低级语言-->汇编语言 高级语言--...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,214
精华内容 485
关键字:

c反编译工具