Counter-Strike 2

Counter-Strike 2

461 arvostelua
How to Auto-accept Steam Market Confirmations on the Steam Mobile App
Tekijältä Citrinate
Quickly auto-confirm every market listing confirmation directly in the Steam Mobile App
   
Palkinto
Lisää suosikkeihin
Lisätty suosikkeihin
Poista suosikeista
This guide no longer works
See 2022 update below for more information
Summary
The confirmation screen on the Steam Mobile App is just a webpage. This guide will teach you how to use development tools to intercept and modify that webpage. By injecting a few lines of Javascript into the confirmation screen, we'll be able to effortlessly auto-confirm all of our market listings.

Update
The Steam Mobile App has improved since this guide was originally written, and it's now much easier to approve large amounts of market listings. For nearly all people, following this guide will be more of a hassle and take more time than just using the mobile app as intended.

This guide still exists for those who want to confirm seriously large numbers of market listings, and for whom using something like the Steam Desktop Authenticator is not an option. With this guide, everything stays on your phone, and the additional layer of security provided by the Steam Mobile App is not compromised.


2022 Update
The Steam Mobile App got a major update in 2022, and this guide no longer works as written on Android. This is due to changes in how Android handles the user certificates that, in this guide, allows HTTPS traffic to be altered. I'm not sure of the current state of the iOS app.

If it's at all possible to get things working again in new app, it will be through a process that's even more complicated than what's outlined below. I won't be updating this guide for the new app. For anyone wanting to go on that sort of adventure, here[httptoolkit.com] or here[github.com] might be good starting points.
Requirements
Fiddler[www.telerik.com]

Solution
  1. Download and Install Fiddler. Under "Tools > Fiddler Options > HTTPS" make sure the "Capture HTTPS CONNECTs" and "Decrypt HTTPS traffic" boxes are checked. Restart Fiddler after doing so.

  2. Configure Fiddler to act as a proxy for your phone and install the certificate: Android[docs.telerik.com] / iOS[docs.telerik.com] (These pages also contain information on how to undo all of this once we're done)

    For iOS 10.3 and later, after installing the FiddlerRoot certificate, you'll also need to go on your device to "Settings > General > About > Certificate Trust Settings" and manually enable full trust for the certificate.

  3. Go to "Rules > Customize Rules". Search for:
    static function OnBeforeResponse(oSession: Session) {

    Right after it paste the following, and then save:
    if(oSession.uriContains("/mobileconf/conf")) { oSession.utilSetResponseBody(oSession.GetResponseBodyAsString() + '<script type="text/javascript">$J(function(){var o=$J(".mobileconf_list_entry:not(:has(.playerAvatar))"),i=1500,t=!1,e=o.length,n=0,a=0,l=0,c=ShowBlockingWaitDialog("Auto-confirming Requests","0/"+e+" completed ("+a+" failed)");o.each(function(){var o=$J(this),t=o.data("confid"),f=o.data("key");l+=i,function(o){setTimeout(function(){c.Dismiss(),c=ShowBlockingWaitDialog("Auto-confirming Requests",o+"/"+e+" completed ("+a+" failed)"),SendMobileConfirmationOp("allow",t,f,function(o){RemoveConfirmationFromList(t)},function(o){a++})},l)}(++n)}),setTimeout(function(){c.Dismiss(),ShowAlertDialog("Auto-confirming Completed",n-a+" out of "+n+" items were successfully confirmed ("+a+" failed)","OK"),t&&location.reload()},l+i)});</script>'); }

  4. We're now done. When you open the Steam Mobile App on your phone and go to the confirmation screen, the script will run automatically. If you need to run the script multiple times, just hit the refresh icon.

  5. Once you've finished, refer to Step 2 on how to disable the proxy settings on your phone.

Uncompressed Code
If you'd like to tweak what the script does, you can make changes to the code below, compress it[jscompress.com], and then replace the underlined code in the steps above with your new compressed code.

You can auto-accept trade requests as well as market listings by replacing the line:
var items = $J(".mobileconf_list_entry:not(:has(.playerAvatar))");
with:
var items = $J(".mobileconf_list_entry");

$J(function() { var items = $J(".mobileconf_list_entry:not(:has(.playerAvatar))"); var delay_interval = 1500; // how long to wait between confirmations; 1000 = 1 second var auto_refresh = false; // set to true to auto-refresh after completion var num_items = items.length; var num = 0; var num_failed = 0; var delay = 0; var modal = ShowBlockingWaitDialog( "Auto-confirming Requests", "0/" + num_items + " completed (" + num_failed + " failed)" ); items.each(function() { var $this = $J(this); var confirmationID = $this.data("confid"); var confirmationKey = $this.data("key"); delay += delay_interval; (function(current_num) { setTimeout(function() { modal.Dismiss(); modal = ShowBlockingWaitDialog( "Auto-confirming Requests", current_num + "/" + num_items + " completed (" + num_failed + " failed)" ); SendMobileConfirmationOp("allow", confirmationID, confirmationKey, function(data) { RemoveConfirmationFromList(confirmationID); }, function(data) { num_failed++; } ); }, delay); })(++num); }); setTimeout(function() { modal.Dismiss(); ShowAlertDialog( "Auto-confirming Completed", (num - num_failed) + " out of " + num + " items were successfully confirmed (" + num_failed + " failed)", "OK" ); if(auto_refresh) { location.reload(); } }, delay + delay_interval); });

88 kommenttia
lightwo 8.2.2023 klo 11.57 
I mean, if the new app doesn't work, just downgrade it... :p

Still, this guide is mostly useful to study the system to make a new implementation out of, anyway.
Sanfordh 3.2.2023 klo 8.31 
Still works?
necasarY 5.6.2022 klo 10.33 
Hey, I used Fiddler classic and set it up as instructed but fiddler returns an error message whenever i load the confirmation page on my phone and afterwards the confirmation page is loaded as it would be without fiddler. How can i fix this error? https://imgur.com/2KFI4Tt https://imgur.com/Hxv5AUC
Bird up 5.6.2022 klo 9.45 
I set up Fiddler classic and was able to capture traffic on Android and navigate Chrome. But Steam and other apps won't work (confirmation screen is black). It seems to be related to some security layer that block user certificates. Is there any what to circumvent it? https://imgur.com/a/KujBDPJ
EtchJetty 27.4.2022 klo 15.22 
To clarify from my last comment, the formatted code is this, including quotation marks:
'<script type="text/javascript">$J(function(){var o=$J(".mobileconf_list_entry:not(:has(.playerAvatar))"),i=1500,t=!1,e=o.length,n=0,a=0,l=0,c=ShowBlockingWaitDialog("Auto-confirming Requests","0/"+e+" completed ("+a+" failed)");o.each(function(){var o=$J(this),t=o.data("confid"),f=o.data("key");l+=i,function(o){setTimeout(function(){c.Dismiss(),c=ShowBlockingWaitDialog("Auto-confirming Requests",o+"/"+e+" completed ("+a+" failed)"),SendMobileConfirmationOp("allow",t,f,function(o){RemoveConfirmationFromList(t)},function(o){a++})},l)}(++n)}),setTimeout(function(){c.Dismiss(),ShowAlertDialog("Auto-confirming Completed",n-a+" out of "+n+" items were successfully confirmed ("+a+" failed)","OK"),t&&location.reload()},l+i)});</script>'
EtchJetty 27.4.2022 klo 15.14 
Works perfect! To do this in Fiddler Everywhere (the new version of Fiddler) you can't use Fiddlerscript anymore, so you need to use the terrible tools they have to manually set a rule.
[code]if(oSession.uriContains("/mobileconf/conf")) {[/code]
means that you need to set the condition
"Url" "Contains" "/mobileconf/conf"
and then set the action to
"Update Response Body"
"Regular Expression" "$" and then for the last bit, copy/paste the formatted code.
downloador 3 19.2.2022 klo 15.33 
Hi, this is no longer working, the code doesn't seem to run and my confirmation page is just black.
i put up listings like every other day and when i do, its at least 200 items. i HATE having to scroll and tap on each box to confirm it. is this guide the best option for me? all i want is an easier way to list over 200 items.
Moisturizing Sloppy Style 6.8.2021 klo 16.25 
Hi there, So I followed your steps and appear to be getting body `0` when I refresh my confirmations, Fiddler is returning no response body, any idea what this may be?
0zinc 7.7.2021 klo 20.41 
The compressed version of the tweaked script had the "+1500" as it's end. I didn't delete it, it was the compressor. Anyways, it's fixed now. I replaced the "(".mobileconf_list_entry:not(:has(.playerAvatar))")" with "(".mobileconf_list_entry")" in the compressed version (not uncompressed). https://pastebin.com/zCTkkhKx