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. 关于android里activity之间利用button组件使用intent跳转页面

    在需要跳转的activity 中 添加 Button button = findViewById(R.id.login);button.setOnClickListener(new View.OnCl ...

  2. bat-命令行配置静态IP地址

    查看连接名称ipconfig 打开命令提示符,输入netsh后回车 输入interface后回车 输入ip,回车 输入set address "连接名称" static 新IP地址 ...

  3. 给你准备好了——50道Python面试题集锦(附答案)

    Python是目前编程领域最受欢迎的语言.在本文中,我将总结Python面试中最常见的50个问题.每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作.这些面试题涉及P ...

  4. Sentinel-流量防卫兵

    1.背景 1.1 简介 Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性. Sentinel 具有以下特征 丰富的应用场景:Sentinel 承接了阿里巴 ...

  5. 【cartographer_ros】五: 发布和订阅陀螺仪Imu信息

    上一节介绍了里程计Odometry传感数据的订阅和发布. 本节会介绍陀螺仪Imu数据的发布和订阅.陀螺仪在cartographer中主要用于前端位置预估和后端优化. 目录 1:sensor_msgs/ ...

  6. sudoer文件配置错误修复

    以错误配置权限为例,如果是sudoer文件内容配置错误,替换步骤(4)中相关命令即可 (1)建立两个ssh连接,分别记为A.B (2)A:echo $$获取ID (3)B:pkttyagent --p ...

  7. Ubuntu挂载smb到本地

    常规 sudo apt-get install cifs-utils -y sudo mkdir /airdisk;vim /etc/fstab 在/etc/fstab添加 //192.168.123 ...

  8. BUCK 电路PSIM仿真模型搭建之一 (PI模块稳定性分析)

    1.  利用PI 模块仿真BUCK 电路电流环 在调制通道上未加入延迟环节时,无论KP, KI 参数如何调整系统都是稳定的 仿真结果: 在调制通道上引入 一个开关周期的延迟 系统出现明显的震荡情况,说 ...

  9. k8s配置集ConfigMap详解

    ConfigMap介绍 ConfigMap和Secret是Kubernetes系统上两种特殊类型的存储卷,ConfigMap对象用于为容器中的应用提供配置文件等信息.但是比较敏感的数据,例如密钥.证书 ...

  10. SQL语句实战学习

    参考:https://zhuanlan.zhihu.com/p/38354000再次感谢作者的整理!! 1.数据已提前准备好了,已知有如下4张表:学生表:student 成绩表:score(学号,课程 ...