Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Zephyr)
  • No Skin
Collapse
RipperStore Logo
  1. Home
  2. Community
  3. General Discussions
  4. VRChat added VRCA (?maybe VRCW too) protection

VRChat added VRCA (?maybe VRCW too) protection

Scheduled Pinned Locked Moved General Discussions
protectionvrchatvrcaripping
141 Posts 47 Posters 9.5k Views 46 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mrblueskellyM Offline
    mrblueskellyM Offline
    mrblueskelly
    wrote last edited by
    #62

    Yeah that sounds more likely honestly, the only "ripping detection" I've heard about is Gonzo which in my opinion the weirdest shit, on the creator side of things I wouldn't touch it with a 10ft pole

    1 Reply Last reply
    2
    • V Offline
      V Offline
      vrchat_account
      wrote last edited by
      #63

      If anyone knows/finds a way to decrypt encrypted vrcw/world __data files, or a workaround to download/extract the unencrypted files before they're encrypted, please let me know (preferably without requiring a modified VRChat client). Or if someone doesn't want to share how to do it but is willing to provide at least 1 specific unencrypted world file (I have ~40 that I saved from before the update, but not of some worlds that I'm interested in).

      1 Reply Last reply
      0
      • V vrchat_account referenced this topic
      • V vrchat_account referenced this topic
      • V Offline
        V Offline
        vrchat_account
        wrote last edited by
        #64

        Thread for sharing unencrypted cached world files from before the update:
        https://forum.ripper.store/topic/56387/share-any-unencrypted-before-vrchat-update-world-cache-files-__data-vrcw-here

        1 Reply Last reply
        0
        • S Offline
          S Offline
          stetamatea
          wrote last edited by
          #65

          So few things I discovered from my analysis.

          1. For now encryption is client side and assets are encrypted only after they are downloaded

          2. Seems they are using AES which is very strong BUT the game has to have a key to decrypt it so just like with Unreal Engine PAK files it should be possible to eventually find where the key is and get it, there are three possibilities, one is that key is hardcoded into the game and is same for all users, second is that key is derived from some sort of unique ID like HWID so that every user has different key (I have yet to test it by transfering cache to another PC) third option is that the decrpytion key isnt even in the game at all and that its sent by the server upon loading into the world.

          3. Using Fiddler doesnt work as game seems to use SSL Pinning so when running network sniffing asset related connections are rejected, Fiddler used to work few years ago for getting VRCA and VRCW files from CDN but looks like thats now fixed and VRCX JSON asset URL field is empty and even if you get the URL to asset on CDN connection is rejected because its expecting VRC user agent and auth key, it should be possible to spoof VRC user agent and somehow get users auth key but I havent tried that
            I think SARS already does that but I havent tested it for now.

          4. Even tho encryption is currently done client side its possible that in the future any new uploads of bundles might be encrypted upon upload either in SDK or on server after upload.
            Whats already unencrypted on CDN will probably stay that way because it would be very hard on servers CPUs to go and encrypt all the old content but future content is uncertian.

          I still gotta check if there is some sort of temp file during encryption process but Im gonna have to do that on old laptop since my main desktop is done with encryption in less than a second while old laptop I dug up freezes for a few seconds during encryption after download is done so I might try killing the game during that process

          devonda745D 1 Reply Last reply
          0
          • S Offline
            S Offline
            stetamatea
            wrote last edited by
            #66

            Okay, so some more testing.
            I set my cache location to secondary drive and proceeded to download quite large in file size worlds and watched SSDs activity.
            I found that D drive that cache was set to was idle during download and only shows large activity spike after download is complete so files arent being put into the cache folder until they are done downloading meanwhile C the system drive was showing write speed that match my download speed during download and was showing less and less disk space during large world downloads only for that space to come back seconds after download was done.

            So what I did was change my router settings to severly limit my download speed and then join the largest possible world I found to allow me some time to check where the game is writing temporary file during the download.

            The game stores temporary _data file in C:\Users\username\AppData\LocalLow\Unity\Temp during the download before moving it to cache folder after download is done.

            I tried to copy the file to another location just as ingame download hits 100% in hopes to get it before its encrypted but it ended up still being encrypted no matter how many times I tried so either its already encrypted on server or my Core i9 is too fast and gets encryption done before file gets copied or its simply being encrypted in realtime as its written even sa temp file.

            I just hope decryption key is somewhere in the game and not sent by the server to the client as getting key from the game itself is gonna be easier because game has SSL pinning which make traffic sniffing harder.

            ReymR S Thisistest2T 3 Replies Last reply
            0
            • S stetamatea

              So few things I discovered from my analysis.

              1. For now encryption is client side and assets are encrypted only after they are downloaded

              2. Seems they are using AES which is very strong BUT the game has to have a key to decrypt it so just like with Unreal Engine PAK files it should be possible to eventually find where the key is and get it, there are three possibilities, one is that key is hardcoded into the game and is same for all users, second is that key is derived from some sort of unique ID like HWID so that every user has different key (I have yet to test it by transfering cache to another PC) third option is that the decrpytion key isnt even in the game at all and that its sent by the server upon loading into the world.

              3. Using Fiddler doesnt work as game seems to use SSL Pinning so when running network sniffing asset related connections are rejected, Fiddler used to work few years ago for getting VRCA and VRCW files from CDN but looks like thats now fixed and VRCX JSON asset URL field is empty and even if you get the URL to asset on CDN connection is rejected because its expecting VRC user agent and auth key, it should be possible to spoof VRC user agent and somehow get users auth key but I havent tried that
                I think SARS already does that but I havent tested it for now.

              4. Even tho encryption is currently done client side its possible that in the future any new uploads of bundles might be encrypted upon upload either in SDK or on server after upload.
                Whats already unencrypted on CDN will probably stay that way because it would be very hard on servers CPUs to go and encrypt all the old content but future content is uncertian.

              I still gotta check if there is some sort of temp file during encryption process but Im gonna have to do that on old laptop since my main desktop is done with encryption in less than a second while old laptop I dug up freezes for a few seconds during encryption after download is done so I might try killing the game during that process

              devonda745D Offline
              devonda745D Offline
              devonda745
              Grunt
              wrote last edited by
              #67

              @stetamatea On what are you basing your assumption that it's fully client-side?
              Avatars are being processed server-side already.. When you switch to an avatar that hasn't been used for a while it says "Server Processing" for quite a bit before sending it to the players, I see 0 reason for them not to encrypt them at that moment.
              As someone who's dealt with AES, it's not that bad (performance wise) to encrypt avatars/worlds server-side.

              Thank you for the upvotes. ❤

              S 1 Reply Last reply
              0
              • devonda745D devonda745

                @stetamatea On what are you basing your assumption that it's fully client-side?
                Avatars are being processed server-side already.. When you switch to an avatar that hasn't been used for a while it says "Server Processing" for quite a bit before sending it to the players, I see 0 reason for them not to encrypt them at that moment.
                As someone who's dealt with AES, it's not that bad (performance wise) to encrypt avatars/worlds server-side.

                S Offline
                S Offline
                stetamatea
                wrote last edited by stetamatea
                #68

                @devonda745 said in VRChat added VRCA (?maybe VRCW too) protection:

                @stetamatea On what are you basing your assumption that it's fully client-side?
                Avatars are being processed server-side already.. When you switch to an avatar that hasn't been used for a while it says "Server Processing" for quite a bit before sending it to the players, I see 0 reason for them not to encrypt them at that moment.
                As someone who's dealt with AES, it's not that bad (performance wise) to encrypt avatars/worlds server-side.

                On the fact that you can use modified client and it will simply download avatar as usual without any encryption which can then be extracted like usual with assetripper.

                Another option that works is by bypassing EAC (there are some non public methods) on vanilla client you can inject cert to avoid SSL pinning and use MITM proxy to get direct URL to assetbundle game downloads and manually download it which again results in unencrypted assetbundle, its only when client processes it that its encrypted.

                Same was confirmed in SARS discord server, downloading directly from CDN using VRCHAT client headers and user auth key results in unencrypted assetbundle and same with using modded client, the assets are unencrypted.

                Some were able to run older client version before they patched that (now that its patched it checks and forces update) and old client resulted in unencrypted patch.

                They are literally serving raw assetbundles from server and client applies encryption when it gets put into cache folder.

                I wouldnt be suprised if they start serving encrypted content from server in the future but for now its fully client side.

                V 1 Reply Last reply
                0
                • D Offline
                  D Offline
                  DrKWolf
                  wrote last edited by
                  #69

                  Can someone please help me download only a single avatar from the servers before this situation gets any worse?

                  Looking for someone who can bypass avatar encryption. I just need to get a single avatar. Still have the ID of it.

                  VisaeresV 1 Reply Last reply
                  -3
                  • D DrKWolf

                    Can someone please help me download only a single avatar from the servers before this situation gets any worse?

                    VisaeresV Offline
                    VisaeresV Offline
                    Visaeres
                    Grunt
                    wrote last edited by
                    #70

                    @DrKWolf Or..just get avatars the normal way lol

                    1 Reply Last reply
                    👎
                    1
                    • C Offline
                      C Offline
                      chocolate
                      wrote last edited by
                      #71

                      You don’t really need to go through all that trouble—
                      wouldn’t it be easier to just use Windows’ built-in features to make the files read-only and then grab them?
                      Even then, the files were already encrypted, so doesn’t that mean they’re encrypted at the time of download?

                      1 Reply Last reply
                      0
                      • S stetamatea

                        @devonda745 said in VRChat added VRCA (?maybe VRCW too) protection:

                        @stetamatea On what are you basing your assumption that it's fully client-side?
                        Avatars are being processed server-side already.. When you switch to an avatar that hasn't been used for a while it says "Server Processing" for quite a bit before sending it to the players, I see 0 reason for them not to encrypt them at that moment.
                        As someone who's dealt with AES, it's not that bad (performance wise) to encrypt avatars/worlds server-side.

                        On the fact that you can use modified client and it will simply download avatar as usual without any encryption which can then be extracted like usual with assetripper.

                        Another option that works is by bypassing EAC (there are some non public methods) on vanilla client you can inject cert to avoid SSL pinning and use MITM proxy to get direct URL to assetbundle game downloads and manually download it which again results in unencrypted assetbundle, its only when client processes it that its encrypted.

                        Same was confirmed in SARS discord server, downloading directly from CDN using VRCHAT client headers and user auth key results in unencrypted assetbundle and same with using modded client, the assets are unencrypted.

                        Some were able to run older client version before they patched that (now that its patched it checks and forces update) and old client resulted in unencrypted patch.

                        They are literally serving raw assetbundles from server and client applies encryption when it gets put into cache folder.

                        I wouldnt be suprised if they start serving encrypted content from server in the future but for now its fully client side.

                        V Offline
                        V Offline
                        vrchat_account
                        wrote last edited by vrchat_account
                        #72

                        @stetamatea said in VRChat added VRCA (?maybe VRCW too) protection:

                        you can use modified client and it will simply download avatar as usual without any encryption which can then be extracted like usual with assetripper.

                        Another option that works is by bypassing EAC (there are some non public methods) on vanilla client you can inject cert to avoid SSL pinning and use MITM proxy to get direct URL to assetbundle game downloads and manually download it which again results in unencrypted assetbundle, its only when client processes it that its encrypted.

                        Same was confirmed in SARS discord server, downloading directly from CDN using VRCHAT client headers and user auth key results in unencrypted assetbundle and same with using modded client, the assets are unencrypted.

                        Do those workaround methods function for worlds too? Is there anyone who uses any of them, willing to provide me a specific world AssetBundle unencrypted?

                        1 Reply Last reply
                        0
                        • S stetamatea

                          Okay, so some more testing.
                          I set my cache location to secondary drive and proceeded to download quite large in file size worlds and watched SSDs activity.
                          I found that D drive that cache was set to was idle during download and only shows large activity spike after download is complete so files arent being put into the cache folder until they are done downloading meanwhile C the system drive was showing write speed that match my download speed during download and was showing less and less disk space during large world downloads only for that space to come back seconds after download was done.

                          So what I did was change my router settings to severly limit my download speed and then join the largest possible world I found to allow me some time to check where the game is writing temporary file during the download.

                          The game stores temporary _data file in C:\Users\username\AppData\LocalLow\Unity\Temp during the download before moving it to cache folder after download is done.

                          I tried to copy the file to another location just as ingame download hits 100% in hopes to get it before its encrypted but it ended up still being encrypted no matter how many times I tried so either its already encrypted on server or my Core i9 is too fast and gets encryption done before file gets copied or its simply being encrypted in realtime as its written even sa temp file.

                          I just hope decryption key is somewhere in the game and not sent by the server to the client as getting key from the game itself is gonna be easier because game has SSL pinning which make traffic sniffing harder.

                          ReymR Offline
                          ReymR Offline
                          Reym
                          wrote last edited by
                          #73

                          @stetamatea this gave me an idea, i am gonna try it, with the slowest device ever imaginable, with celeron cpu 😂, i doubt it will work

                          I'm bad at understanding english word

                          I fix .vrca stuff for free and for fun! Depending on file, every outcome and vary might be different than the original avatar has due to the toggles and much more, send me a pm if you need an avi that i can ripp (public avatar only, private still risky, unless you have the cache of those avatar you can send them over for request for fix) and fix for you or cracking a password locked avatar or send me .vrca file or vrchat avatar link through my pms!

                          VRCHAT HAS ADDED SORT OF PROTECTION ON __DATA (aka .vrca or .vrcw) FILE, EVERY FUTURE REQUEST IS CLOSED UNTIL ALTERNATIVE PROGRAM FOR EXTRACTING FILE OUT IS MADE

                          1 Reply Last reply
                          0
                          • S stetamatea

                            Okay, so some more testing.
                            I set my cache location to secondary drive and proceeded to download quite large in file size worlds and watched SSDs activity.
                            I found that D drive that cache was set to was idle during download and only shows large activity spike after download is complete so files arent being put into the cache folder until they are done downloading meanwhile C the system drive was showing write speed that match my download speed during download and was showing less and less disk space during large world downloads only for that space to come back seconds after download was done.

                            So what I did was change my router settings to severly limit my download speed and then join the largest possible world I found to allow me some time to check where the game is writing temporary file during the download.

                            The game stores temporary _data file in C:\Users\username\AppData\LocalLow\Unity\Temp during the download before moving it to cache folder after download is done.

                            I tried to copy the file to another location just as ingame download hits 100% in hopes to get it before its encrypted but it ended up still being encrypted no matter how many times I tried so either its already encrypted on server or my Core i9 is too fast and gets encryption done before file gets copied or its simply being encrypted in realtime as its written even sa temp file.

                            I just hope decryption key is somewhere in the game and not sent by the server to the client as getting key from the game itself is gonna be easier because game has SSL pinning which make traffic sniffing harder.

                            S Offline
                            S Offline
                            sas909
                            wrote last edited by
                            #74
                            This post is deleted!
                            1 Reply Last reply
                            0
                            • S stetamatea

                              Okay, so some more testing.
                              I set my cache location to secondary drive and proceeded to download quite large in file size worlds and watched SSDs activity.
                              I found that D drive that cache was set to was idle during download and only shows large activity spike after download is complete so files arent being put into the cache folder until they are done downloading meanwhile C the system drive was showing write speed that match my download speed during download and was showing less and less disk space during large world downloads only for that space to come back seconds after download was done.

                              So what I did was change my router settings to severly limit my download speed and then join the largest possible world I found to allow me some time to check where the game is writing temporary file during the download.

                              The game stores temporary _data file in C:\Users\username\AppData\LocalLow\Unity\Temp during the download before moving it to cache folder after download is done.

                              I tried to copy the file to another location just as ingame download hits 100% in hopes to get it before its encrypted but it ended up still being encrypted no matter how many times I tried so either its already encrypted on server or my Core i9 is too fast and gets encryption done before file gets copied or its simply being encrypted in realtime as its written even sa temp file.

                              I just hope decryption key is somewhere in the game and not sent by the server to the client as getting key from the game itself is gonna be easier because game has SSL pinning which make traffic sniffing harder.

                              Thisistest2T Offline
                              Thisistest2T Offline
                              Thisistest2
                              wrote last edited by
                              #75

                              @stetamatea After a avatar finishes downloading a randomized folder name is created along with a 1KB __data file and a __lock file. The actual data size only shows up after the avatar finishes loading in-game, which is signified by the green loading bar, not immediately after the download.

                              Once the avatar is marked as loaded, VRChat attempts to move the folder to the cache folder. However, I’ve prevented VRChat from doing this by denying my user permission to delete folders, subfolders, and files in the Unity temp folder—just in case it tries to do anything during the process.

                              In the end the data file in the temp folder is encrypted, which suggests VRChat is encrypting the data while the avatar is loading. It doesn’t seem to create an unencrypted file in that folder, unless it's stored elsewhere or the encryption is handled server-side as of now.

                              Cache ripping seems to be impossible now without a modified client. But even if encryption is only done on the client side and can be tampered with to prevent it, it’s only a matter of time before VRChat starts encrypting old avatars on the server when they’re requested—then storing the newly encrypted version to avoid re-encrypting it again. They might also start encrypting avatars at the time of upload going forward on the new sdk.

                              Eventually, it seems to me that we’ll need a decryption method no matter what. But other then that I wish you luck finding something out.

                              1 Reply Last reply
                              0
                              • VisaeresV Offline
                                VisaeresV Offline
                                Visaeres
                                Grunt
                                wrote last edited by
                                #76

                                Love how I'm getting thumbed down for making a logical comment here lol

                                LemonL 1 Reply Last reply
                                😊
                                0
                                • VisaeresV Visaeres

                                  Love how I'm getting thumbed down for making a logical comment here lol

                                  LemonL Offline
                                  LemonL Offline
                                  Lemon
                                  Legionnaire
                                  wrote last edited by
                                  #77

                                  @Visaeres ur on a ripping website lol what did ya expect?

                                  Trade list
                                  https://mega.nz/folder/AWFmhBSZ#vr7-1I86rWp5r_kTvL76rA

                                  VisaeresV 1 Reply Last reply
                                  1
                                  • LemonL Lemon

                                    @Visaeres ur on a ripping website lol what did ya expect?

                                    VisaeresV Offline
                                    VisaeresV Offline
                                    Visaeres
                                    Grunt
                                    wrote last edited by
                                    #78

                                    @Lemon No kidding captain obvious smh

                                    1 Reply Last reply
                                    🙄
                                    1
                                    • Thisistest2T Thisistest2 referenced this topic
                                    • L Offline
                                      L Offline
                                      LeonaTaromati
                                      wrote last edited by
                                      #79

                                      If there was a way to directly get the package from the API, what would someone need to format their request as to get another persons avatar? or what would you need to modify in the client?

                                      1 Reply Last reply
                                      0
                                      • Thisistest2T Thisistest2 referenced this topic
                                      • Thisistest2T Thisistest2 referenced this topic
                                      • Thisistest2T Thisistest2 referenced this topic
                                      • Thisistest2T Thisistest2 referenced this topic
                                      • Thisistest2T Thisistest2 referenced this topic
                                      • A Offline
                                        A Offline
                                        Alisan
                                        wrote last edited by
                                        #80

                                        Do y'all reckon it'll still make sense to keep the cache of anything we want and hold on to them until a method is found to decrypt, or would we just have to forget about it and have to download new ones when it does get figured out

                                        Thisistest2T 2 Replies Last reply
                                        0
                                        • A Alisan

                                          Do y'all reckon it'll still make sense to keep the cache of anything we want and hold on to them until a method is found to decrypt, or would we just have to forget about it and have to download new ones when it does get figured out

                                          Thisistest2T Offline
                                          Thisistest2T Offline
                                          Thisistest2
                                          wrote last edited by
                                          #81

                                          @Alisan "Maybe" is all I can really say, since we have no idea what the decryption method is going to look like. It could be as simple as having a master key that works for everything, or it might be session-based, meaning you'd need to get a new one each time. The new method might not even involve decryption at all—it could just mean downloading unencrypted assets directly from VRChat (though the publicly available info on that is pretty hard to understand right now if you're just a regular person browsing). Honestly, it just depends on how much storage you have and whether you think it's worth it.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users