0


005.随机指纹浏览器编译之webRTC随机IP

一、什么是webRTC

  • WebRTC(Web Real-Time Communication)是一种支持网页浏览器进行实时语音通话(voice)、视频聊天(video chat)和点对点文件分享的技术。该技术由世界各地的工程师和研究人员共同开发,广泛应用于视频会议、在线教育等。

二、webRTC指纹原理

  • WebRTC 指纹(WebRTC Fingerprinting)是指利用 WebRTC 从用户的浏览器中获取信息,并构建一个可辨识该用户的唯一标识(即“指纹”)的行为。
  • 但是 WebRTC 获取的信息有限,且其中最重要最有用的的部分,就是获取用户的真是IP
  • 即使用户使用 VPN 或代理服务,隐藏其公网 IP 地址,也依旧能够被探测到。

三、通过webRTC获取自己的局域网ip

  • 有攻才有防,先看看网站是如何通过webRTC获取你信息的。
  • 将下面的代码复制到F12控制台,就可以获取显示你的真实ip了,加了代理也没有
functiongetLocalIPAddress(callback){// 创建一个RTCPeerConnection对象let rtc =newRTCPeerConnection({iceServers:[{urls:"stun:stun.miwifi.com"},{urls:'stun:stun.l.google.com:19302'},{urls:'stun:stun1.l.google.com:19302'},{urls:'stun:stun2.l.google.com:19302'},{urls:'stun:stun3.l.google.com:19302'},{urls:'stun:stun4.l.google.com:19302'},]});// 监听本地ice候选的事件
    rtc.addEventListener('icecandidate',functionhandleCandidate(evt){if(evt.candidate){// let ipAddress = evt.candidate.address;// 获取IP地址let ipRegex =/([0-9]{1,3}(\.[0-9]{1,3}){3})/;let match = ipRegex.exec(evt.candidate.candidate);if(match){let ipAddress = match[1];callback(ipAddress);}// 关闭peer connection并且移除监听// rtc.close();}});// 创建一个伪数据通道来触发ice事件
    rtc.createDataChannel('');// 创建并且触发offer来开始收集ice候选
    rtc.createOffer().then(offer=> rtc.setLocalDescription(offer)).catch(console.error);}// 使用函数getLocalIPAddress(ip=> console.log('your real IP is:', ip));
  • 输出:
your real IP is: 192.168.xxx.xxx

tips:也可以通过一些在线网站查看自己的暴露的真实ip,如:https://browserleaks.com/webrtc

四、编译chromium源码来随机webRTC的返回值

  • 第一篇文章写了如何编译chromium,假设你已经编译成功了。
  • 打开文件third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.cc
1.头部加上(随便加在一个
#include

后面)

#include<iostream>#include<cstdlib>// 包含rand()和srand()#include<ctime>// 包含time()
2.找到下面的代码
String RTCIceCandidate::candidate()const{return platform_candidate_->Candidate();}
替换为
std::string generateRandomIP(){srand(static_cast<unsignedint>(time(0)));// 为了每次运行生成不同的随机数int ip_part =rand()%256;
    std::string ip ="192.168.1.";
    ip += std::to_string(ip_part);return ip;}

String RTCIceCandidate::candidate()const{//return platform_candidate_->Candidate();returnString(generateRandomIP());}
3.编译
ninja  -C  out/Default chrome

既然网站从evt.candidate.candidate里获取我们的ip,我直接将其给篡改。
注意:返回空也是可以的,这2种方式都相当于禁用了webRTC的部分功能,可能导致webRTC不可用。

五、还有高手?

嘿嘿,不会的可以评论留言,我再出一期。

六、找工作。

有没有工资高,还没啥事情的工作啊,哈哈哈。

标签: chrome

本文转载自: https://blog.csdn.net/w1101662433/article/details/138001797
版权归原作者 王辉辉的猫 所有, 如有侵权,请联系我们删除。

“005.随机指纹浏览器编译之webRTC随机IP”的评论:

还没有评论