原文来自:Tracy'Blog——【Get_pppoe】
第三篇:再窥pppoe拨号客户端1.2.9
如有转载,请注明出处!
“软件就是让人们把要重复去完成的机械化的动作简化交给电脑自动去处理。”——至少,我一直是这么认为的。
事情是这样的,早知道pppoe.cfg里面是保存账号和密码的,而且,论坛上也早就有大牛通过跟踪知道了是使用的变形的3DES加密算法,并且贴出了解密代码,于是copy了一下那段解密代码,能够把pppoe.cfg里面的十六进制数值解密成为能够看得懂的ascii码,之后呢?我们要做的是,再将这些ascii还原,并且前后剪切成为一段我们看的懂的字符。再通过一段转化算法将密码转换成为真实密码。然后再写入pppoe.txt中,方便我们自动循环拨号!
为了实现自动化。不惜花了整整一个周末窝在寝室闷闷的敲着代码。。。嗯,再次感谢倜倜、感谢不远千里、感谢老姐、同时也感谢Stephen Prata和谭浩强。
贴上代码:(不包含解密段):(解密段可以去我的另外一个帖子里去找)
int main(int argc,char *argv[])
{
char a[]="pppoe.cfg";
if (argc<2)
{
argv[1]=a;
}
char user[15];
char pwd[10];
int npwd[10];
FILE* ifile = 0;
FILE* ofile = 0;
int c,i,j = 0;
int id=0;
unsigned char rawData[50];
if ((ifile = fopen(argv[1], "rb"))==NULL)
{
printf ("Can't open file %c \n",argv[1]);
exit (1);
}
while ((c = fgetc(ifile)) != EOF)//从文件获取十六进制编码并且存放到rawData[50]中
{
rawData[id]=c;
id++;
}
int len = sizeof(rawData);
len = len%8?(len/8+1)*8:len;
BYTE *buf = (BYTE *)malloc(len);
memset(buf, 0, len);
memcpy(buf, rawData, sizeof(rawData));
for (i=0; i {
Des3Decrypt(buf+i*8);
}
for (i=0,j=12;i {
user[i]=buf[j];
}
user[i+1]=0x2C;//添加一个逗号
for (i=0,j=16+buf[8];i {
pwd[i]=buf[j];
}
i=0;
for (j=0; j {
c=(int)pwd[j];
switch (c)
{
case 48: npwd[i]=0x48;break;
case 49: npwd[i]=0xc8;break;
case 50: npwd[i]=0x49;break;
case 51: npwd[i]=0xc9;break;
case 52: npwd[i]=0x58;break;
case 53: npwd[i]=0xd8;break;
case 54: npwd[i]=0x59;break;
case 55: npwd[i]=0xd9;break;
case 56: npwd[i]=0x68;break;
case 57: npwd[i]=0xe8;break;
}
i++;
}
npwd[i]=0x0001;
npwd[i+1]=0x0002;//这两个要用%c写入
// for (j=0; j// {
// printf("%02x", npwd[j]);
// }
if ((ofile = fopen("pppoe.txt", "a"))==NULL)
{
printf ("Can't open file pppoe.txt \n");
exit (1);
}
for (i=0;i {
fprintf(ofile,"%c",user[i]);
}
fprintf(ofile,"%c",user[i+1]);//在文件中输入一个逗号
// printf("%d\n",buf[12+buf[8]]);//判断位置是否正确
for (i=0;i {
fprintf(ofile,"%2x",npwd[i]);
}
fprintf (ofile,"%c",npwd[i]);
fprintf (ofile,"%c\n",npwd[i+1]);//输入特殊符号,并以换行结尾
free(buf);
fclose(ifile);
fclose(ofile);
}
之后再用一个批处理,将当前目录下的所有.cfg格式的文件全部解密。并且把账号和密码放入pppoe.txt中!
Bat文件中内容:
@echo off
for /f "delims=" %%i in ('dir /a-d /b "*.cfg"') do get.exe %%i
自动循环拨号实现的代码为:
在有pppoe.txt的文件夹下新建一个bat程序写入:
@echo off
echo 开始拨号咯!!!
for /f "delims=, tokens=1,2" %%i in (pppoe.txt) do echo %%i&rasdial "connect" %%i %%j 1>nul 2>nul && exit
echo "没有可用的账号了,该工作了!!!"
pause
同时,你得确保你新建了一个名为“connect”的宽带连接。
ok,到这,你就可以实现自动循环拨号了。
——Tracy
欢迎来我博客做客:Tracy'Blog——【
www.purpleroc.com】
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法