飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10222|回复: 32

[iOS] 修改最新iphone QQ地理位置信息

[复制链接]
  • TA的每日心情
    奋斗
    2015-10-29 08:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2014-10-9 15:38:28 | 显示全部楼层 |阅读模式
    本帖最后由 creantan 于 2014-10-9 15:56 编辑

    作者:creantan (PYG解密小组)
    邮箱:creantan@gmail.com


    QQ版本V5.1.1.97
    先看下效果:
    1.png 2.png 3.jpg

    本教程面向新手,目的在于越狱开发工具入门介绍。

    1.工具介绍:

    Clutch( High-Speed iOS Decryption System )
    https://github.com/KJCracks/Clutch
    自己下载编译上传到越狱后的iphone上。

    cycript
    http://www.cycript.org/
    Cycript allows developers to explore and modify running applications on either iOS or Mac OS X using a hybrid of Objective-C++ and JavaScript syntax through an interactive console that features syntax highlighting and tab completion.

    使用cydia安装或者自己下载源码编译上传到手机。



    class-dump
    https://github.com/nygard/class-dump
    class-dump is a command-line utility for examining the Objective-C segment of Mach-O files. It generates declarations for the classes, categories and protocols. This is the same information provided by using 'otool -ov', but presented as normal Objective-C declarations.
    自行下载编译。

    Reveal
    http://revealapp.com/
    Reveal是一个很强大的UI分析工具

    开发工具 theos

    cydia插件选装:
    Core Utilities
    Core Utilities(/bin)
    diskdev-cmds
    file-cmds
    system-cmds
    Mobileterminal
    openSSH
    sshpass
    toggle ssh
    preferencdloader
    substrate safe mode
    syslogd to /var/log/syslog


    工具就先介绍到这。

    在开搞之前我们先思考下我们的目的,然后找到切入点,从切入点一步一步找到我们要的信息,最后编码。
    我们的目的是修改地理位置信息,所以我们只要修改了系统上报上来的经纬度信息就可以了,这个是最直接的方法,为了让新手们了解更多,我就从UI层切入,看完此教程估计一般的APP都不在话下了。

    废话不多说了,撸起:

    先使用Clutch将QQ解密

    8CA2D89B-B164-488F-9855-3FEA1AA1037D.png


    搞定将文件copy到电脑上来,文件在iPhone位置: /User/Documents/Cracked/QQ-v5.1.1-no-name-cracker-(Clutch-1.4.6).ipa
    将文件重命名为QQ.zip解压。

    接下来我们用class-dump将QQ的头文件都导出来:
    cd到payload中 class-dump -H -o ~/Desktop/jbdev/QQ/header/ QQ                  (~/Desktop/jbdev/QQ/header/为头文件导出保存路径)
    导出来一看差不多有6000多个头文件,数量巨大,怎么从这么多的头文件找到我们需要的呢,人肉?脑子瓦特了。。。

    这里我们就需要用到Reveal,cycript了,当然一般情况下cycript单独就能解决了,为了介绍下Reveal+cycript协作来完成定位我就啰嗦点了:
    在手机设置中找到Reveal选项点进去打开QQ的开关,这样Mac上的Reveal就能找到你的手机了。手机打开QQ,到达这个界面:
    2副本.png
    (注:这个我已经完成修改了,所以地址不是真实的)
    然后在电脑上打开Reveal,稍等片刻Reveal就会显示出你手机上的UI,分层结构一目了然。
    我们接下来就来找对应的ViewController
    我们可以看到这个界面主要有一个mapView和一个UITableView组成,要找到这个view的controller我们可以想想有什么好的办法,
    对了UITableView的delegate一般就是该view的controller了,所以我们从UITableView入手。
    在reveal中点中一行UITableviewCell,然后找到它的UITableView如下图:
    6D5453B7-17D1-4C40-9877-AFE1090C1B91.png
    我们得到这个UITableView在内存中的地址,这个时候我们ssh 到iphone上使用cycript:
    5E2E4F9D-5B37-4605-8DEB-A245394D8CD7.png

    铛铛~找到了,就是它了PositionShareViewController
    我们找到之前dump出来的头文件,搜索有用的信息
    - (id)getPOIItemInTable:(id)arg1 indexPath:(id)arg2;
    - (void)fetchDotAddress:(CDStruct_2c43369c)arg1 address:(id)arg2 refreshAddress:(BOOL)arg3;


    测试了下hook refreshPOIAt这个方法成功修改了位置信息:
    typedef struct {
        double latitude;
        double longitude;
    } CDStruct_2c43369c;

    %hook PositionShareViewController


    - (void)refreshPOIAt:(CDStruct_2c43369c)arg1
    {

        CDStruct_2c43369c address = {38.8977332000,-77.0365305000};
        %orig(address);
    }

    %end



    其他几个有GPS分享的地方用相同办法都可以搞定。

    最后上最直接方法:
    #import <CoreLocation/CoreLocation.h>
    %hook MQZLBSEngine

    - (void)locationManager:(id)arg1 didUpdateLocations:(id)arg2{
        %log;

        CLLocation *loc = [[CLLocation alloc] initWithLatitude:38.8977332000
                                                     longitude:-77.0365305000];
        NSArray *array = [[NSArray alloc] initWithObjects:loc, nil];
        [loc release];

        %orig(arg1,array);
        [array release];

    }


    %end

    评分

    参与人数 3威望 +68 飘云币 +68 收起 理由
    tree_fly + 20 + 20 CREANTAN带领我们飞翔吧!
    crackvip + 8 + 8 很给力!
    Nisy + 40 + 40 赞一个!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-3-29 07:24
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2014-10-9 16:46:46 | 显示全部楼层
    牛X,180度地膜拜啊!

    点评

    满满的都是回忆  详情 回复 发表于 2014-10-9 17:11
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2015-10-29 08:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-10-9 17:11:13 | 显示全部楼层
    x80x88 发表于 2014-10-9 16:46
    牛X,180度地膜拜啊!

    满满的都是回忆{:soso__10169062262133571330_1:}
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    前天 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2014-10-9 18:06:32 | 显示全部楼层
    欢迎更多人加入iOS行列!

    点评

    支持  详情 回复 发表于 2014-10-10 07:40
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-10-9 19:17:40 | 显示全部楼层
    看不懂,膜拜来自白宫的小伙伴 {:soso_e154:}

    点评

    Nisy大哥好啊,这5年一直在搞ios开发,论坛开了移动安全的我就来凑凑热闹了,为PYG贡献自己一点微薄力量吧,大家一起学习进步~~  详情 回复 发表于 2014-10-10 07:40
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2021-7-17 13:00
  • 签到天数: 975 天

    [LV.10]以坛为家III

    发表于 2014-10-9 23:27:54 | 显示全部楼层
    牛啊!大牛威武!支持啦
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2015-10-29 08:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-10-10 07:40:19 | 显示全部楼层
    Nisy 发表于 2014-10-9 19:17
    看不懂,膜拜来自白宫的小伙伴

    Nisy大哥好啊{:soso_e152:},这5年一直在搞ios开发,论坛开了移动安全的我就来凑凑热闹了,为PYG贡献自己一点微薄力量吧,大家一起学习进步~~
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2015-10-29 08:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-10-10 07:40:53 | 显示全部楼层
    飘云 发表于 2014-10-9 18:06
    欢迎更多人加入iOS行列!

    支持{:soso__10169062262133571330_1:}
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-10-10 10:24:43 | 显示全部楼层
    太强大了,白宫哥V5
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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