2015移动安全挑战赛T1
逆向分析题目给了一个AliCrackme_1.apk,安装之后打开是一个密码登录界面。输入密码之后点击”登录”会判断密码是否正确。
使用jdax反编译一下,MainActivity是入口。
因为涉及到点击操作后面的逻辑,查看onClick()方法
public void onClick(View v) throws IOException { String password = edit.getText().toString(); String table = MainActivity.this.getTableFromPic(); String pw = MainActivity.this.getPwdFromPic(); Log.i("lil", "table:" + table); Log.i("lil", "pw:" + pw); String enPassword = ""; try { enPassword = MainActivity.bytesToAliSmsCode(table, password.getByte ...
25-7杂谈
过的很快的7月,前半个月十分焦虑。于是果断跳槽。来了一家非常满意的公司,同事们都很不错。工作氛围也很好,真正开始了安卓测试/逆向的学习,收获满满!!!完成了今年的第二首原创作品,还是花了不少精力的。除了月底的时候发烧加肠胃炎折磨了一周,,总之下半月还是比较满意的。
安卓App渗透真机环境配置
前言为了开始学习APP以及安卓测试和逆向相关的东西,斥巨资()买了一部二手机,并且配置好了常用的环境,途中踩了不少坑,本文用于记录。
在开始之前,强烈建议观看极客湾的这个视频了解一些基础概念名词
大部分步骤是参考的本文
手机选购为了后续的刷机也好,获取root也好,需要手机能够解除BL锁,然而并不是所有手机都能够解除BL锁,所以在选择手机之前一定要先查询该手机型号是否支持解除BL锁,并且不同厂商的手机解锁的方式不同,建议选越简单越好。
我在一开始买了一部中兴远航的手机,尝试之后发现无法解除BL锁,于是退回重新购入了一部红米K30 4g版。
下载Android SDK为了连接手机进行调试,需要在电脑上安装安卓SDK
我是直接安装了Android Studio,并且在里面安装了SDK
解除BL锁这部K30解除BL锁还算简单,使用小米官方给的解锁工具即可。
但需要在手机中先插入SIM卡绑定小米账号之后等待7天才能解锁,于是我把主力机的SIM卡拿出来插入绑定之后,关机再把卡拔出来后等待了7天。
刷入第三方ROM这部K30自带的系统是MIUI11的国内版,既然都玩机了,于是尝试着刷入第三方ROM ...
25-6杂谈
月初还是挺开心的,玩乐队真的很开心qwq。眼看秋招慢慢到来,焦虑地快要崩溃,每天在玩音乐中逃避着现实。不过在与各位朋友和师傅的交流加上自己的整理思考后,逐渐没那么焦虑了,该重新行动起来了。
kaggleIntermediateMachineLearningMissingValues
在本教程中,您将学习三种处理缺失值的方法。然后,您将在实际数据集上比较这些方法的有效性。
简介数据中出现缺失值的原因有很多。例如:
一套两居室的房子不会包含第三间卧室的大小值。
调查受访者可能选择不分享他的收入。
如果您尝试使用包含缺失值的数据构建模型,大多数机器学习库(包括 scikit-learn)都会报错。因此,您需要选择以下策略之一。
三种方法1) 一种简单方法:删除包含缺失值的列最简单的方法是删除包含缺失值的列。
除非被删除列中的大多数值缺失,否则使用这种方法,模型将失去大量(可能有用的!)信息。举一个极端的例子,假设一个包含 10,000 行数据的数据集,其中一个重要的列缺少一个条目。这种方法会完全删除该列!
2) 更好的选择:插补插补 会用某个数字填充缺失值。例如,我们可以用平均值填充每列。
在大多数情况下,估算值不会完全正确,但通常比完全删除该列能得到更准确的模型。
3) 估算的扩展估算是标准方法,通常效果良好。然而,估算值可能会系统性地高于或低于其实际值(实际值未包含在数据集中)。或者,缺失值的行可能以其他方式独一无二。在这种情况下,您的模型可以通过考虑哪些值 ...
kaggleIntermediateMachineLearningIntroduction
Introduction欢迎来到 Kaggle 的中级机器学习课程!
如果您具备一些机器学习背景,并且想要学习如何快速提升模型质量,那么您来对地方了!在本课程中,您将通过学习以下技能来加速您的机器学习专业知识:
处理实际数据集中常见的数据类型(缺失值、分类变量);
设计流程来提升机器学习代码的质量;
使用高级技术进行模型验证(交叉验证);
构建广泛用于赢得 Kaggle 比赛的先进模型(XGBoost);以及
避免常见且重要的数据科学错误(数据泄露)。
在此过程中,您将通过完成每个新主题的实际数据练习来应用所学知识。这些实践练习使用来自Kaggle Learn 用户房价竞赛的数据,你将使用 79 个不同的解释变量(例如屋顶类型、卧室数量和浴室数量)来预测房价。你将通过提交预测来衡量你的进度,并观察你在排行榜上的排名上升!
先修课程如果您之前构建过机器学习模型,并且熟悉模型验证、欠拟合和过拟合 和 随机森林 等主题,那么您就可以学习本课程了。
如果您是机器学习新手,请查看我们的机器学习入门课程,其中涵盖了学习本课程所需的所有准备内容。
轮到你了继续进行**第一个练习**,学习如何向 ...
THMTheLayoftheLand
Introduction在红队作战中,熟悉最初访问受感染机器的环境至关重要。因此,执行侦察和枚举是至关重要的,其主要目标是收集尽可能多的信息,以供下一阶段使用。
建立初步立足点后,后渗透过程就开始了!
本会议室将介绍我们需要了解的常用概念、技术和安全产品。
在本会议室中,我们假设我们已经获得了机器的访问权限,并准备通过执行以下枚举来进一步扩展我们对环境的了解:
网络基础设施
Active Directory 环境
用户和组
基于主机的安全解决方案
基于网络的安全解决方案
应用程序和服务
Network Infrastructure一旦进入未知网络,我们的首要目标是确定我们的位置以及可以访问哪些内容。在红队作战期间,我们需要了解我们正在处理的目标系统是什么、该机器提供什么服务以及我们处于哪种类型的网络中。因此,在获得初始访问权限后对受感染机器进行枚举是回答这些问题的关键。本任务将讨论我们在作战期间可能遇到的常见网络类型。
网络分段是一层额外的网络安全措施,它被划分为多个子网。它用于增强网络的安全性和管理。例如,它用于防止未经授权访问公司最有价值的资产,例如客户数据、财务记录等。
虚拟 ...
THMEnumeration
Introduction本房间专注于后漏洞利用枚举。换句话说,我们假设我们已经成功获得了某种形式的系统访问权限。此外,我们可能已经进行了权限提升;换句话说,我们可能在目标系统上拥有管理员或 root 权限。即使使用非特权帐户(即非 root 或管理员),本房间讨论的一些技术和工具仍然可以提供有用的输出。
如果您对权限提升感兴趣,可以查看 Windows 权限提升 房间和 Linux 权限提升 房间。此外,还有两个方便的脚本:WinPEAS 和 LinPEAS,分别用于 MS Windows 和 Linux 权限提升。
我们的目的是收集更多信息,以帮助我们获得更多目标网络访问权限。例如,我们可能会找到授予其他系统访问权限的登录凭据。我们专注于标准系统上常用的工具,以收集有关目标的更多信息。作为系统的一部分,这些工具看起来无害,并且产生的“噪音”最少。
我们假设您可以访问目标上的命令行界面,例如 Linux 系统上的“bash”或 MS Windows 系统上的“cmd.exe”。在 Linux 系统上,从一种 Shell 开始,通常可以轻松切换到另一种。同样,从“cmd.exe”开始,如 ...
kagglePandas重命名和合并
Introduction我们经常会收到一些带有列名、索引名或其他命名约定的数据,而这些约定我们并不满意。在这种情况下,您将学习如何使用 Pandas 函数将有问题的条目更改为更合适的名称。
您还将学习如何合并来自多个 DataFrame 和/或 Series 的数据。
要开始本主题的练习,请点击此处。
Renaming我们首先要介绍的函数是 rename(),它允许你更改索引名称和/或列名称。例如,要将数据集中的 points 列更改为 score,我们可以这样做:
In [1]:
import pandas as pdpd.set_option('display.max_rows', 5)reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
In [2]:
reviews.rename(columns={'points': 'score'})
Out[2]:
country
description
designation
score
price
provin ...
kagglePandas数据类型和缺失值
Introduction在本教程中,您将学习如何研究 DataFrame 或 Series 中的数据类型。您还将学习如何查找和替换条目。
要开始此主题的练习,请点击此处。
DtypesDataFrame 或 Series 中列的数据类型称为 dtype。
您可以使用 dtype 属性获取特定列的类型。例如,我们可以获取 reviews DataFrame 中 price 列的 dtype:
import pandas as pdreviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)pd.set_option('display.max_rows', 5)
In [2]:
reviews.price.dtype
Out[2]:
dtype('float64')
或者,dtypes 属性返回 DataFrame 中每个列的 dtype:
In [3]:
reviews.dtypes
Out[3]:
country objectdescription o ...
kagglePandas分组和排序
Introduction映射允许我们一次转换 DataFrame 或 Series 中整列的数据,每次转换一个值。然而,我们通常希望对数据进行分组,然后针对数据所在的组执行特定操作。
正如您将了解到的,我们使用 groupby() 操作来实现这一点。我们还将介绍一些其他主题,例如更复杂的 DataFrame 索引方法以及如何对数据进行排序。
要开始此主题的练习,请点击此处。
Groupwise analysis到目前为止,我们经常使用的一个函数是“value_counts()”函数。我们可以通过执行以下操作来复制“value_counts()”的功能:
import pandas as pdreviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)pd.set_option("display.max_rows", 5)
In [2]:
reviews.groupby('points').points.count()
Out[2]:
points80 39781 ...
kagglePandas摘要函数和映射
Introduction在上一篇教程中,我们学习了如何从 DataFrame 或 Series 中筛选出相关数据。正如我们在练习中所演示的那样,从数据表示中提取正确的数据对于完成工作至关重要。
然而,数据并非总是以我们想要的格式从内存中直接输出。有时,我们需要自行进行一些工作来重新格式化数据以适应当前任务。本教程将介绍我们可以对数据应用的不同操作,以使输入“恰到好处”。
要开始本主题的练习,请点击此处。
我们将使用《葡萄酒杂志》的数据进行演示。
import pandas as pdpd.set_option('display.max_rows', 5)import numpy as npreviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
reviews
Out[2]:
country
description
designation
points
price
province
region_1
region_2
taster_name
taster_twit ...
