怎么进行SpyNote5.0 Client_APK逆向分析

1. SpyNote5.0 是什么?

SpyNote是用来创建Android恶意程序的工具。它的功能引人注目,读取联系人、录音、命令执行、应用管理、键盘记录、GPS定位等等。这些功能对于研究安Android端恶意程序起到承上启下的作用。咱们能够通过一系列文章对于它的使用初步了解,《SpyNote V5.0图形化工具远程管理Android手机教程》、《小心,Android木马工具SpyNote免费啦!远程监听就是这么简单》、《当心,安卓远控(spynote)升级了……》等等。

2. 准备工具

对于SpyNote5.0 Client_APK的逆向分析却鲜有人问津,下面我简单介绍使用工具,然后开始进入逆向分析环节。

1、SpyNote5.0

下载地址:https://github.com/soDLL/SpyNote OR https://github.com/miladzero/SpyNote

怎么进行SpyNote5.0 Client_APK逆向分析

2、jadx-gui

下载地址: https://github.com/skylot/jadx/releases

怎么进行SpyNote5.0 Client_APK逆向分析

3、androidkiller

下载地址: https://www.guguzhu.com/soft/270509.html

怎么进行SpyNote5.0 Client_APK逆向分析

3. 开始逆向分析

咱们开始对于Client_APK进行分析,通常喜欢将客户端生成的APK程序拖入androidkiller。拖入程序后androidkiller会自动进行反汇编,然后有程序分析结果。

怎么进行SpyNote5.0 Client_APK逆向分析

在左侧按照继承关系分类Activity、Receiver、Service和应用权限(Uses-Permisson),能够看到客户端需要的应用权限很多。右侧则是smail汇编窗口和工作台。通过这个工具能清楚看到权限以及各类继承关系,但是工具版本比较低,代码还原的不完善。我将工具换成jadx-gui,然后继续开始逆向分析,将Client_APK导入。

怎么进行SpyNote5.0 Client_APK逆向分析

咱们能看到三个包,分别是android.support,con.eset.ems2.gp,yps.eton.application。其中android.support为安卓本支持包其中包括低版本、v4、v7,con.eset.ems2.gp为配置包里面包含了host、client_name等信息,yps.eton.application则是咱们需要分析的。

打开yps.eton.application,咱们能看到14个类,由于需要分析的代码比较多,所以有针对性的对于部分关键代码进行分析。

怎么进行SpyNote5.0 Client_APK逆向分析

通过之前androidkiller分析结构能够看到,A、F、G、k 这个写类继承了Service,Service 在安卓系统中代表后台持续运行。咱们不妨猜下,Client_APK中需要持续运行的可能会有什么?也许是关键对象会持续运行、受控、监听、多线程等等。咱们本次分析的重点是它部分功能以及如何识别流量。

3.1命令执行启动分析

咱们从A方法开始,A方法开始启动服务,遍历了R对象,取第三个元素,如果他等于1则执行j()。否则在判断a()是否已经被实例化后启动服务。在之后会继续判断j()是否具备root权限。

怎么进行SpyNote5.0 Client_APK逆向分析

继续看j(),j()中使用执行su命令后,将Do I have root?写入文件/system/sd/temporary.txt,对于是否为root权限进行了判断。

怎么进行SpyNote5.0 Client_APK逆向分析

接着看h(),之中使用了多线程,获取R对象中的存储的配置参数,采用循环和socket回传信息。

怎么进行SpyNote5.0 Client_APK逆向分析

3.2 Base64编码应用部分功能分析

在查看A对象的导入列表时候发现之中包含android.util.Base64,说明在运行之中使用了base64编码。紧接着搜索关键字Base64,能够看到Base64包裹着((BitmapDrawable) applicationIcon).getBitmap(),其实内部就是应用图标。客户端将一些信息通过c0c1c3a2c0c1c分割以9xf89fff9xf89结尾进行传递,对于异常信息和选项采用fxf0x4x4x0fxf分割传递。



public void k() { new Thread(new Runnable() { public void run() { String str; try { StringBuffer stringBuffer = new StringBuffer(); PackageManager packageManager = A.this.getApplicationContext().getPackageManager(); for (ApplicationInfo applicationInfo : packageManager.getInstalledApplications(128)) { if (packageManager.getLaunchIntentForPackage(applicationInfo.packageName) != null && !packageManager.getLaunchIntentForPackage(applicationInfo.packageName).equals(“”)) { try { Date date = new Date(packageManager.getPackageInfo(applicationInfo.packageName, 4096).firstInstallTime); String str2 = packageManager.getLaunchIntentForPackage(applicationInfo.packageName) != null ? (applicationInfo.flags & 1) == 1 ? “system” : “user” : “”; Drawable applicationIcon = packageManager.getApplicationIcon(applicationInfo.packageName); String str3 = new String(); if (applicationIcon != null) { Bitmap bitmap = ((BitmapDrawable) applicationIcon).getBitmap(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.JPEG, 50, byteArrayOutputStream); str = Base64.encodeToString(byteArrayOutputStream.toByteArray(), 2); } else { str = str3; } stringBuffer.append(packageManager.getApplicationLabel(applicationInfo) + “c0c1c3a2c0c1c” + applicationInfo.packageName + “c0c1c3a2c0c1c” + str + “c0c1c3a2c0c1c” + str2 + “c0c1c3a2c0c1c” + date.toString() + “c0c1c3a2c0c1c” + A.this.getPackageName() + “9xf89fff9xf89”); } catch (NameNotFoundException e) { A.this.h(“applicationsfxf0x4x4x0fxf[My/Exception]” + e.getMessage().toString()); } } } A.this.h(“applicationsfxf0x4x4x0fxf” + stringBuffer.toString()); } catch (Exception e2) { A.this.h(“applicationsfxf0x4x4x0fxf[My/Exception]” + e2.getMessage().toString()); } } }).start(); }

3.3 信息获取部分功能分析

b方法是A对象中最长的方法,里面包含着switch case语句分支太多导致反汇编异常。观察注释不难看出,里面实现了大多数的获取信息的逻辑。例如:Device info、System info、Sim info、WIFI info等等,包含了工具所宣传的功能。

怎么进行SpyNote5.0 Client_APK逆向分析

在b方法的重写里面有些地方值得注意,这里用于获取存储路径。传输路径信息的分隔符使用e1x1114x61114e。文件名信息分隔符使用-1c0c1c3a2c0c1c-1c0c1c3a2c0c1c-1c0c1c3a2c0c1c。通过这些信息能够较为准确的判断客户端传递时的操作。

怎么进行SpyNote5.0 Client_APK逆向分析

4. 总结

在分析过程中能够看到各个功能的实现。Client使用了未加密和Base编码传输,传输过程中最明显的是分割符号。通过程序能够有效地判断,Client的传输行为。于是对于传输过程进行抓包。

怎么进行SpyNote5.0 Client_APK逆向分析

图中明显看到分隔符号和base64编码内容。对于这点咱们可以在Snort中编写规则进行识别,识别示例:

alert tcp any any -> any any (content:”fxf0x4x4x0fxf”; sid:1; msg:SpyNote5.0 Client;)

看完上述内容,你们对怎么进行SpyNote5.0 Client_APK逆向分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

文章标题:怎么进行SpyNote5.0 Client_APK逆向分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/26763

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云亿速云认证作者
上一篇 2022年9月18日 下午10:41
下一篇 2022年9月18日 下午10:43

相关推荐

  • windows会声会影2020如何去除视频水印

    会声会影2020去除视频水印的方法 1、首先我们将视频导入到会声会影中。 2、点击轨道中的视频,然后我们可以看到在左上角的视频窗口四角可以调整视频画面的大小。 3、我们把视频往上或者往外拉(取决于水印位置),直到水印消失即可。 到此,相信大家对“windows会声会影2020如何去除视频水印”有了更…

    2022年9月15日
    16200
  • windows驱动精灵amd安装失败如何解决

    驱动精灵amd安装失败: 1、安装驱动之前应该先查看一下操作系统是否合适。 32位驱动无法安装在64位驱动上。 2、安装前先检测驱动是否余有残留,将其清理干净,不然容易导致失败。 3、装之前可以先进行检测一下,如果缺少安装驱动的组件可以及时安装。 4、安装驱动前可以先将杀毒软件关闭,避免造成阻挠。 …

    2022年9月10日
    20200
  • 项目管理体系包括哪些

    项目管理是有效整合资源、高效实现项目目标的一整套独特的管理理念、方法论体系。它包含10大知识领域,5大过程和49个子过程;而要做好项目管理必须具备2大核心技能,以及过程中可能会用到的10个项目管理工具;做好项目管理我们通常要面临7大难点。下面我们将对这些内容进行详细说明。 一、什么是项目管理 官方解…

    2022年3月19日
    47900
  • windows 0x00000bcb如何解决

    解决方法: 方法一: 1、首先我们通过左下角的开始菜单进入“设置” 2、然后在设置面板中打开“更新和安全” 3、然后在其中选择“检查更新”,更新一下最新的系统补丁,应该就可以连接到打印机了。 方法二: 1、要是更新系统后还用不了,就可以搜索并打开“设备管理器” 2、然后在其中展开打印队列,选择要使用…

    2022年9月15日
    40000
  • word页眉横线怎么删除

    word页眉横线删除的方法: 1、首先打开进入word文档。 2、然后在word的菜单上点击“页眉页脚”。 3、随后可以看到“页眉横线”选项,点击进入。 4、最后点击“删除横线”选项即可。 关于“word页眉横线怎么删除”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“word页眉横线怎么删…

    2022年9月19日
    2.5K00
  • jquery版本2.x和3.x的区别有哪些

    区别:1、2.x不再更新,官方只做BUG维护,功能不再新增;3.x是官方主要更新维护的版本,功能持续新增。2、3.x支持“for…of ”循环语句,2.x不支持“。3、2.x利用setInterval来实现动画,3.x支采用requestAnimationFrame()来实现动画。4、3…

    2022年9月8日
    64500
  • Nmap是如何识别主机指纹的

    0x01 Nmap维护一个nmap-os-db数据库,存储了上千种操作系统信息,简单一点来说,Nmap通过TCP/IP协议栈的指纹信息来识别目标主机的操作系统信息,这主要是利用了RFC标准中,没有强制规范了TCP/IP的某些实现,于是不同的系统中TCP/IP的实现方案可能都有其特定的方式,这些细节上…

    2022年9月21日
    46200
  • Oracle中for循环如何使用

    Oracle for in loop 循环的一些实例,以作学习和加强使用熟练度及场景应用. 一些技巧 for 语句后面的 loop end loop 可以类比成 c#/java 等编程语言 for 语句后面的语句块符号(花括号{}), 以便理解和使用. 一些实例 循环输出数值 — 循环输出数值be…

    2022年8月29日
    27700
  • Vue前端怎么整合ElementUi

    Vue前端整合Element Ui Element UI 是一套采用 Vue 2.0 作为基础框架实现的组件库,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助网站快速成型。 1.安装Element Ui组件库 WIN+R输入CMD(必须以管理员身份运行)…

    2022年9月21日
    16600
  • Word尾注怎么转换成脚注

    尾注转换成脚注的方法: 1、首先点击任务选项栏中的“引用”。 2、然后去点击里面的“插入尾注”。 3、之后点击下面的小箭头,选择“脚注和尾注”。 4、在弹出的窗口中点击“转换”。 5、之后去勾选“尾注全部转换成脚注”。 6、最后点击确定即可搞定。 感谢各位的阅读,以上就是“Word尾注怎么转换成脚注…

    2022年8月31日
    39300
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部