分析Android银行木马GM Bot的变异过程

简单的安卓木马制作(实现外网控制) 前言: 要实现外网控制肯定需要一个外网的IP负责监听,没有的小伙伴推荐使用https://www.ngrok.cc。 其端口映射功能十分好用。具体使用教程见其官网。 注:如攻击机为虚拟机,最好在桥接模式 1.隧道协议TCP,设置好远程端口和本地端口 2.复制隧道ID,在kali里启动终端 3.启动成功,复制域名、端口 4.生成木马 5.获得控制权 6.下个照片看看 7.还能拍照(不过要权限),help命令可以查看所有功能,不一一赘述 ... 阅读详情

导语:2016年2月19日,IBM XForce的研究员发布了一个情报报告,这份报告声称GM BOT的源代码在2015年12月被泄漏到了一个恶意软件论坛上。GM BOT是一个复杂的安卓恶意软件家族,它出现在2014年末俄语地区的网络犯罪地下组织。

分析Android银行木马GM Bot的变异过程

2016年2月19日,IBM XForce的研究员发布了一个情报报告,这份报告声称GM BOT的源代码在2015年12月被泄漏到了一个恶意软件论坛上。GM BOT是一个复杂的安卓恶意软件家族,它出现在2014年末俄语地区的网络犯罪地下组织。IBM XForce同时还发现Banskosy,MazarBot,以及恶意软件Slembunk。实际上也是GM BOT的变种,包括Banskosy,MazarBot,以及FireEye最近提到的恶意软件Slembunk。

GM BOT中的很多功能都是针对Android用户的,包括拦截他们的短信。它允许攻击者控制目标设备,还能根据用户的手机,定制假的手机界面。

简而言之, GM Bot这样的手机银行木马对于罪犯来说,简直就是一种一站式的、提供各种欺诈手段的商店。

1.他们仿造银行应用程序的界面,使用假的界面覆盖原先的银行界面,从而窃取用户凭证和支付卡的信息。
2.他们控制设备的SMS继电器,然后窃听、截取并且发送SMS消息。         
3.他们还可以将电话转接给远程攻击者。         
4.他们也有间谍软件的功能,可以通过远程命令控制设备。

目前,GM Bot又把目标瞄准了MobilePay(丹麦银行的移动支付平台MobilePay)和Nem ID(丹麦的一种双因素认证系统)。本文通过静态分析和动态分析来对GM Bot的源代码打包过程进行剖析。

我们看到即使使用基本的静态分析,我们也可以分析出 GM Bot的恶意意图也可以很容易地实现,而且通过一个微小调试我们可以快速获得可读的源代码。

背景

要了解网络安全的,我们就有必要认真了解一下移动恶意软件是如何运作的。

本文就列举一些例子,来对它们的恶意运作过程进行演示。

SHA256: 44ed4bbd5cdc13c28992c16e99a7dc58f5f95463e889dd494a433549754f7863
MD5: da88bdcb3d53d3ce7ab9f81d15be8497

如果您还想要浏览此示例,可以通过google快速的搜索这些哈希值可能导致的后果。虽然分析人员已经有了这些源代码,但不清楚如何它们是如何实现的。有消息说这些代码已经被打包,但是还没有关于如何解压缩的分析的信息。

这篇文章就是要分析这些源代码解压缩的过程,希望能为的其他人提供一些提示。本文的分析过程分为以下五个阶段:

分析Android银行木马GM Bot的变异过程

1.公共分析 :首先我们可以使用现有的公共信息来源来进行查找,看看目前的分析到了什么阶段以及进行了哪些方面的分析。

2.静态分析:我们可以从找到的实际样本中进行分析,而不是在模拟环境中分析。

3打包调试:假设样本被打包并阻止我们对其分析,我们如何调试解包器以了解样本正在加载/运行的内容。

4.DEX文件提取和反编译:一旦我们实现了解包器的功能,我们如何对其进行反编译。

5.功能和动态分析 : 一旦我们提取和反编译了代码,我们就会在安全模拟环境中看到GM Bot是如何进行工作的。

第一阶段,公共源分析

分析Android银行木马GM Bot的变异过程

首先让我们看看我们在这个阶段可以找到什么?在Virus Total将其已经被标识为恶意产品,然而,我们还注意到,通过启发式分析所检测出的这些恶意软件是指所有含有“恶意代码”的产品。这种检测最初是由Ganga Man在暗网论坛上建立和销售。

第二阶段,静态分析

首先,我们要使用APK工具解压缩APK文件。这将解压缩内容,以及将DEX文件中的代码拆分成Smali:

apktool d da88bdcb3d53d3ce7ab9f81d15be8497.apk

这个结果可以在下面看到,该工具还提供了一个可读的AndroidManifest.xml文件版本。

分析Android银行木马GM Bot的变异过程

第一个停止是看看Android清单文件,应该提供应用程序的组件和请求的权限的概述。

清单分析 – AndroidManifest.xml

分析Android银行木马GM Bot的变异过程

初始分析显示恶意行为已经获取了广泛的权限,包括以下权限:

控制所有SMS消息(发送,接收,读取,写入,删除)
列表运行应用程序
读取手机的状态,联系人,SD卡数据
请求是设备管理员,使得能够在不向用户发出警告的情况下远程擦除设备

主应用程序,活动(15)和服务(2)的引用类文件的摘要视图如下所示:

分析Android银行木马GM Bot的变异过程

此外,我们看到另外4个类映射为广播接收器,它将处理事件消息(Android系统Intents),如下所示:

分析Android银行木马GM Bot的变异过程

从上图我们可以看到应用程序如下:

在手机通电时执行代码(自动启动应用程序)

当设备管理员被授予,请求或接收到禁用管理员的请求时接收通知(从而干扰或阻止用户启用它)

接收新的入站SMS的通知 – 具有高优先级标志,以确保代码可以首先拦截它,并可能停止任何进一步的警报(可以用于窃取2FA令牌)

在进行任何反编译之前,我们要做的就是探索APK中的其他文件的线索。

比如以下文件:

文件:assets / fytluah.dat

一个没有立即明显格式的二进制文件。可能的代码在运行时未加密/解压缩?

文件:res / values / strings.xml

应用程序的英语字符串,如下所示:

分析Android银行木马GM Bot的变异过程

字符串清楚地表明此恶意软件的目标是获取受害者的信用卡信息。如此之外,我们还发现了以下线索:

有趣的是,这里的资源键都是英文,表明原始开发者可能是英语区域

尽管这个资源文件是用于英语编写的,但仔细看会发下其中有一些特定的字符串是丹麦语,

除了英语字符串,我们还看到其他几个目标国家:

分析Android银行木马GM Bot的变异过程

文件:res / values.xml

此文件包含国家/地区代码列表,特别是“非vbv”这组。这被理解为意味着他们不使用“通过签证验证”过程,该过程用于在在线购买期间强制执行额外的验证检查。很可能攻击者会试图通过恶意软件获取额外的VBV凭证( 是VISA国际组织为提高信用卡网上支付的安全性,保障客户网上支付安全,维护客户利益而共同推出的一项安全验证服务),以允许在线购买卡详细信息(或避免这些国家)。

分析Android银行木马GM Bot的变异过程

目录:res / drawable

图片和图标包括:

丹麦语“Nem Id”的示例照片 - https://en.wikipedia.org/wiki/NemID
丹麦银行移动支付的图标
万事达卡安全代码
通过签证验证的图标
Google Play
Flash图标(主应用程序图标)
Whatsapp

此外,有png图像前缀“overlay_”,表示欺诈覆盖活动可能使用。

反编译为Java源代码

接下来,我们尝试将DEX文件反向工程恢复为原始的Java源代码。为此,我们使用dex2jar如下将DEX文件(在APK中)转换为Java类文件存档:

Dex2jar da88bdcb3d53d3ce7ab9f81d15be8497.apk

然后可以使用JD-GUI解压缩生成的jar文件,如下所示:

java -jar ../../jd-gui-1.4.0.jar da88bdcb3d53d3ce7ab9f81d15be8497_dex2jar.jar

我们在JD-GUI中看到的结果java类显示应用程序中只包含4个java类。这与我们在应用程序清单中声明的16个不同类形成了直接对照。确认必须有在运行时动态加载的附加代码 – 这很可能是这四个类实际上是一个解包器。

分析Android银行木马GM Bot的变异过程

检查代码,我们看到它被严重混淆,并且已经被制定以防止干净的反编译代码。除此之外,我们可以通过检查在应用程序首次执行时导入(因此使用)的系统类,开始了解这四个类的功能。

从JD-GUI导出java源并解压缩到新文件夹后,我们可以从这些文件中提取导入的类:

find . -type f -exec grep "^import" {} \; | sort –u

我们可以从中找到如下的分类

分类 导入类
com.igcfse.enscbo.a com.igcfse.enscbo.b
com.igcfse.enscbo.a java.io.RandomAccessFile
com.igcfse.enscbo.a java.lang.reflect.Constructor
com.igcfse.enscbo.b android.app.Application
com.igcfse.enscbo.b android.content.Context
com.igcfse.enscbo.b com.igcfse.enscbo.a
com.igcfse.enscbo.b java.io.File
com.igcfse.enscbo.b java.lang.reflect.Field
com.igcfse.enscbo.b java.lang.reflect.Method
com.igcfse.enscbo.c android.content.Context
com.igcfse.enscbo.c com.igcfse.enscbo.b
com.igcfse.enscbo.c java.io.FileDescriptor
com.igcfse.enscbo.c java.io.IOException
com.igcfse.enscbo.c java.lang.reflect.Constructor
com.igcfse.enscbo.c java.util.Random
com.igcfse.enscbo.wieroel android.app.Application
com.igcfse.enscbo.wieroel android.content.Context
com.igcfse.enscbo.wieroel com.igcfse.enscbo.b

基本上我们用了一个非常小的库被导入和使用。这些功能包括:

一般Android应用程序和上下文类(预期和所有Android应用程序需要)
文件相关类(红色) - 用于访问,读取和写入本地文件
Java反射类(绿色) - 用于创建新类和实例以及动态调用方法
这证实了这样的假设,我们最有可能处理从本地文件资源解包它的可执行代码的解包器。

第三阶段:解压缩调试

由于Java代码不能被容易地反编译(由于恶意软件的开发者也会进行注入保护),我们将根据Smali汇编代码调试可执行文件。 Smali是Dalvik虚拟机使用的DEX代码的反汇编。

需要用于Android Studio的Smali / Baksmali插件,然后将Apktool的输出作为新项目导入。我们接下来在三个类(a,b,c)中根据需要设置断点:

分析Android银行木马GM Bot的变异过程

具体如下:

a.smali(一个基于java.lang.reflect.Constructor实例创建的行)

分析Android银行木马GM Bot的变异过程

b.smali(通过反射调用对象上的方法的行)

分析Android银行木马GM Bot的变异过程

c.smali(与上述a.smali类似)

分析Android银行木马GM Bot的变异过程

现在我们将应用程序安装到模拟器(通过ADB,以确保它不会像在一些模拟环境中自动启动)。

要启用调试器连接到应用程序,我们在启动应用程序之前执行以下操作:

通过在设置>关于设备中重复点击内部版本号来启用开发人员选项

在开发人员选项中,选择“选择调试应用程序”,然后选择恶意应用程序 – “Adobe Flash”

在开发人员选项中,启用“等待调试器”

分析Android银行木马GM Bot的变异过程

现在从启动器中启动应用程序,将提示您附加调试器,

分析Android银行木马GM Bot的变异过程

在Android Studio中,使用图标附加调试器。选择恶意应用程序进程。然后调试器在我们的第一个断点处停止,如下所示:

分析Android银行木马GM Bot的变异过程

注意,你现在应该设置一些变量来观察 – 按照上面的设置v0到v10和p1到p3。我们的第一个断点被击中,我们看到我们将要通过反射执行一个方法。注意到我们还没有调用newInstance(),我们可以假设这是调用现有的(加载)类 – 应用程序加载的四个之一,或一些其他Android框架类。

接下来,我们使用该方法强制进入,以查看它调用哪个方法(smali调试器看起来有点儿错误,我们现在不能看到传递的参数)。

分析Android银行木马GM Bot的变异过程

初始调用获取当前上下文对象,可能是从APK开始检索本地资源。 我们现在允许调试器继续并重复此模拟几次以建立反射方法调用的流程:

Context android.context.ContextWrapper.getBaseContext()
//expected 2 arguments, got 1 – error in malware code, or to throw off debugging?
//Several more of these not shown
IllegalArgumentException java.lang.IllegalArgumentException(String s)
void Java.lang.reflect.setAccessible(boolean flag)
File android.app.getDataDir()// returns /data/user/0/com.kzcaxog.mgmxluwswb/app_ydtjqjava.io.File.getAbsolutePath() ContextImpl android.app.getImpl(Context context)//filename is fytluah.datInputStream android.content.res.AssetManager.open(String fileName)

暂停在这里,我们可以看到代码正在尝试加载我们以前在静态分析部分中标记为的文件。 继续我们看到文件被读取,可能被解密,然后作为一个jar文件再次写出:

int android.content.res.AssetManager.read(byte[] b)
//className = java.io.FileClass java.lang.Class.forName(String className) 
//args = String “/data/user/0/com.kzcaxog.mgmxluwswb/app_ydtjq/gpyjzmose.jar”
T Java.lang.reflect.Constructor.newInstance(Object.. args) 
void java.io.FileOutputStream.write(byte[] b) #25
void java.io.FileOutputStream.close()

最后调用DexClassLoader来将附加代码加载到系统中:

ClassLoader java.lang.Class.getClassLoader()
//className is dalvik.system.DexClassLoaderjava.lang.Class.forName(String className)

查看DexClassLoader的API,我们可以看到它需要两个参数: 要加载的文件的位置,以及一个可写区域,它将用于为特定机器架构重新编写优化版本的代码,例如 Android运行时间(ART)。 有关这方面的更多信息,请参阅Android API文档:

https://developer.android.com/reference/dalvik/system/DexClassLoader.html

第四阶段:DEX提取和解码

我们可以在下面的调试器中看到jar文件的确切位置,下一步是通过ADB命令行恢复这个文件。

分析Android银行木马GM Bot的变异过程

执行类加载器后,通过ADB shell连接我们可以看到这两个文件,原来的和DEX优化后的代码:

分析Android银行木马GM Bot的变异过程

我们将这些文件复制到/ sdcard /下载(+ chmod),然后将.jar文件拖到本地模拟实践中,进一步使用adb pull分析。

分析Android银行木马GM Bot的变异过程

提取jar文件我们找到classes.dex文件,重复此步骤,使用dex2jar将其转换为jar文件并使用JD-GUI反编译,现在我们就有这个恶意软件示例的完整的源代码了。

分析Android银行木马GM Bot的变异过程

第五阶段:动态和功能分析

首次安装

在初始分析时,我们可以看到代码库与静态分析中确定的泄漏源具有显着的相似性。然而,也存在显着差异,并且代码已被模拟成为专门针对丹麦银行MobilePay的应用程序了。

由于代码基本上没有混淆,现在将简要介绍这个恶意软件的关键功能,从第一次安装开始。

分析Android银行木马GM Bot的变异过程

首次安装过程如下:

首先在安装和执行时,应用程序将执行两个主要功能。它最初将收集用户数据的范围,包括电话联系人,所有SMS消息和其他密钥数据,并将其发送到C&C服务器。 C&C服务器然后返回唯一的安装标识符,然后唯一的安装标识符被用于所有未来的通信以唯一地标识受损的设备。

其次,恶意软件将使用户接受软件作为设备管理员。如果用户拒绝请求那该软件会被重新被触发,最终大多数用户将会选择同意。有了这个权限,恶意软件实现了两个目标:

1.应用程序不能被用户轻松地卸载,以保证不被取消设备管理员权限。尝试执行此操作将触发启动覆盖,以防止删除设备管理员

2.在将来的某个时间点,一旦从电话窃取了另外的数据,C2服务器可以发出命令来擦除设备,移除感染的证据并将设备恢复到出厂状态

包括每次重新启动后,正在进行的操作

分析Android银行木马GM Bot的变异过程

恶意软件维护C2服务器的正常运行,这为攻击者向设备发出特定命令提供了一种机制。每次运行包含安装ID和当前屏幕状态。前提是攻击者会在用户关屏时进行。

首先,我们看到了“锁定”和“解锁”手机的能力。这模拟了Android软件更新屏幕,并有效隐藏了屏幕覆盖后面发生的任何其他活动(例如发送,接收或删除SMS消息)。此外,这可以用于禁用用户,并且防止他们使用电话,而他们的帐户或卡被实时泄密。

接下来,我们看到另一个功能,意图拦截和转发SMS消息到C2服务器,并专门试图删除他们曾经存在的证据,删除它们。这用于窃取2FA凭证。

接下来从C2服务器的角度看,我们看到两个“重置”命令。第一个,“软”复位,用于重置内部标志以重新尝试窃取Nem ID凭证。第二种是“硬”复位,执行并立即擦除器件数据。

最后,我们看到向攻击者定义的移动设备发送任意SMS消息的能力以及向设备上的另一个应用程序启动定制推送通知的功能。暂时不清楚这可以用于什么。

通过短信远程操控

分析Android银行木马GM Bot的变异过程

通过侦听传入的SMS消息,恶意软件还可以触发假的Android更新屏幕,然后截获此信息,转发并尝试在消息到达电话时删除消息。可以通过经由SMS传递到电话的定制的SMS命令消息来启用和禁用该模式。

数据自动窃取

分析Android银行木马GM Bot的变异过程

根据原始文章和静态分析的许多指标,应用程序的主要目的是通过在合法应用程序之上执行覆盖来窃取数据。恶意软件针对三种特定的应用程序类别:

丹麦银行的MobilePay应用程序,具体意图窃取Nem ID凭据

触发试图通过自定义叠加层窃取信用卡详细信息的应用

触发窃取用户移动电话号码的尝试的应用(可能用于触发上述“管理”模式)

覆盖丹麦银行MobilePay的过程

分析Android银行木马GM Bot的变异过程

在启动MobilePay应用程序时,覆盖尝试窃取用户的CPR号码(唯一的社会安全类型id),移动号码和Nem密码。然后它要求用户拍摄他们的Nem ID存折的照片,其中包含一次性使用代码,攻击者可以使用该代码登录到MobilePay(和其他丹麦语系统)并支付款项。

窃取信用卡详细资料

分析Android银行木马GM Bot的变异过程

在启动目标应用程序之一时,根据启动的应用程序,显示具有可配置图标的信用卡覆盖图。收集基本卡详细信息后,应用程序将尝试恢复用户的Visa验证密码。然后将这些详细信息转发到C2服务器。

盗取电话号码

分析Android银行木马GM Bot的变异过程

最后,我们看到的目标是获取用户的电话号码的功能,可能会通过获得这些信息绕过2FA进一步对受害者帐进行攻击。

总结

本文对GM Bot的变异似乎是仅仅针对于MobilePay应用程序这个变体的分析,但通过分析我们发现,一旦一个恶意软件的源代码被发布并且在网上能轻而易举的搜到,那它被快速改变的可能性就很大。

MobilePay应用程序就是一个很好的例子,GM Bot源代码一旦发布,复杂的代码可以快速,轻松地被不太专业的开发者和一个成熟的黑客模式所应用,而且代码库变体的扩展变得更难以跟踪和检测。

一如既往,防止成为此类恶意软件的受害者的最佳方法就是确保您的手机在安装第三方应用程序时始终要保持审查权限请求 – 例如,它们是否与应用程序的使用说明一致等等。

本文翻译自securityaffairs,如若转载,请注明原文地址: http://www.4hou.com/technology/3051.html
手机网站html源码 10几个手机网站源码,适合于移动端前端页面的开发与设计。 立即下载

相关推荐

60套html5移动端网站源码

60套html5移动端网站源码

我的MSF之Android木马渗透的学习笔记

使用kali制作Android木马并进行通讯录渗透的学习笔记

yuan_boss的博客 6957

移动通信管理系统(web源码)

登陆:管理员与用户使用的菜单不同 操作员管理: 新增操作员:ID号不能重复 修改操作员: 资源信息:插入号码段 从文件读入号码(从客户端上传到服务器,从服务器里该文件里读内容) 配置业务费用: 收费细项:随下拉菜单改变默认值; 提交按钮能修改收费金额 业务收费:更新收费细项的选项; 根据收费细项的单项金额得到该业务总金额 开户: 新增客户:如果证件号存在,则取出该证件号用户的所有信息,可以对其更改 如果证件号不存在,则从空的文本框内插入客户信息。 新增用户:手机号码:库中不存在提示; 库中存在该号码,判断号码状态是否可用,可用提示不能再用 客户ID:客户在库中不存在即没有记录,默认为1 如果有记录,则取ID号的最大值,新增一个客户+1 新增账户:账号:判断存在与否与证件号判断一样 开户金额:如果输<业务收费的总金额,则“金额不足” 如果>业务收费的总金额,则显示剩余金额 判断文本框中不能为空,注意手机号,金额应该为数字 文件过滤器

Metasploit生成Android木马远控自己的安卓设备

我们先用frp工具来实现端口映射,利用处在内网的攻击机kali实现对处在外网

qq_59235193的博客 7657

HTML5移动Web开发实战源码 + 书籍

《HTML5移动Web开发实战》石川著。全书共分10章,从移动Web、设备端配置和优化,交互、响应式设计、设备访问,调试、性能测试、富媒体等角度出发,包含了60多个实用的实例,详细阐述如何构建快速、响应式的HTML5移动网站,适用于iOS、Android、Windows Phone和BlackBerry等众多主流移动应用平台

HTML5+CSS3移动Web开发实战(第2版)_案例源代码、素材、效果.rar

HTML5+CSS3移动Web开发实战(第2版)_案例源代码、素材、效果.rar

2022 新出的一款非常优秀的自动化框架,支持Android、Web和Windows三大平台,绝对黑科技!

2022 新出的一款非常优秀的自动化框架,支持Android、Web和Windows三大平台,绝对黑科技!

chengzhenabc的博客 2070

从零到一:RK3588平台上的星闪模块驱动移植全解析

本文详细解析了在RK3588平台上移植UB37星闪模块驱动的完整流程,涵盖内核配置、设备树适配、驱动编译、功能测试等关键步骤。通过实践指导,帮助开发者掌握星闪技术在嵌入式系统中的集成与应用,提升无线通信模块的开发效率。

qsc90123456的博客 335

Android Studio最新版 Studio Bot使用

主要介绍Studio Bot的安装使用避坑

weixin_41733225的博客 1243

ArcGIS中地理坐标系与投影坐标系以及投影转换

简单介绍arcgis软件中坐标系定义、设置和常见问题。

weixin_41399650的博客 8万+

知识图谱中的 Ontology(本体论)

本文的部分图片和内容来自中国科学院自动化研究所刘康老师的课件 Ontology(本体论) Ontology 是(特定领域)信息组织的一种形式,是领域知识规范的抽象和描述,是表达、共享、重用知识的方法。 Ontology 是知识体系构建的关键技术,知识图谱是一种人工智能技术,它的关键在于让计算机能够处理人类的知识。然而,人类脑海中的知识通常是直觉性的,我们无法将这种直觉性的知识直接输入给计算机,On...

P01son的博客 2万+

移动Web源代码汇总贴,都是干货源代码分享。

代码是程序员最好的交流方式,移动Web做为新技术资源匮乏,都是国内同行所写,现总结如下。:Sencha Touch 1、社区移动站点(Sencha Touch 2 版) 作者:刚子 描述:在Sencha Touch pr1开发者预览版发布的十月份,本社区率先推出了Sencha Touch 2开源实例,现已成为许多社区网友开发ST2项目的蓝本,在线浏览http://html5mobi.com/s...

蓝色理想——帅子 747

中科蓝讯蓝牙开发:从源码到固件的自动化构建链路解析

本文详细解析了中科蓝讯AB530X蓝牙芯片从源码到最终固件的完整自动化构建链路。通过剖析prebuild.bat、GCC编译、postbuild.bat等关键环节,阐述了资源打包、配置生成、代码编译与固件合成的全过程,并重点介绍了如何实现一键编译与自动下载,为开发者高效进行嵌入式蓝牙开发提供清晰指南。

weixin_29193259的博客 121

android木马的制作方法,实现木马病毒的详细步骤

前言:有没有遇到过这种情况,打开邮件,发现一封非常正常的邮件,附带了连接,你不以为然的点进去,结果中木马病毒了,这个套路是不是很熟悉,也很老套,但稍不注意就容易中木马病毒,希拉里邮件门事件不就是这样么?!作为一名程序员,你是否想过怎样实现这样一个木马病毒呢?来吧,这个项目就带你学习如何通过Metasploit的msfvenom命令来生成木马、捆绑木马以及对木马进行免杀处理,带你一步步了解如何制作一...

weixin_28292761的博客 1万+

Python+Tableau 全流程数据分析实战:从数据清洗到商业洞察可视化

本文通过Python+Tableau完整演示电商销售数据分析流程。首先使用Python进行数据清洗(缺失值处理、异常值过滤等)和探索性分析(商品类别、时间趋势等),然后导入Tableau创建交互式可视化仪表盘。分析发现电子产品销售额最高但利润率低,美妆类利润率最优,东部地区销售表现最好。最终提出优化供应链、加强美妆推广等商业建议,展示了Python数据处理与Tableau可视化的高效配合。所有代码可直接运行,适合数据分析初学者和从业者实战参考。

weixin_44520581的博客 337

LaTeX小白必看:5分钟搞定GB/T 7714-2005参考文献格式(Texmaker+BibTeX实战)

本文为LaTeX初学者提供了使用Texmaker编辑器和BibTeX工具链,快速实现GB/T 7714-2005参考文献格式的实战指南。文章详细解析了从获取gbt7714-2005.bst样式文件、编写.bib数据库到四步编译流程的核心步骤,并附有常见问题解决方案,帮助用户高效、准确地完成学术论文的参考文献排版。

weixin_29295541的博客 338

大二学生web期末大作业 在线电影网站 HTML+CSS+JS

📔网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。📓网站程序方面:计划采用最新的网页编程语言HTML5+CSS3+JS程序语言完成网站的功能设计。并确保网站代码兼容目前市面上所有的主流浏览器,已达到打开后就能即时看到网站的效果。📘网站素材方面:计划收集各大平台好看的图片素材,并精挑细选适合网页风格的图片,然后使用PS做出适合网页尺寸的图片。📒网站文件方面:网站系统文件种类包含:html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件

HTML网页设计 专注大学生网页设计 7万+

iOS开发者必备:从越狱设备里提取IPA的三种方法(含Filza、iTools实战)

本文详细介绍了iOS开发者从越狱设备提取IPA文件的三种实用方法,包括使用Filza文件管理器、AFC2配合桌面工具以及命令行高级技术。内容涵盖环境准备、操作步骤和技术原理,帮助开发者高效获取应用包文件,适用于逆向工程、测试分析等场景。

weixin_28717969的博客 803

Android稳定性测试-fastbot

Fastbot是由字节跳动 Quality Lab开源的一款基于model-based testing 结合机器学习、强化学习的APP 稳定性测试工具,提供了Android和iOS版本。。本文记录一下Fastbot的使用方法。输入法ADBKeyBoard在输入栏自动输入内容,屏蔽UI输入法遇到搜索栏乱输入,想要输入指定字符可以人工配置操作路径,用来覆盖 Fastbot 自动遍历不到的场景。也可以自定义操作序列,设置操作的先后顺序。1、新建文件(文件名称不可更改)prob。

qq_41522951的博客 968

基于Simulink的异步电机定子磁链定向控制(SFOC)仿真

本文带你从零构建了异步电机SFOC系统​ 的完整Simulink仿真模型,实现了:✅ 搭建异步电机、逆变器、风机负载的主电路与传感器模型;✅ 用MATLAB Function实现定子磁链观测(电压模型)、坐标变换、双闭环PI控制;✅ 验证SFOC在转速跟踪(响应0.2s、超调4%)、转矩响应(恢复0.15s)中的高性能;✅ 对比RFOC,明确SFOC在参数鲁棒性(转子电阻+50%时波动<2%)上的独特优势;✅ 理解SFOC“定子磁链定向+解耦控制”的核心思想(低成本高鲁棒性驱动的工程实现)。

xiaoheshang_123的博客 389

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android手机自动化,使用Android Bot Maker自动化您的Android手机 | MOS86

关于Android操作系统的最好的事情是可以自定义它的很多方法。随着生根,自动化应用程序,如Tasker或简单的主屏幕启动器,您可以自定义几乎任何你喜欢的东西。你穿的东西Android Bot Maker是一种将Android手机或平板电脑自动化的宏程序。在您下载Android Bot Maker之前,有几个要求。首先,您的设备需要扎根。第二个是你需要运行Android OS 4.1或更高。如果你...

weixin_31775717的博客 765

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

精讲前端实战项目之移动端网易云首页(附源码)

本篇文章分享给学习前端的朋友,可能你们长时间的学习了理论知识,对html,css,JavaScript等基础知识已经是相当熟悉了。但是没有一个自己的作品,那是因为缺乏练习一些实战项目。今天这个就是一个很好的实战例子——移动端网易云首页,刚开始就做一些简单的静态网页。 本人会用到很多标签,如果忘记了可以查看下面两篇博文。 标签详解第一篇 标签详解第二篇 一、效果展示 二、技术要求 因为我们做的是一个静态页面,所以没有用到JavaScript部分的内容,用html编写整体框架,用css做修饰就.

静Yu的博客 5166

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

小渣学移动Web开发

浏览器现状 PC端常见浏览器:360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器、搜狗浏览器、IE浏览器。 移动端常见浏览器:UC浏览器,QQ浏览器,欧朋浏览器,百度手机浏览器,360安全浏览器,谷歌浏览器,搜狗手机浏览器,猎豹浏览器,以及其他杂牌浏览器。 国内的UC和QQ,百度等手机浏览器都是根据Webkit修改过来的内核,国内尚无自主研发的内核,就像国内的手机操作系统都是基于Android修改开发的一样。 总结:兼容移动端主流浏览器,处理Webkit内核浏览器即可。 手机屏幕的现状 移动端设

Atticus的博客 432

【青龙面板+诺兰2.0 网页短信验证登录+bot查询】

诺兰2.0 网页短信验证登录+bot查询

Sean_Asu的博客 1万+

拥有相同的起源的Android恶意软件家族——GM BOT&SlemBunk

Fnut · 2016/03/18 10:380x00 前言二月19号,IBM XForce的研究员发布了一个情报报告,这份报告声称GM BOT的源代码在2015年12月被泄漏到了一个恶意软件的论坛上。GM BOT是一个复杂的安卓恶意软件家族,它出现在2014年末俄语地区的网络犯罪地下组织。IBM同时声称几个在最近的安全会议上提出的Android恶意软件家族实际上也是GM BOT的变种,包括Ban...

weixin_34239169的博客 453
上一篇: 关于“WireX Botnet”事件Android样本分析报告
下一篇: CS231n官方笔记授权翻译总集篇发布
Omni-Space
博客等级 码龄11年 2158粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值