设置root密码

初始账号密码为:kali:kali
打开终端,输入sudo -i,会提示输入普通用户密码,输入后回车。
输入passwd root命令来修改root密码。
输入新的root密码,接着回车,注意的是输入的密码不会显示。
然后再重新输入新的root密码,然后回车root密码就修改成功。

改网络

网络连接方式修改为桥接模式。

输入ifconfig查看IP地址确保与物理机IP地址在同一网段下。

更改shell

kali Linux在2020.3版本后默认的Shell不再是Bash而是Zsh,虽然Zsh的的自动提示等扩展功能很强大,但是后续Android系统的编译只支持Bash终端,因此需要更改Shell。
输入命令:chsh -s /bin/bash

修改后发现SHELL还是zsh,这是因为SHEL的更改需要重启才能生效。

重启系统
使用root用户登录,修改成功。

apt更新和升级软件包

更新软件包 apt update
升级软件包 apt -y upgrade,此步骤时间较长。

时区

查看时区:timedatectl

修改时区:timedatectl set-timezone Asia/Shanghai

neofetch 查看系统信息

htop

安装adb

apt -y install adb
连接手机

安装vscode

下载的vscode是.deb后缀的包
进入下载目录,执行dpkg -i code_xxx.deb,解包完成
我们执行code,提示如下,不推荐使用超级管理员用户来启动vscode

如果还是想通过通过root用户来启动code,那么可以执行code --no-sandbox --user-data-dir来启动。
输入这么长一串命令太麻烦了,我们可以把这个内容放在一个.txt文件里,然后把后缀改掉,修改文件权限,然后执行。

安装nodejs

1
apt -y install nodejs

查看版本
node -v

npm

1
apt -y install npm

查看版本
npm -v

安装Android Studio

协议介绍

HTTP协议的全称是超文本传输协议,是一种请求与响应模式的、无状态的应用层协议,基于TCP/IP通信协议来传递数据。

URL

网址,又称为统一资源定位符,互连网上的每个文件都有一个唯一的 URL。

URL基本格式

scheme://[username:password@]hostname[:port][/path][;parameters][?query][#fragment]

HTTP协议格式

HTTP请求格式

HTTP响应格式

HTTP 状态码分类

关于ELF

  可执行与可链接格式(Executable and Linkable Format,ELF),常被称为 ELF格式,是一种用于可执行文件、目标代码、共享库和核心转储(core dump)的标准文件格式。

阅读全文 »

frida对象

spawn(“PackageName”)

以挂起的方式启动进程

  • 需要传入参数,App包名
  • 返回一个进程pid

attach(target)

附加到已存在的进程

  • 传入的参数target可以是App包名,也可以是进程pid
  • 返回一个Session对象

resume(target)

恢复进程

kill(target)

杀死进程

get_usb_device()

获取device信息

  • 返回一个Device对象

get_device_manager()

获取设备管理器

  • 返回一个DeviceManager对象

DeviceManager对象

get_usb_device()

获取device信息

  • 返回一个Device对象

add_remote_device(location)

添加一个新的设备

  • 返回一个Device对象

Device对象

属性

  • id = device.id
  • name = device.name
  • icon = device.icon
  • type = device.type

spawn(“PackageName”)

以挂起的方式启动进程

  • 需要传入参数,App包名
  • 返回一个进程pid

attach(target)

附加到已存在的进程

  • 传入的参数target可以是App包名,也可以是进程pid
  • 返回一个Session对象

resume(target)

恢复进程

kill(target)

杀死进程

Session对象

create_script(script_name)

创建脚本文件

  • 返回一个Script对象

Script对象

load()

加载脚本

on(‘message’,callback)

如果第一个参数是'message',会调用callback函数。
把js中的数据发送到python来处理
与脚本中的send()配合使用

callback(message,data)

第一个参数接收send发送的数据
第二个参数未知

1
2
3
4
5
def callback(message,data):
if message["type"] == 'send':
print(u"[*] {0}".format(message['payload']))
else:
print(message)

post()

把python中的数据返回给js
与脚本中的recv配合使用
recv(func)

exports.rpcfunc(args)

通过python调用js脚本中的方法
与rpc配合使用

1
2
3
rpc.exports = {
rpcfunc: test
}

NewString

  • jstring NewString(JNIEnv *env, const jchar *unicodeChars,jsize len);
    从Unicode字符数组构造一个新的java.lang.String对象。

NewStringUTF

  • jstring NewStringUTF(JNIEnv *env, const char *bytes);
    用于从UTF-8编码的字符串常量中创建一个java.lang.String对象。(把C字符串转换为Java字符串)。

GetStringChars

  • const jchar* GetStringChars(JNIEnv *env, jstring string, jboolean *isCopy);
    返回指向字符串Unicode字符数组的指针。这个指针在调用ReleaseStringChars()之前一直有效。
    如果isCopy不是NULL,则将*isCopy设置为JNI_TRUE,如果进行了复制;或者设置为JNI_FALSE,如果没有进行复制。

pthread_create

  • int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
    void *(*start_routine)(void *), void *arg);
    • pthread_t *thread:
      指向 pthread_t 类型的指针,用于存储新创建线程的线程 ID。
    • const pthread_attr_t *attr:
      指向线程属性对象的指针,可以是 NULL,表示使用默认属性。
    • void *(*start_routine)(void *):
      线程的起始函数,这是一个函数指针,它指向一个函数,该函数接收一个 void * 类型的参数,并返回一个 void * 类型的值。
    • void *arg:
      传递给起始函数的参数。
    • 返回值
      成功返回0,否则返回错误码。

打开终端

win+R输入cmd,然后回车即可

Terminal 面板快捷键

  • Ctrl + Shift + d/t
    打开新的终端窗口
  • Ctrl + Shift + w
    关闭当前窗口
  • Alt + Shift + d
    划分窗格
  • Alt + Shift + 方向键
    调整窗口
  • Alt + 方向键
    窗口切换

终端命令

winver

查看系统版本

net share

管理共享资源,使网络用户可以使用某一服务器上的资源。

net user

1
2
3
4
5
6
7
net user

>>>
-------------------------------------------------------------------------------
Administrator blt DefaultAccount
Guest WDAGUtilityAccount
命令成功完成。
  • Administrator 这是Windows系统中的内置管理员账户,具有对计算机的完全控制权限
  • blt 这可能是一个普通用户账户或服务账户,具体取决于您的系统设置和用途。
  • DefaultAccount 这个账户可能是一个默认的用户账户,通常用于演示或测试目的。
  • Guest 这是Windows系统中的内置访客账户,通常用于临时访问计算机,权限有限。
  • WDAGUtilityAccount 这是Windows Defender Application Guard(Windows Defender应用程序防护)使用的账户,用于隔离浏览器中的活动,保护系统安全。

ipconfig

用于显示当前的TCP/IP配置的设置值。

PING

测试主机之间网络的连通性。
参数

  • -t:持续发送回显请求直到手动停止。
  • -n:指定发送回显请求的次数。
  • -l:指定发送数据包的大小。
  • -w:设置等待回显响应的超时时间。

nslookup

查询域名系统(DNS)以获取域名与IP地址之间的映射关系。

certutil

校验和
使用Windows下shell中集成的专门的工具来校验文件的MD5值、SHA1值、SHA256值
命令如下

certutil -hashfile filename MD5
certutil -hashfile filename SHA1
certutil -hashfile filename SHA256