第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

安卓從開發(fā)到逆向(二)java轉(zhuǎn)換為smali對比分析

標(biāo)簽:
Java Android Android Studio

首先我们需要知道一个知识点

java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码。传统的java程序经过编译,生成java字节码并保存在class文件中,java虚拟机通过解码class文件的内容来运行程序,而dalvik虚拟机运行的是dalvik字节码,所有dalvik字节码由java字节码转换而来,并被打包到一个DEX可执行文件当中,dalvik虚拟机通过解释DEX文件来执行这些字节码。

破解软件下载地址:

链接:https://pan.baidu.com/s/1mHOl9y-LXnETUg3oDAKNvA 
提取码:3ygd

准备工具:

转换工具:J2S2J

首先我们来看一段JAVA代码

https://img1.sycdn.imooc.com//5d85e78c00016b9406920374.jpg


很简单的一段JAVA代码,定义了一个foo方法,传入两个int类型的参数,返回(a+b)*(a-b),在main方法中进行了调用,传入5和3,并打印出来。

接下来,我们通过J2S2J转换为smali

https://img1.sycdn.imooc.com//5d85e7960001b02618330866.jpg


我们对比着JAVA代码,来读一下smali代码,如果你对smali一点都不熟悉,可以看一下这篇文章,写的非常好。

https://blog.csdn.net/rozol/article/details/88368358

我们来分析一下这段smali代码

代码头部

创建了一个Hello类
.class public LHello;
该类继承于object
.super Ljava/lang/Object;
原文件名称为Hello.java
.source "Hello.java"

构造方法,该段未在java代码中显示,java中默认有一个隐藏的无参数的构造方法

https://img1.sycdn.imooc.com//5d85e7a000019e1807210311.jpg


主方法

https://img1.sycdn.imooc.com//5d85e7aa0001a48d08870798.jpg


自定义的foo方法

https://img1.sycdn.imooc.com//5d85e7b50001b00504300440.jpg


如上所示,我们解析了一段简单的JAVA代码到smali。

接下来,我们可以加一点点难度,写一个for循环

https://img1.sycdn.imooc.com//5d85e7bf0001c06d06350477.jpg


还是使用J2S2J转换为smali,本次我们仅分析for_test_method方法

https://img1.sycdn.imooc.com//5d85e7ca00015aa509280882.jpg


代码参考:

https://github.com/freedom-wy/reverse_android   中smali笔记

欢迎交流,一起学习,一起进步。

另外,我在慕课网上主讲课程:《python爬虫工程师必学--App数据抓取实战》

还请各位大神多多支持。


點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
Python工程師
手記
粉絲
4912
獲贊與收藏
487

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消