综合项目之闪讯破解(二)之 如何用C++建立PPPOE连接
如何用C++建立PPPOE连接
之前我们把闪讯拨号的真实用户名通过特定算法得到了,密码闪讯是没有加密的,因此我们接下来就是建立一个PPPOE连接。通过程序代码建立PPPOE连接的方法有大概这么几种:
1)直接修改系统的PBK电话簿文件内容(只对WIN8和WIN10有效)
PBK电话簿路径C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk我们一般手动通过 控制面板\所有控制面板项\网络和共享中心\设置新的连接和网络来建立一个拨号连接,这种方式建立的网络连接的连接信息在WIN8/10中储存在这个PBK文件中,但在WIN7系统下就不管用了,WIN7的PPPOE连接信息并不依赖这个文件,所以你直接拿一个正确的PPPOE连接的信息去替换原来的PBK文件内容在WIN7中也是无效的,因此这种方式只能在WIN8/10中玩玩,因此这种方法兼容性太差 舍去。
下面是一个名称为0的PPPOE连接的PBK文件内容
[0]
Encoding=1
PBVersion=4
Type=5
AutoLogon=0
UseRasCredentials=1
LowDateTime=1569292672
HighDateTime=30552893
DialParamsUID=7955968
Guid=F80C6B8196921A4EAF308401972D3382
VpnStrategy=0
ExcludedProtocols=8
LcpExtensions=1
DataEncryption=0
SwCompression=0
NegotiateMultilinkAlways=1
SkipDoubleDialDialog=0
DialMode=0
OverridePref=15
RedialAttempts=0
RedialSeconds=0
IdleDisconnectSeconds=0
RedialOnLinkFailure=0
CallbackMode=0
CustomDialDll=
CustomDialFunc=
CustomRasDialDll=
ForceSecureCompartment=0
DisableIKENameEkuCheck=0
AuthenticateServer=0
ShareMsFilePrint=1
BindMsNetClient=1
SharedPhoneNumbers=0
GlobalDeviceSettings=0
PrerequisiteEntry=
PrerequisitePbk=
PreferredPort=PPPoE5-0
PreferredDevice=WAN Miniport (PPPOE)
PreferredBps=0
PreferredHwFlow=0
PreferredProtocol=0
PreferredCompression=0
PreferredSpeaker=0
PreferredMdmProtocol=0
PreviewUserPw=1
PreviewDomain=0
PreviewPhoneNumber=0
ShowDialingProgress=0
ShowMonitorIconInTaskBar=0
CustomAuthKey=0
AuthRestrictions=552
IpPrioritizeRemote=1
IpInterfaceMetric=0
IpHeaderCompression=0
IpAddress=0.0.0.0
IpDnsAddress=0.0.0.0
IpDns2Address=0.0.0.0
IpWinsAddress=0.0.0.0
IpWins2Address=0.0.0.0
IpAssign=1
IpNameAssign=1
IpDnsFlags=0
IpNBTFlags=1
TcpWindowSize=0
UseFlags=2
IpSecFlags=0
IpDnsSuffix=
Ipv6Assign=1
Ipv6Address=::
Ipv6PrefixLength=0
Ipv6PrioritizeRemote=0
Ipv6InterfaceMetric=0
Ipv6NameAssign=1
Ipv6DnsAddress=::
Ipv6Dns2Address=::
Ipv6Prefix=0000000000000000
Ipv6InterfaceId=0000000000000000
DisableClassBasedDefaultRoute=0
DisableMobility=0
NetworkOutageTime=0
ProvisionType=0
PreSharedKey=
CacheCredentials=0
NumCustomPolicy=0
NumEku=0
UseMachineRootCert=0
NumServers=0
NumRoutes=0
NumNrptRules=0
AutoTiggerCapable=0
NumAppIds=0
NumClassicAppIds=0
SecurityDescriptor=
ApnInfoProviderId=
ApnInfoUsername=
ApnInfoPassword=
ApnInfoAccessPoint=
ApnInfoAuthentication=1
ApnInfoCompression=0
WebPreAuth=
DisableDefaultDnsSuffixes=0
NumTrustedNetworks=0
NumDnsSearchSuffixes=0
PowershellCreatedProfile=0
ProxyFlags=0
ProxySettingsModified=0
ProvisioningAuthority=
AuthTypeOTP=0
GREKeyDefined=0
NumPerAppTrafficFilters=0
AlwaysOnCapable=0
PrivateNetwork=0NETCOMPONENTS=
ms_msclient=1
ms_server=1MEDIA=rastapi
Port=PPPoE5-0
Device=WAN Miniport (PPPOE)DEVICE=PPPoE
LastSelectedPhone=0
PromoteAlternates=0
TryNextAlternateOnFail=1
2)使用系统的rasphone.exe用VBS代码来建立PPPOE
rasphone.exe路径C:\WINDOWS\System32\rasphone.exe,启动它我们可以看到当前系统存在的所有PPPOE连接,也可以新建PPPOE连接,通过运行一段VBS代码
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run("rasphone -a ""宽带连接X""")
WScript.Sleep 500
WshShell.SendKeys "R"
WScript.Sleep 20
WshShell.SendKeys "{ENTER}"
WScript.Sleep 20
WshShell.SendKeys "{ENTER}"
WScript.Sleep 20
把这段代码复制到记事本,后缀名改为.vbs双击运行即可,随后他就会帮我们建立一个名为“宽带连接X”的PPPOE连接,使用C#的Process启动它也可以,但不足的是他建立连接的时候要弹出对话窗口,因此这种方法背离了我们通过代码建立拨号连接的意图 也舍去。
3)使用Rasapi32.dll中的函数来建立PPPOE连接
函数名:RasSetEntryProperties
具体函数功能见https://msdn.microsoft.com/en-us/library/windows/desktop/aa377827
直接上代码
# include <ras.h>
# include <windows.h>
#pragma comment(lib, "Rasapi32.lib")
int __stdcall CreatePPPOE(int PPPOENumber)//传入PPPOE连接的数字名称
{LPRASENTRY lpRasEntry = NULL;DWORD cb = sizeof(RASENTRY);DWORD dwBufferSize = 0;DWORD dwRet = 0;// 取得entry的大小,这句是必须的,RasGetEntryProperties(NULL, L"", NULL, &dwBufferSize, NULL, NULL);if (dwBufferSize == 0)return -1;lpRasEntry = (LPRASENTRY)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwBufferSize);if (lpRasEntry == NULL)return -2;ZeroMemory(lpRasEntry, sizeof(RASENTRY));lpRasEntry->dwSize = dwBufferSize;lpRasEntry->dwfOptions = RASEO_PreviewUserPw | RASEO_RemoteDefaultGateway; lpRasEntry->dwType = RASET_Broadband;lstrcpy(lpRasEntry->szDeviceType, RASDT_PPPoE);lstrcpy(lpRasEntry->szDeviceName, L"");lpRasEntry->dwfNetProtocols = RASNP_Ip;lpRasEntry->dwFramingProtocol = RASFP_Ppp;wchar_t A[10];//PPPOE连接名称_itow_s(PPPOENumber, A, 10, 10);DWORD dwRul = ::RasDeleteEntry(NULL, A);//先删dwRet = RasSetEntryProperties(NULL, A, lpRasEntry, dwBufferSize, NULL, 0); // 创建连接HeapFree(GetProcessHeap(), 0, (LPVOID)lpRasEntry);if (dwRet != 0){return 3;}return 0;
}
这种方法掉用的是系统函数因此可以在WIN7/8/10上完美运行,而且不显示界面,非常稳定,最终选用了它。
BY Sunday丶若雪 转载请注明出处
综合项目之闪讯破解(二)之 如何用C++建立PPPOE连接相关推荐
- 火狐浏览器,访问腾讯云服务器的时候,出现建立安全连接失败的问题。
在腾讯云上部署了一个服务器,听过服务器ip访问项目的时候,刚开始的时候,启动tomcat,是可以启动的,有进程的,但是访问的时候,会出现超时连接.后来想了想可能是端口的问题.在服务器上,开通了8080 ...
- 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...
一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...
- 【网络工程】8、实操-万达酒店综合项目(二)
接上篇<7.实操-万达酒店综合项目(一)> 之前我们讲解了酒店网络项目的整体需求文档,包括项目背景.总体架构设计以及网络功能域划分.配置标准.路由规划等.本篇我们就来按照项目要求进行模拟拓 ...
- 树莓派综合项目2:智能小车(二)tkinter图形界面控制
一.介绍 阅读本篇文章前建议先参考前期文章: 树莓派基础实验34:L298N模块驱动直流电机实验 树莓派综合项目2:智能小车(一)四轮驱动 树莓派综合项目2:智能小车(一)四轮驱动中, ...
- 闪讯利用openwrt路由器拨号教程(二)
2.制作openwrt闪讯插件的前奏--搭建openwrt简易交叉编译环境 在此特别感谢https://github.com/miao1007,提供相关源码. (1)搭建linux虚拟机(Ubuntu ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释 继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更 ...
- 利用用户行为数据——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二)
系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...
- 关于学校闪讯的路由器使用
**近期回了趟学校,折腾了下路由器,原本安装的是老毛子的固件,内置了闪讯插件,使用的时候勾选南昌的确的插件就可以直接登录netkeep. 然后想试试能不能多拨,所以切换回了潘多拉固件,但是潘多拉需要自 ...
- 【网络工程】9、实操-万达酒店综合项目(三)
接上篇<8.实操-万达酒店综合项目(三)> 之前我们按照项目要求进行模拟拓扑的构建实操,完成了办公区部分的网络配置,本篇我们来继续完成其他区域的网络配置. 一.总体架构情况 按照之前项目需 ...
- 闪讯路由器linux系统,Linux操作系统下连接闪讯的方法(支持有线与无线)
一.前言 用过电信闪讯的同学都知道,闪讯没有开发Linux的客户端程序,所以这让很多玩Linux操作系统同时又是闪讯用户的同学很头疼,今天我就来介绍一下如何在Linux下连接闪讯网络,并且支持有线连接 ...
最新文章
- 看源码,我为什么推荐IDEA?
- 用python描述车_使用Python探索二手车市场(含代码)
- Android开发问题集锦
- 【Python】利用 pytesseract 识别图片中的数字
- [react] 使用React的memo和forwardRef包装的组件为什么提示children类型不对?
- 信息学奥赛C++语言:删除试题
- socketserver库的使用
- 打不过 Chrome 的 Firefox,我为什么要选择?
- 机房三维(3D)监控系统和机房可视化动力环境监控系统两者有什么特点?
- html中的分页条怎么写,html如何制作分页
- matlab互相关函数并画图,自相关函数和互相关函数的matlab计算和作图
- 冯·诺依曼理论的要点
- RT5350配置uboot 支持8M的Flash
- 江涛带你玩STM-CubeMx之OLED使用3线SPI和4线SPI驱动详解
- pyTorch入门(六)——实战Android Minist OpenCV手写数字识别(附源码地址)
- 常见的嵌入式操作系统
- 基于STM32的便携式多功能医用交互设备
- zookeeper的使用与集群搭建以及原理应用
- 计算机网络基本实训报告,计算机网络实训报告.doc
- Python获取秒级时间戳与毫秒级时间戳