美文网首页Android...
程序员自我修养之逆向工程开发学习中

程序员自我修养之逆向工程开发学习中

作者: 巴菲伟 | 来源:发表于2022-02-21 21:21 被阅读0次

一、dalvik字节码学习

    1. 寄存器的命名     

        v: 局部变量寄存器,v0-vn ,  变量寄存器: v0-vn

        p: 参数寄存器, p0-pn

    2.得到samli文件流程

         .java ---> .class ---> .dex ----> smali        

    3. dalvil 字节码类型

         B : byte

         C : char

        S : short

        I :  int

        J : long

        F : float

        D : double

        Z : boolean

        V : void

        L : java类类型,也就是类型

        [ :  数组类型

    4. dalvil指令集

        wide : 标识指令操作数据宽度为64位

        from16 : 表示源寄存器为16位

        nod : 空操作指令,它的值为00。用来指令对齐,无实际作用和空格类似

        move : 数据操作指令

        exp :   vA(4位数值)     vAA(8位数值)     vAAAA(16位数值)

                Move vA,vB :  将vB寄存器的数值给vA寄存器

                Move/form16 vA,vB : 

        return void : 表示函数从void方法返回,返回值为空。

        return vAA : 表示函数返回一个32位非对象的值,返回寄存器为8位

        return-wide vAA : 返回一个64位非对象类型数值,返回寄存器为8位

        return-object vAA : 返回一个对象类型的值,返回寄存器为8位

        new-instance :  实例化一个对象

        invoke-direct : 调用实例化对应的方法

        invoke-virtual : 

        supt-object :  

        check-cast : 将寄存器对象引用转换为指定类型

        instace-of : 寄存器中的对象是否转为成指定类型

        goto : 无条件跳转

        switch : 分支跳转

        if : 条件跳转

    5.smail文件学习详解

         .registers :  寄存器的总数,这个数量是参数和本地变量总和

         .param : 表明方法的参数,每个.param指令表示一个参数,方法使用几个参数就有几个.paramter指令        

         .prologue : 指定代码的开始处,混淆代码可能去掉该指令

         .line : 指定源代码的行号,混淆后代码可能去掉行号

         .locals : 表示局部变量寄存器的总个数

         .local : 表明方法中非寄存器

Android killer ———  AndroidCrackTool (Mac)

PKID ———> 查看是否加壳

IDA ———> 分析.so库文件

JEB : 动态调试java层代码

WinHex : 修改so库软件

Xposed框架开发

CydiaSubstrate框架

Frida框架

ADBI框架

ELFARM HOOK框架

JVMTI : 有时间学习一下,内存分配坚听

相关文章

  • 程序员自我修养之逆向工程开发学习中

    一、dalvik字节码学习 1. 寄存器的命名 v: 局部变量寄存器,v0-vn , 变量寄存器:...

  • Mybatis逆向工程的使用

    何谓逆向工程?mybatis需要程序员自己编写SQL语句,mybatis官方提供逆向工程,可以针对单表自动生成my...

  • 书籍分享

    《程序员的自我修养》

  • 研读《程序员的自我修养—链接、装载与库》

    前言 仔细研读《程序员的自我修养—链接、装载与库》[https://www.amazon.cn/程序员的自我修养-...

  • 《程序员的自我修养》读书笔记

    bestswifter: 我推荐的iOS开发书单《程序员的自我修养》读书总结** 落影loyinglin研读《程序...

  • iOS开发之逆向工程

    逆向工程:是一个广义概念,是指从可运行的程序系统出发,运用解密、反汇编、系统分析、动态调试等多种技术对软件进行分析...

  • 012——逆向之Logos语法

    在逆向开发中,我需要使用到Logos语法,便于我们逆向开发 Logos语法 1.新建Logos测试工程 2.找到L...

  • iOS逆向工程-----class-dump

    俺要开始学习逆向工程啦,逆向工程对AppStore开发者的帮助啥啥的就不说了,你想拿来干嘛这些都不说了,写一篇文章...

  • 编译和链接

    摘自《程序员自我修养》 对于平时的应用程序开发,我们很少关注编译和连接过程,因为通常的开发环境都是流行的集成开发环...

  • iOS逆向学习

    参考文章:iOS逆向开发记录:iOS逆向之手机越狱iOS逆向之介绍iOS逆向之文件系统结构iOS逆向之文件权限及类...

网友评论

    本文标题:程序员自我修养之逆向工程开发学习中

    本文链接:https://www.haomeiwen.com/subject/aneilrtx.html