千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关怎么进行SpyNote5.0 Client_APK逆向分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. SpyNot
千家信息网最后更新 2026年11月01日怎么进行SpyNote5.0 Client_APK逆向分析

今天就跟大家聊聊有关怎么进行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

2、jadx-gui

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

3、androidkiller

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

3. 开始逆向分析

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

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

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

3.1命令执行启动分析

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

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

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

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等等,包含了工具所宣传的功能。

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

4. 总结

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

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

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

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

分析 信息 工具 功能 程序 对象 方法 权限 传输 应用 内容 客户 客户端 编码 部分 运行 之中 代码 关键 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡网 深圳九邦互联网科技有限公司 圆梦互联网科技 盈实互联网科技 金融科技与互联网金融 猪兼强互联网科技 杭州互联网科技公司 狮子座互联网科技有限公司 上海卓越科技 互联网 重庆科技学院互联网 云创客互联网科技公司 栖莱科技互联网股份有限公司 宁夏科技产业互联网案例 岳阳华臻互联网科技有限公司 玉溪互联网科技怎么选 国大互联网教育科技有限公司薪资 杭州融税互联网科技有限公司 广东猫王互联网科技有限公司电话 互联网大会出现的黑科技 广州全民伙伴互联网科技有限公司 互联网佳科技有限公司 互联网是不是新科技 丰台科技园 互联网公司 深圳互联网科技怎么样 剑昆互联网络科技有限公司临桂 世界互联网科技公司市值排名 辽宁互联网新科技 互联网新科技动漫ppt素材 北京军民互联网科技公司 杭州科技互联网公司有哪些
0