• iOS


    在iOS逆向工程中,Reveal扮演着重要角色,一般情况下,Reveal在iOS开发过程中可以分析UI界面的状态,同样也可以应用于分析其他任意的App。Reveal是一个很强大的UI分析工具,可非常直观地查看app的UI布局,不仅限于自己的app,其他app的UI布局也一览无余。

    必须要一台越狱手机

    越狱教程:http://www.taig.com

    安装openSSH(Cydia源里安装)

    在mac终端通过openSSH命令连接越狱机

    1.越狱机与mac必须连接同一网络
    2.在终端命令中输入ssh root@越狱机网络IP,如:ssh root@192.168.2.2
    3.输入您修改过的Root密码,默认:alpine

     
     

    注意:连接越狱机时,可能出现下面错误(未出错请忽略这块)

    RSA host key for 192.168.2.2 has changed and you have requested strict checking.
    Host key verification failed.

    这是openssh-server重装引起的,执行以下命令即可解决

    ssh-keygen -R 192.168.2.2(192.168.2.2换成你要连的手机网络IP)

    安装MobileSubstrate(Cydia源里安装)

    ...

    安装Reveal(Mac上)

    1.官网:http://revealapp.com
    2.可下载试用版:download a trial (当然你也可以买滴~~)
    3.如果之前下载过又过期了,可以调整系统时间(调前一两年)

    1.打开Revela,找到libReveal.dylibReveal.framework

     
     

    2.拷贝Reveal.framework到越狱机 (注意:重新开个终端,无需连接越狱机)

    scp -r /Users/apple/Desktop/Reveal.framework  root@192.168.2.2:/System/Library/Frameworks
    
     
     

    可到越狱机查看注入的文件:

     
     

    3.拷贝libReveal.dylib到越狱机

    scp -r /Users/apple/Desktop/libReveal.plist root@192.168.2.2:/Library/MobileSubstrate/DynamicLibraries/
    
     
     

    4.在本地创建libReveal.plist,编辑libReveal.plist,指定app的Bundle identifier(可以指定多个Bundle identifier),下面添加App Store简书Bundle identifier
    (注意:如何找app对应的Bundle identifier请看后面)

     
     

    拷贝libReveal.plist到越狱机

    scp -r /Users/apple/Desktop/libReveal.plist root@192.168.2.2:/Library/MobileSubstrate/DynamicLibraries/
    
     
     

    可越狱机查看注入的文件:

    # cd /Library/MobileSubstrate/DynamicLibraries/
    # ls
    
     
     

    重启手机(或执行命令killall SpringBoard),打开App Store简书app,随后在Reveal右上角选择

    (注意:有可能白苹果,解决方案请看后面)

     
    App Store
     
    简书app

    如何找到app的Bundle identifier?

    1.终端连接越狱机后,输入:cd /private/var/mobile/Containers/Bundle/Application

    2.查看手机所有app资源文件输入:ls(列出手机上所有app的资源文件,怎么找?)

     
     

    3.打开iTunes->我的应用程序->右键简书app->在Finder中显示->解压ipa->进入解压文件->Payload->右键应用程序->显示包内容->找到可执行文件(黑色)->复制文件名

    可执行文件

     
     

    查找简书app资源文件路径:find . -name 'Hugo*'

     
     

    简书app资源文件名:BE1895C3-5CB0-4894-8A9E-FE4EEF4C7989

    4.安装iFile(Cydia源里安装)
    进入iFile打开iTunesMetadata.plist:/private/var/mobile/Containers/Bundle/Application/BE1895C3-5CB0-4894-8A9E-FE4EEF4C7989/iTunesMetadata.plist

    下图红框里的comjianshu.Hugo即为简书的Bundle identifier

     
     

    重启手机后白苹果,无法进入界面

    预估原因:libReveal.plist文件格式错误导致

    第一种方法:

    长按【home键】+【电源键】->在白苹果刚刚出现的时候->按住iPhone的音量增加键->iPhone进入Safe Mode->正常重启->将libReveal.plist文件删掉


    第二种方法:

    第一步:重新恢复系统
    1.打开iTunes,越狱机与电脑连接 -> 长按【home键】+【电源键】6秒强制关机 -> 随后长按【home】键6秒,直到在电脑上看到识别到DFU状态下的USB设备时就进入到DFU模式
    2.随后你有两个选择,升级更高系统或恢复出厂状态。(系统都会自动会升级到最高版本8.4.1)
    第二步:降低系统,目前越狱只支持8.4以下(8.4.1只能降到8.4)
    1.找到8.4的固件(下载地址: http://jailbreak.25pp.com/gujian/固件区分: http://bbs.25pp.com/thread-108715-1-1.html)
    2.手机连接mac->打开iTunes->选择设备->摘要->option + 点击更新/恢复iPhone)->选择下载的固件 -> 自动安装直到成功
    第三步:越狱
    1.用太极软件越狱 (下载地址:http://www.taig.com) (ps:pp助手,8.4越狱失败)



    ======================================================================================================================
     
    下面记录下分析的两款新闻类app:
     
    1:网易新闻
        a.首页(NTESNBNewsListPageController)
        
        顶部:NTESNBNewsNaviBarlnnerView
        头部:NTESNBChannelSlideView
            -UICollectionView
                -NTESNBChannelSlideViewCell
        主页:NTESNBPreventScrollingScrollView
        tabbar:NTESNBTabBar
    2:今日头条
        a.首页(ArticleTabBarStyleNewsListViewController)
            UITransitionView
                -TTFeedCollectionViewController    
                    主页:-UIcollectionView
                        -TTFeedCollectionNewsListCell
                            -UITableView
                    顶部:-TTTopBar
                        -TTCategorySelectorView
                            头部:-UIScrollView
            TTTabbar
                -TTArticleTabBarController
        

  • 相关阅读:
    舍不得花钱的心理分析
    DLL编程的导入导出,__declspec(dllimport),__declspec(dllexport)
    浅谈C/C++内存泄漏及其检测工具
    C++多线程编程简单实例
    linux镜像源设置
    Linux基础教程 linux无密码ssh登录设置
    兄弟连教育分享:用CSS实现鼠标悬停提示的方法
    PHP基础教程 PHP的页面缓冲处理机制
    Linux基础教程 linux下cat 命令使用详解
    PHP基础教程 php 网络上关于设计模式一些总结
  • 原文地址:https://www.cnblogs.com/gongyuhonglou/p/9370410.html
Copyright © 2020-2023  润新知