字符串方法

str.zfill(width)

  • str是我们要操作的字符串,如果是整形浮点型等数字类型,要先通过str()转换为字符串再进行操作
  • width是补零之后的字符串长度,如果补零后的长度小于或等于原字符串的长度,那么字符串将不会产生任何的变化

示例

1
2
3
4
a = 'zfill'
print(a.zfill(10))
>>>
00000zfill
1
2
3
4
a = 'zfill'
print(a.zfill(3))
>>>
zfill

urllib

urllib.parse

urllib.parse.quote(“需要编码的字符串”)

  urllib.parse.quote() 是 Python 中用于对 URL 进行编码的函数,它可以将 URL 中的特殊字符转换为符合 URL 规范的编码形式,以便在网络传输或存储时使用。
  这个函数在处理 URL 中的特殊字符时非常有用,例如空格、斜杠、问号等。在需要将字符串作为 URL 参数发送时,通常需要使用该函数对参数进行编码,以确保 URL 的正确性和完整性。

1
2
3
4
5
6
7
8
url = "https://www.example.com/search?q="
enurl=urllib.parse.quote(url)
print(enurl)
deurl = urllib.parse.unquote(enurl)
print(deurl)
>>>
https%3A//www.example.com/search%3Fq%3D
https://www.example.com/search?q=

random

random.getrandbits(k)

这个函数用于生成一个k位的随机整数,生成的随机数介于0和2^k(不包含)之间,如果k不是0到getrandbits.max_size(包含)之间,那么将引发一个ValueError异常。
示例

1
2
3
4
5
6
7
import random

# 生成一个 5 位的随机整数
rand_int = random.getrandbits(5)
print(rand_int)
>>>
26 //0~32

函数的定义

1
2
3
def 函数名(参数):
函数体
return 返回值

注意事项:

  • 参数如果不需要,可以省略
  • 返回值如果不需要,可以省略
  • 函数必须先定义,后使用
阅读全文 »

布尔类型

布尔类型的字面量:

  • True 表示真
  • False 表示假
    定义变量存储布尔类型数据
    变量名称 = 布尔类型字面量(或返回值是布尔类型的表达式)
阅读全文 »

定位:Objection辅助定位

  Objection在逆向过程中最强大的功能是从海量的代码中定位关键的程序逻辑。Frida需要每次手动编写代码取Hook静态分析的函数,进而观察其参数和返回值是否与需求相符。,Objection将常用的一些功能集成在一起,使得逆向开发和分析人员在分析过程中不需要浪费精力在编写代码上。

阅读全文 »

apk位置在https://github.com/r0ysue/AndroidFridaBeginnersBook/tree/main/Chap04
注意:这里一定要把apk安装在模拟器上!这里一定要把apk安装在模拟器上!这里一定要把apk安装在模拟器上!

阅读全文 »

验证adb是否安装成功

adb helpadb --help

常用简单命令

命令 说明
adb version 查看adb版本
adb devices 获取设备列表和设备的状态
adb shell 进入设备的shell环境
adb -s xxx(序列号) shell 指定要进入的设备的shell环境

安装卸载软件

命令 说明
adb install apk文件路径 apk是安卓应用程序的安装包
adb install [-r] apk文件路径 -r 表示覆盖安装,保留缓存和数据处理
adb uninstall apk包名 包名是com.xxxx.xxx格式
adb push local remote 将文件从计算机复制到连接的 Android 设备
adb pull remote local 将文件从 Android 设备复制到计算机
local和remote local:计算机上的文件或目录的路径,remote:Android设备上的目的地路径。
adb shell pm list packages 列出设备中所有的App包名
adb shell pm list package -s 列出设备中系统应用所有的App包名
adb shell pm list packages -3 列出第三方应用
adb shell pm list packages -i 列出仅用户安装的应用(包括第三方应用和用户安装的系统应用)
adb shell pm list packages -f 列出所有已安装的应用程序的详细信息(包名,路径)

pm: 包管理器命令行工具,用于管理应用包。

其他命令

命令 说明
adb shell ps 查看设备所有进程,可以过滤
adb get-serialno 获取手机序列号
adb shell getprop ro.serialno 同上
adb shell getprop ro.product.cpu.abi 查看系统架构
adb shell df 获取手机存储信息
adb shell date 查看系统时间
adb logcat 查看日志,可以过滤

从手机端截图发送到电脑端

1
2
3
4
5
6
7
8
//使用以下命令截屏操作并将截图保存在手机的SD卡或内部存储中
adb shell /system/bin/screencap -p /sdcard/screenshot.png

//确认截图操作成功后,使用以下命令将截图文件从手机拉取到电脑上的指定位置:
adb pull /sdcard/screenshot.png .

//使用以下命令将手机上的截图删除以节省空间
adb shell rm /sdcard/screenshot.png

Objection是基于Frida的工具。

Objection介绍

  在Frida提供的各种API基础之上可以实现无数的具体功能,Objection可以说是一个将各种常用功能整合进工具中供我们直接在命令行中使用的利器,Objection甚至可以不写一行代码就能进行App的逆向分析。

阅读全文 »