飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3533|回复: 5

[iOS] iOS裸函数应用实战 -- by 飘云

[复制链接]
  • TA的每日心情
    开心
    2016-6-16 14:07
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2015-7-21 18:46:03 | 显示全部楼层 |阅读模式
    [C] 纯文本查看 复制代码
    //
    //  main.c
    //  iOS_ARM
    //
    //  Created by piao on 15/7/21.
    //  Copyright (c) 2015年 __MyCompanyName__. All rights reserved.
    //
    
    #if defined (__arm64__) /*|| defined (__aarch64__)*/
    
    static __attribute__((naked)) long getLR(){
        long lr = 0;
        __asm__ volatile("mov       x0, lr\n\r"
                         "mov       %[_lr], x0\n\r"
                         "ret"
                         :[_lr]"=r"(lr));
        return lr;
    }
    
    static __attribute__((naked)) long getSP(){
        long sp = 0;
        __asm__ volatile("mov       x0, sp\n\r"
                         "mov       %[_sp], x0\n\r"
                         "ret"
                         :[_sp]"=r"(sp));
        return sp;
    }
    #else
    static __attribute__((naked)) int getLR(){
        int lr = 0;
        __asm__ volatile("mov        r0, lr\n\r"
                         "mov        %[_lr], r0\n\r"
                         "bx         lr"  // 别偷懒,自己返回
                         :[_lr]"=r"(lr));
        
        return lr;
    }
    
    static __attribute__((naked)) int getSP(){
        int sp = 0;
        __asm__ volatile("mov        r0, sp\n\r"
                         "mov        %[_sp], r0\n\r"
                         "bx         lr"
                         :[_sp]"=r"(sp));
        
        return sp;
    }
    
    #endif
    
    
    static void piaoyun(char *s)
    {
    #if defined (__arm64__)
        long lr = getLR();
        printf("[++++][arm64]return = %lx\n", lr);
    #else
        int lr = getLR();
        printf("[++++][arm]return = %x\n", lr);
    #endif
        
        char ss[10] = {0};
        strncpy(ss, s, sizeof(ss));
        printf("[++++]ss = %s\n\n", ss);
    }
    
    int main( int argc, char ** argv )
    {
        piaoyun("piaoyun");
    
    }
    
    

    至于能干什么 ,还是不说~~~ 和破解有关~{:soso_e104:}

    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2021-9-29 15:05
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2015-7-21 21:38:59 | 显示全部楼层
    至于能干什么,还是{:soso_e133:}
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-3-8 19:52
  • 签到天数: 461 天

    [LV.9]以坛为家II

    发表于 2015-7-22 08:21:19 | 显示全部楼层
    飘哥的东西都很有用,只是现在还不知道怎么用
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

    发表于 2015-7-22 20:37:27 | 显示全部楼层
    偷偷说下,看的通了六窍。剩下的一窍。估计快通了,看到那么多的获取和返回。瞬间感觉自己太白了,加强学习啊!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-9-19 08:48
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2015-8-21 00:08:53 | 显示全部楼层
    谢谢分享{:soso_e100:}
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2019-3-1 23:51
  • 签到天数: 559 天

    [LV.9]以坛为家II

    发表于 2015-10-9 22:45:09 来自手机 | 显示全部楼层
    谢谢楼主分享
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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