Skip to content

Instantly share code, notes, and snippets.

@joaoescribano
Last active October 3, 2019 13:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joaoescribano/c356c346b60d3a1144513f65f2732249 to your computer and use it in GitHub Desktop.
Save joaoescribano/c356c346b60d3a1144513f65f2732249 to your computer and use it in GitHub Desktop.
Atlas Quantum - How they created the fake balance on video

Here is how I've been able to replicate the same "behavior" showed at Atlas "prove" video.

Take a closer look when the balance page starts to show, and "error" appears at the page top, this specific error ONLY triggers when the website could not establish a connection to the HitBTC socket (as anyone can see at the code) So to test it, I've developed this in 30 minutes:

Step 1) Edit computer network hosts and add: 127.0.1.1       st.hitbtc.com

This will prevent the website to find the socket to account info, so the error will appear at the top of the balance page, as we can see here:

Socket error at the page

Step 2) Install any JS injection like "tampermonkey" and add the script to run at the balance pages:

// Removes the error message (https://imgur.com/ykCViVM)
$("div[class*=styles__alert]").remove()

// Set all balances to zero (as we can see at the video) (https://imgur.com/ggRzH6G)
$("div[class*=main-balance]").html("0");
$("div[class*=styles__cell__cash]:not(:first)").html("0");

// Update BTC and USDT balance (https://imgur.com/ggRzH6G)
$("div[class*=styles__cell__cash]:not(:first)").eq(0).html("1,862.39021193");
$("div[class*=styles__cell__cash]:not(:first)").eq(2).html("5,418,742.84");

So this shows how easily people can be fooled by these scams:

@joaoescribano
Copy link
Author

To test propose, you can open the "developer tools" (F12) and paste the JS code into "console" tab to simulate the balance updates (don't need to block the connection, I've done this just to replicate the exact video)

@joaoescribano
Copy link
Author

And here is a video of the execution: https://streamable.com/nrd3d

@brunoaduarte
Copy link

brunoaduarte commented Oct 3, 2019

And here is a video of the execution: https://streamable.com/nrd3d

Hi @joaoescribano, what about the balances shown on top right screen? Even if they used JS injection shouldn't the balances get aligned properly like here?

image

image

As you can see there's a "margin-left: 50px" on the "Deposit" element that would ensure that

image

What do you think happened here?

@joaoescribano
Copy link
Author

I didn't do anything at the top page, just changed the balances at the table... as you can see in my video/prints

To be true, to change all this is easy too... just need more time working at the JS to propertly add the correct info, paddings, margins, do the right alignment (and keep the model HitBTC showed at twitter).

As HitBTC noticed better than me, is that there are many errors at the page... the number precision is wrong, number formatting is also wrong... and all this can be "solved" with a better JS (which i'll not do, my part of all this is already done)

@joaoescribano
Copy link
Author

I think no one is better than HitBTC to say how it's layout is made... it's pretty common to developers create methods to "align" elements after adding it to the page. It's like "fingerprints"... that's why Atlas got caught

@joaoescribano
Copy link
Author

joaoescribano commented Oct 3, 2019

Ok... i've gotta to test and no.. they seems to faked it using some video editor... i don't know... cuz changing the top balances seems to keep the numbers aligned as well HitBTC said...

$("div[class*=styles__balanceVal] span").eq(0).html("123456789.123456789");
$("div[class*=styles__balanceVal] span").eq(1).html("0.123456789");

image

@brunoaduarte
Copy link

brunoaduarte commented Oct 3, 2019

Ok... i've gotta to test and no.. they seems to faked it using some video editor... i don't know... cuz changing the top balances seems to keep the numbers aligned as well HitBTC said...

$("div[class*=styles__balanceVal] span").eq(0).html("123456789.123456789");
$("div[class*=styles__balanceVal] span").eq(1).html("0.123456789");

image

Exactly, that's my point... it seems it was more a gross video frame-by-frame edition than a JS injection.... cause the injection would still keep the fields aligned. Thanks.

@joaoescribano
Copy link
Author

Exactly.... now that i saw it.... it's pretty clear 😆

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment