JAVA 源码

...
String str1 = packedSwitch(1);
... private String packedSwitch(int i) {
String str = null;
switch (i) {
case 0:
str = "she is a baby";
break;
case 1:
str = "she is a girl";
break;
case 2:
str = "she is a woman";
break;
case 3:
str = "she is an obasan";
break;
default:
str = "she is a person";
break;
}
return str;
}

反编译后的smali源码为

...
.line 14
const/4 v2, 0x1 invoke-direct {p0, v2}, Lcom/droider/switchcase/MainActivity;->packedSwitch(I)Ljava/lang/String; move-result-object v0
... .method private packedSwitch(I)Ljava/lang/String;
.locals 1
.parameter "i" .prologue
.line 21
const/4 v0, 0x0 .line 22
.local v0, str:Ljava/lang/String;
packed-switch p1, :pswitch_data_0 .line 36
const-string v0, "she is a person" .line 39
:goto_0
return-object v0 .line 24
:pswitch_0
const-string v0, "she is a baby" .line 25
goto :goto_0 .line 27
:pswitch_1
const-string v0, "she is a girl" .line 28
goto :goto_0 .line 30
:pswitch_2
const-string v0, "she is a woman" .line 31
goto :goto_0 .line 33
:pswitch_3
const-string v0, "she is an obasan" .line 34
goto :goto_0 .line 22
nop :pswitch_data_0
.packed-switch 0x0 //默认值为0,下面每每加一
:pswitch_0
:pswitch_1
:pswitch_2
:pswitch_3
.end packed-switch
.end method

从这里看出 p0 为方法的第零个入参即this, p1为方法的第一个入参

【Android 逆向】switch 的smail特征的更多相关文章

  1. Android 逆向实战篇(加密数据包破解)

    1. 实战背景由于工作需要,要爬取某款App的数据,App的具体名称此处不便透露,避免他们发现并修改加密逻辑我就得重新破解了. 爬取这款App时发现,抓包抓到的数据是加密过的,如图1所示(原数据较长, ...

  2. Android逆向之smali

    Android逆向之smali 头信息 smail文件前三行 .class <访问权限> [关键修饰字] <类名>; .super <父类名>; .source & ...

  3. Android逆向——破解水果大战

    最近公司需要测试安卓app安全,但安卓基本上0基础,决定开始学习下安卓逆向根据吾爱破解上教程 <教我兄弟学Android逆向系列课程+附件导航帖> https://www.52pojie. ...

  4. 零开始Android逆向教程(一)——初探Android逆向

    这段时间因为某些业务驱动,开始研究一些逆向相关的东西,浏览了下其所包含的大致内容,发现真是一个新大陆,跟之前耳听目染过的一些门面介绍完全不是一个层级的,真正的印证了下手难这一说法.   谨此以本文开始 ...

  5. [转]Android逆向之动态调试总结

    一.在SO中关键函数上下断点 刚学逆向调试时.大多都满足于在SO中某关键函数上下断点.然后通过操作应用程序,去触发这个断点,然后进行调试 详细的步骤可以参见非虫大大的<Android软件安全与逆 ...

  6. android逆向学习小结--CrackMe_1

    断断续续的总算的把android开发和逆向的这两本书看完了,虽然没有java,和android开发的基础,但总体感觉起来还是比较能接收的,毕竟都是触类旁通的.当然要深入的话还需要对这门语言的细节特性和 ...

  7. 6.Android之switch和togglebutton按钮学习

    Switch和ToggleButton按钮在手机上也经常看到,比如手机设置里面wlan,蓝牙,gps开关等. 首先在工具上拖进一个switch和togglebutton开关按钮,如图 生成xml代码如 ...

  8. Android逆向之so的半自动化逆向

    因为工作需要,转型干android逆向,有几个月了.不过对于so的逆向,任然停留在,难难难的阶段,虽然上次自己还是逆向了一个15k左右的小so文件,但是,那个基本是靠,一步一步跟代码,查看堆栈信息来自 ...

  9. Android逆向破解表单注册程序

    Android逆向破解表单注册程序 Android开发 ADT: android studio(as) 程序界面如下,注册码为6位随机数字,注册成功时弹出通知注册成功,注册失败时弹出通知注册失败. 布 ...

随机推荐

  1. SAP Web Dynpro-调试应用程序

    您可以使用ABAP工作台中的各种工具来调试源代码. 您可以使用调试器测试Web Dynpro应用程序的所有源代码. 步骤1-要启动调试器,您必须在ABAP工作台中选择一个新的调试器. 步骤2-转到实用 ...

  2. SAP 上传 函数 ALSM_EXCEL_TO_INTERNAL_TABLE 不稳定

    ALSM_EXCEL_TO_INTERNAL_TABLE 这个函数的使用率非常高,然而有时候,它非常的不稳定,有时没有填充excel数据. 1.建议用户在开始运行界面程序之前先关闭Outlook. 2 ...

  3. ansible环境安装及数据恢复

    配置免密登录服务器及下载备份文件#!/bin/bash BACKUP=192.168.30.233 #一行写一个IP BACKUP_PASSWD="lxzl_root*#2021" ...

  4. 【python基础】第08回 流程控制 for循环

    本章内容概要 1.循环结构之 for 循环 本章内容详解 1.循环结构之for循环 1.1 语法结构 for 变量名 in 可迭代对象: #字符串 列表 字典 元组 for 循环的循环体代码 针对变量 ...

  5. python小题目练习(六)

    需求:编写一个猜数字的小游戏,随机生成1到10(包含1和10)之间的数字作为基准数,玩家每次通过键盘输入一个数字,如果输入的数字跟基准数相同,则闯关成功,否则重新输入,如果玩家输入的是-1,则表示退出 ...

  6. 禁用Chrome自动更新

    删除下Update目录 C:\Program Files (x86)\Google\Chrome\

  7. springboot creating bean with name 'sqlSessionFactory'

    pom.xml文件配置 <build> <plugins> <plugin> <groupId>org.springframework.boot< ...

  8. 001 Security概述

    1.Spring Security概述 Spring Security是用于解决认证与授权的框架 SpringSecurity默认要求所有的请求都是必须先登录才允许的访问 BCrypt加密算法 BCr ...

  9. centos 7系统安装

    1.打开VMware软件,点击创建虚拟机,默认选择,点击下一步 2.选择稍后安装,点击下一步 3.在Linux系统中选择CentOS 7 64位,点击下一步 4.选择好安装位置后,点击下一步 5.选择 ...

  10. 第2章 开始学习C++

    说明 看<C++ Primer Plus>时整理的学习笔记,部分内容完全摘抄自<C++ Primer Plus>(第6版)中文版,Stephen Prata 著,张海龙 袁国忠 ...