吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13285|回复: 71
收起左侧

[原创] 与校园网斗智斗勇(一)之分析G姓客户端密码加密

  [复制链接]
红颜世家、 发表于 2019-9-1 19:42
前言
注:
本文由楼主个人博客原创文章修改整理而来,菜鸟技术,大神莫喷。


首先抓包一下 然后我们一个一个数据包分析,今天仅仅分析密码加密。地址进行了一定的处理
第一个包
http://www.baidu.com/cmps/login.php/ppi/authIdentity
version=1.0.9.23&name=13788888888
可以看到第一个数据包仅仅发送了version和name分别为版本和手机号
{"resultCode":0,"resultMsg":"","data":"{\"challege_id\":\"*************************\"}"}
验证成功则返回了一个Challege_id
我们可以冷静的忽略

第二个包
http://www.baidu.com/cmps/login.php/ppi/authChallege
version=1.0.9.23&mac=13:24:73:45:a7:b6&ip=172.36.27.14&name=13788888888&algorithm=1&challege=MAT7I3z6N5DCUa2K&gw_address=192.168.1.1&gw_id=GEXE&ap_mac=&sta_type=pc&sta_model='Microsoft Windows 10, 64-bit'&sta_nic_type=0

mac=13:24:73:45:a7:b6是我们的mac地址
ip=172.36.27.14是我们的局域网ip地址
name=13788888888是我们的手机号
challege=MAT7I3z6N5DCUa2K应该是密码的加密
gw_address=192.168.1.1是服务器地址
sta_model='Microsoft Windows 10, 64-bit'收集了我们的电脑端版本以及是不是pc(pc和手机版网速不一致)
那么我们主要分析challege
搜索一下文本找到了

中文搜索引擎, 条目 854
地址=004328CF
文本字符串=version=%s&mac=%s&ip=%s&name=%s&algorithm=%d&challege=%s&gw_address=%s&gw_id=%s&ap_mac=%s&sta_type=%s&sta_model=%s&sta_nic_type=%d4
然后往上下断点慢慢找 发现一个我们的密码和token会传入

图片.png


[Asm] 纯文本查看 复制代码
004327C7  |.  68 B1000000   push 0xB1
004327CC  |.  8D85 1CE5FFFF lea eax,[local.1721]
004327D2  |.  50            push eax
004327D3  |.  E8 283CFEFF   call GiWiFiAs.00416400
004327D8  |.  83C4 08       add esp,0x8



我们进入这个call
[Asm] 纯文本查看 复制代码
0042FDCE  |. /EB 0F         jmp short GiWiFiAs.0042FDDF              ;  计算开始
0042FDD0  |> |8B85 28FEFFFF /mov eax,[local.118]                     ;  eax=0
0042FDD6  |. |83C0 01       |add eax,0x1                             ;  eax=1
0042FDD9  |. |8985 28FEFFFF |mov [local.118],eax                     ;  118=1
0042FDDF  |> \8B85 28FEFFFF  mov eax,[local.118]
0042FDE5  |.  3B85 34FEFFFF |cmp eax,[local.115]
0042FDEB  |.  7D 3C         |jge short GiWiFiAs.0042FE29
0042FDED  |.  8B85 28FEFFFF |mov eax,[local.118]
0042FDF3  |.  8B8D 28FEFFFF |mov ecx,[local.118]
0042FDF9  |.  8A940D 64FEFF>|mov dl,byte ptr ss:[ebp+ecx-0x19C]
0042FE00  |.  889445 F8FEFF>|mov byte ptr ss:[ebp+eax*2-0x108],dl
0042FE07  |.  8B85 40FEFFFF |mov eax,[local.112]
0042FE0D  |.  2B85 28FEFFFF |sub eax,[local.118]
0042FE13  |.  8B8D 28FEFFFF |mov ecx,[local.118]
0042FE19  |.  8B55 0C       |mov edx,[arg.2]
0042FE1C  |.  8A4402 FF     |mov al,byte ptr ds:[edx+eax-0x1]
0042FE20  |.  88844D F9FEFF>|mov byte ptr ss:[ebp+ecx*2-0x107],al
0042FE27  |.^ EB A7         \jmp short GiWiFiAs.0042FDD0


发现这里会混杂我们的token和已经加密过的密码

0042FE1C  |.  8A4402 FF     |mov al,byte ptr ds:[edx+eax-0x1]
0042FE20  |.  88844D F9FEFF>|mov byte ptr ss:[ebp+ecx*2-0x107],al
负责放入token 因为是edx+eax-0x1  eax eax初始为十六进制的20 (十进制32) 随后慢慢递减

0042FDF9  |.  8A940D 64FEFF>|mov dl,byte ptr ss:[ebp+ecx-0x19C]
0042FE00  |.  889445 F8FEFF>|mov byte ptr ss:[ebp+eax*2-0x108],dl
负责放入加密后的密码

我们继续往上找寻找加密密码的call
找到了00432835  |.  E8 46D4FFFF   call GiWiFiAs.0042FC80
然后我们进入找到计算的call 可以分析一下
图片.png

这样我们就可以写出来加密密码的代码
[C++] 纯文本查看 复制代码
#include<iostream>

#include <string>
using namespace std;
string calPass(string Pass);
string MakeTempPass(int TempPass);
string GetChallge(string MakePass, string TokenChallge);
int main()
{
	
	cout<<GetChallge(calPass("123456"), "12sax1a1x5sa1da2w864t8hf1h5tf2bf1");
	cin.get();
}

string calPass(string Pass)
{
	string Res="";
	int temps=0;
	for (int i = 1; i <= Pass.length(); i++)
	{

		temps=temps ^ Pass[i-1];
		if (i%3==0)
		{
			Res+=MakeTempPass(temps);

		}
		temps=temps << 8;
	}
	return Res;
}
string MakeTempPass(int TempPass)
{
	string Res="";
	string Charlist = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456";
	int Temp = 0;
	for (size_t i = 0; i <4; i++)
	{
		Temp = (TempPass >> ((3 - i)*6))&0x3F;
		Res += Charlist[Temp];
	}
	return Res;
}

string GetChallge(string MakePass, string TokenChallge)
{
	string res = "";
	for (size_t i = 0; i < MakePass.length(); i++)
	{
		res += MakePass[i];
		res += TokenChallge[31 - i];
	}
	return res;
}

图片.png
密码与客户端计算一致

免费评分

参与人数 14吾爱币 +18 热心值 +12 收起 理由
淡淡哇 + 1 + 1 谢谢@Thanks!
若沐曦 + 1 + 1 nice,期待大佬下一个作品
Hmily + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
huangqiang520 + 1 我很赞同!
个名点解甘难打 + 1 + 1 用心讨论,共获提升!
风之翼1240 + 1 热心回复!
yinshao + 1 + 1 用心讨论,共获提升!
初晨曦流辉 + 1 用心讨论,共获提升!
三点半源码 + 1 + 1 我很赞同!
贾斯科 + 1 + 1 谢谢@Thanks!
荆棘之吻 + 1 虽然我看不懂,但是丝毫不影响我评分
请水啸歌 + 1 + 1 我很赞同!
dahu1221 + 1 + 1 我很赞同!
执念zhinian + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

莫抹墨丶 发表于 2019-9-1 23:00
所以具体用途是什么。破译密码?计算加密公式?还是跳过认证?大佬给我个目的性呀
gugouo163 发表于 2019-9-2 10:18
本帖最后由 gugouo163 于 2019-9-2 10:22 编辑

以前大学的时候研究破解星空极速,开了论坛,公开发了拨号器,还有数据包伪装器,后来网站主被电信发函,后来就解散了,但是群依然活跃
以前的星空极速,必须安装客户端,安装后会禁止共享服务,虽然是PPOE拨号,但是会对账号进行加密再拨号,后来算法被破解,可以自己算出账号,后来又出狠招,星空极速每隔五分钟发心跳包给服务器,服务器没收到踢你下线,后来心跳包被大神破解,这个为了多卖账号,真是想尽了办法
tz1039 发表于 2019-9-1 19:59
小基兰博 发表于 2019-9-1 20:01
虽然看不懂,但还是想说大佬牛逼
zhanghailiangji 发表于 2019-9-1 20:01
不错不错,顶一下
墙边等红杏 发表于 2019-9-1 20:01
gi  wifi吗
pcdack 发表于 2019-9-1 20:07
牛逼,谢谢lz哈哈哈
airborne 发表于 2019-9-1 20:27
看不懂,但还是想说大佬相当牛逼哦……
宸曜 发表于 2019-9-1 20:38
感觉好像好高大上的样子
kingaero 发表于 2019-9-1 20:47
不错不错,顶一下
瓜皮小丸子 发表于 2019-9-1 20:49
不错,顶一下!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-18 12:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表