吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 68871|回复: 183
收起左侧

[Android 原创] 吾爱破解安卓逆向入门教程(四)---Smali函数分析

    [复制链接]
Ericky 发表于 2015-8-8 13:13
本帖最后由 PoJie_小雨 于 2015-8-8 13:36 编辑

幻灯片1.jpg 幻灯片2.jpg 幻灯片3.jpg 幻灯片4.jpg 幻灯片5.jpg 幻灯片6.jpg 幻灯片7.jpg 幻灯片8.jpg 幻灯片9.jpg 幻灯片10.jpg 幻灯片11.jpg

安卓移动逆向入门教程第四课.zip

42.33 KB, 下载次数: 2020, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 20威望 +1 吾爱币 +5 热心值 +20 收起 理由
black90 + 1 + 1 谢谢@Thanks!
醉丿浮 + 1 谢谢@Thanks!
wobuyaozhey + 1 + 1 大神666
shock-c + 1 谢谢@Thanks!
lockltd + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zzcard + 1 + 1 谢谢@Thanks!
hmg25 + 1 + 1 谢谢@Thanks!
While_Shark + 1 谢谢@Thanks!
bfchengnuo + 1 谢谢@Thanks!
Crazwly + 1 我很赞同!
龙腾飞2016 + 1 谢谢@Thanks!
13996468674 + 1 谢谢@Thanks!
休止符 + 1 谢谢@Thanks!
lkocok + 1 谢谢@Thanks!
qtfreet00 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
victory石头 + 1 谢谢@Thanks!
Flowerinjury + 1 热心回复!
YG阳光YG + 1 热心回复!
逍遥枷锁 + 1 谢谢@Thanks!
w小杰 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

风衣地象 发表于 2016-3-22 15:47
课后练习, 结合流云的JAVA代码,写出自己的理解:如有不正确的地方请斧正

.local 4                   //本地寄存器4个,即v0,v1,v2,v3
const/4 v2, 0x1            //4字节常量v2=1
const/16 v1, 0x10          //16字节常量v1=16
:local v1, "length":I      //本地寄存器int length=v1
if-nez v1,:cond_1        //如果v1不等于0,这跳转至cond_1
:cond_0                    //cond_0标签
:goto_0                    //goto_0标签
return v2                  //返回v2的值
:cond_1                    //开始执行cond_1标签代码
const/4 v0,0x0             //4字节常量v0=0
:local v0, "i":I           //本地寄存器int i=v0
:goto_1                    //开始执行goto_1标签代码
if-lt v0, v1, :cond_2      //如果v0小于v1,则跳转至cond_2
const/16 v3,0x28           //接上:如果v0大于等于v1,则执行下面语句: 16字节常量v3=40
if-le v1,v3, :cond_0       //接上:如果v1小于等于v3,则跳转至cond_0,即返回v2的值
const/4 v2, 0x0            //接上:如果v1大于v3,则4字节常量v2=0
goto:goto_0                //跳转至goto_0,即返回v2的值
:cond_2                    //cond_2标签
xor-int/lit8 v1, v1, 0x3b  //将第二个v1寄存器中的值与0x3b(59)进行异或运算,得到的值赋值给第一个v1寄存器中
add-int/lit8 v0, v0, 0x1   //将第二个v0寄存器中的值加上0x1(1),所得的值放入第一个v0寄存器中
goto:goto_1                //跳转值goto_1标签,这里可以看到cond_2实际上是一个for循环,而不是简单的IF判断

免费评分

参与人数 3热心值 +3 收起 理由
张二黑 + 1 用心讨论,共获提升!
bfchengnuo + 1 我很赞同!
zeu0d + 1 我很赞同!

查看全部评分

流云 发表于 2015-8-10 09:33
本帖最后由 流云 于 2015-8-10 10:31 编辑

是这样吗?   @PoJie_小雨
        int v2 = 1;
        int v1 = 16;
        if (v1 != 0)
        {
                for (int v0 = 0; v0 < v1;)
                {
                        v1 = v1 ^ 59;
                        v0++;
                }
                if (v1 > 40)
                {
                        v2 = 0;
                }
        }
        return v2;

免费评分

参与人数 2热心值 +2 收起 理由
chenny + 1 我很赞同!
Ericky + 1 恭喜过关

查看全部评分

watermoon 发表于 2016-3-22 09:21
问一下,请问 .local v1, "length":I 这一句什么意思,
相当于将本地变量 v1 命名为 "length" 吗?
结合上一句, const/16 v1, 0x10 就是: int length = 16; ?
 楼主| Ericky 发表于 2015-8-9 11:24
469164323 发表于 2015-8-9 04:51
v2=1
v1=16
if (v1!=0){

有点错误,最后有个空的if语句是有问题的
victory石头 发表于 2015-9-10 11:56
楼主,问个问题
sget-object v0, Lcom/dddd;->bbb:Lcom/ccc;
invoke-virtual {v0, v1}, Lcom/ccc;->Messages(Ljava/lang/Object;)V

这两句是不是等于,public/protected void Message(ccc bbb,Object)
神御丶家家 发表于 2015-8-8 13:25
听说沙发有CB
测试中…… 发表于 2015-8-8 13:30
支持,在看~
sunfly 发表于 2015-8-8 13:54 来自手机
好人 学习中
shenshen 发表于 2015-8-8 15:40
继续支持 不错
Flowerinjury 发表于 2015-8-8 18:03
支持楼主!赞一个!
Norton 发表于 2015-8-8 18:21
好帖支持一个
lies2014 发表于 2015-8-8 21:10
刚接触Android逆向的都该看看,很快可以入门
longruan 发表于 2015-8-8 21:34
感觉这个资料讲的不是很清楚,希望楼主能找一些讲的清楚的资料。
我love破戒 发表于 2015-8-8 21:59
支持,jiayou
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 18:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表