Mass youtube account generator

This is my first post - how would you rate it?

  • Not clear enough

  • Too much information

  • Seems good c:


Results are only viewable after voting.
This post is just what I would do. I haven't tried creating Google accounts, so it's just speculation. Take it with a grain of salt.

1) The first and last name were randomly generated in a pattern of XXXWWXXX where X resembles 1-3 random characters and W resembles 1-2 real words from a dictionary. Google may detect the pattern
I think common names would be more likely to pass. If you have Scrapebox, use the name generator to get a list, and randomly select from it. If not, scrape a few from here:
https://www.behindthename.com/random/

2) The password was between 32 and 64 characters and was completely random using all a-zA-Z0-9 and all of the symbols on my keyboard. Google may believe this is too difficult for a human to realistically use.
If you're concerned about this, make the password a concatenation of 2-4 dictionary words. If they require a number, throw in random 1-2 digits at the end.

3) Some strange inconsistencies between web browsers meant the page code was slightly different and sometimes I was not able to inject a gender or birth day. Sometimes a terms and conditions checkbox appeared, and sometimes there was an issue with the page where it complained the phone prefix (put there by the page, I hadn't changed it) did not match the country (again, placed there by the page). My bot's fallback made it refresh the page and try again, but it's inefficient as it happens unfortunately often.
This is probably related to JS. Most devs are lazy fucks (myself included) who use jQuery or some other library to make JS easy to work with across browsers. Google builds all their own shit.

The easiest way to solve this problem is to figure out which browser is easiest to automate. Then when narrow down your list of random user agents to only include that browser (but different versions of it). Try to test the entire list if possible.


4) I did not set my timezone to that of the country in which the proxy server resides.
Check your HTTP headers to see if your time is being sent. You can just spoof that and don't bother with timezone.

5) I was injecting the values directly into the page as opposed to sending clicks and keypresses.
I don't know if this matters. I would open the registration page in a regular browser, then watch http traffic as I type. Is there a request sent with every keystroke? (or another event, such as losing focus to a control). If so, then this is worth looking into.

6) My bot worked quickly. Perhaps google thought the form was being filled out too quickly.
I have seen this exact same countermeasure elsewhere. Definitely throw in a realistic delay between requesting the registration page and submitting it.

7) All of the numbers I was using for verification were from the company I worked for, which means google may see too many verification requests for the same telecoms provider. I doubt this is the case.
I know Google discriminates against an entire IP block if one or more IPs in that block are fucking around. I'd maintain my tests to as few phone numbers as possible until it's working 100%.

8) I did not vary my screen size for each account created. I definitely think this had something to do with it, especially as the web browser itself was a strange size. I should make it fullscreen or change to a random, realistic size each time.
Worth a try since it's fairly easy in .NET. But there are a lot of other footprints too; the fonts you have installed, plugins in the browser, flash/silverlight/unity extensions. This is why I suggest staying away from WebBrowser controls.

In addition to that header work I've done some more involving user agents and proxies. Here's my code so far if you're interested. Before request() is called, the WebBrowser quickly expands to fullscreen to trick the webpage into believing it's a normal browser size c:
Clever, but not clever enough;
  • There is no "normal browser size" - users have different size monitors and different resolutions set. Always maximizing will leave a footprint
  • Your webbrowser control is inside your application. Your software software may take up the full screen, but the browser control itself has smaller width/height than the rest of your screen. This might screw you over since all your requests will be from the exact same size browser, and a rare one (regular users don't browse Google in a webbrowser control in a custom C# program)
  • Instead, set the webbrowser control to a random size, selected from a list of common sizes.
Regarding your code; I havn't done C# for a few years but I can understand what's posted fairly well.
  1. Consider adding more user agents
  2. Consider using a local text file for proxies, at least while testing
  3. Test the proxy is not leaking your IP every time before using it on Google
  4. Syncronize "Accept-Language" to match up with the proxy's country. the hardcoded "en-GB" is UK specific.
  5. Pay attention to "Accept" header. Different requests will have different Accept - for example an AJAX request that expects JSON response will have a JSON accept header.
  6. Catching an exception may put it in an infinite loop. Consider adding a counter, and exit if it fails 3 times or something.

Edit; clarification
 
I see that you are still using VB built in tools.
Have you thought about using headless browsers as I wrote in my previous message?

Also I see that you are using public proxies. Getting a captcha with these are not a surprise, just think about how much those IPs could be abused by others.
 
Last edited:
I see that you are still using VB built in tools.
Have you thought about using headless browsers as I wrote in my previous message?

Also I see that you are using public proxies. Getting a captcha with these are not a surprise, just think about how much those IPs could be abused by others.

I heard headless browsers can be detected in a variety of ways including headers and the order they’re sent in.

I’ve never faced a captcha when creating google accounts so I have no concern about that.
 
Ok so I've made some developments on the project including having written a few string generator classes to load data into a class to hold all of the account details. I created another class which generates a random typing speed, and types the data out at random speed brackets determined by the general typing speed. The typer is able to make mistakes, has a slight delay to make it seem the user is taking a split second to realise their mistake, then it types the correct letter. The faster the typing speed, the higher the chances of making a mistake. I know this is overkill, but it makes absolutely certain it's impossible to detect.

I'm now using real names from a long list I downloaded. Real words for usernames and passwords are taken from an API. Random birth year is between 1920 and 2005, and the random birth day is between 1 and 28 to ensure it's valid regardless which month is chosen.

Up to now I'm still not sure which path to take in terms of web browser. I'm leaning more towards using the real Chrome, Firefox and IE browsers, although this makes automation tricky and slower. I would have to make sure each bot keeps the cookies from its previous session when it visits google or youtube in the future. That way, google knows I'm using a legit browser, the headers will be valid, cookies will provide a trace back and google will see I haven't just immediately gone to the account creation page, which would be suspicious.

Any more tips would be appreciated as I'm nearing the juicy part of the project and want to make sure I'm not wasting my development time fighting a losing battle.
 
Ok so I've made some developments on the project including having written a few string generator classes to load data into a class to hold all of the account details. I created another class which generates a random typing speed, and types the data out at random speed brackets determined by the general typing speed. The typer is able to make mistakes, has a slight delay to make it seem the user is taking a split second to realise their mistake, then it types the correct letter. The faster the typing speed, the higher the chances of making a mistake. I know this is overkill, but it makes absolutely certain it's impossible to detect.

I'm now using real names from a long list I downloaded. Real words for usernames and passwords are taken from an API. Random birth year is between 1920 and 2005, and the random birth day is between 1 and 28 to ensure it's valid regardless which month is chosen.

Up to now I'm still not sure which path to take in terms of web browser. I'm leaning more towards using the real Chrome, Firefox and IE browsers, although this makes automation tricky and slower. I would have to make sure each bot keeps the cookies from its previous session when it visits google or youtube in the future. That way, google knows I'm using a legit browser, the headers will be valid, cookies will provide a trace back and google will see I haven't just immediately gone to the account creation page, which would be suspicious.

Any more tips would be appreciated as I'm nearing the juicy part of the project and want to make sure I'm not wasting my development time fighting a losing battle.

I had to switch to a real browser in the past when google wasn't allowing youtube uploads anymore if they could not detect javascript.
You can try using GeckoFx, without a browser there are just too many ways to detect a bot if you really want to, also this is what MassVideoBlaster uses for automating youtube, they have a sales page on bhw.
 
I had to switch to a real browser in the past when google wasn't allowing youtube uploads anymore if they could not detect javascript.
You can try using GeckoFx, without a browser there are just too many ways to detect a bot if you really want to, also this is what MassVideoBlaster uses for automating youtube, they have a sales page on bhw.

Javascript works in webbrowser controls already. What benefit does GeckoFx have over what I have already?
 
Last edited:
Javascript works in webbrowser controls already. What benefit does GeckoFx have over what I have already?

You can use multiple instances of the geckofx browser with different settings and you have a nice clean api
 
You can use multiple instances of the geckofx browser with different settings and you have a nice clean api

Had a nightmare trying to get GeckoFx working with Visual Studio, waste of time. I'm probably going to end up using the default WebBrowser control with header manipulation. Having difficulty getting Accept-Language and Accept-Encoding to override, but I'll figure it out
 
A wise man's heart is at his right hand, but a fool's heart at his left.

@UltraMysterious , in all respects, you are biting more than you can truly understand. Your lack of judgement , or more precisely your abysmal conclusion, is getting into the way of taking the road less traveled.

You being guided by the blind, and taking their suggestion to heart since it takes a fool to know another fool.

In simpler terms, you are following the paths of that many fools have attempted to take before you, but in retrospect, you are heading straight into a wall.

If it isn't obvious to you as it is to many, with whom I have cracked a chuckle with from your unfounded, anecdotal claims such as fake-user agent, screen size, random generated passwords amongst many others, you are going around in circles like a dog chasing his own tail.

My concerns are :
  • You don't even how a simple tcp/handshake works, which I'm not referring to the way the SYN-SYN-ACK actually works but the concept of how they work.
  • You seriously believed that changing an HyperText Transfer Protocol header was going to change your IP.
  • You have 0 idea of how basic concept of encryption works.
  • This means, you can't even fully grasp that to encrypt and/or decrypt a text you need a key.
  • You can't send encrypted text over-the-wire(to google servers) without using a key on your own computer.
  • You possess absolutely not a single ounce of the right direction to achieve this because your ego is getting on the way.
  • In other words, you suffer from a heavily case of Dunning Krugger effect.
  • You claim to have "strong development background", which I fail to understand what kind of development background are you referring too.
  • Is it your ego building background? Because your skills clearly do not match a strong engineering background.
  • Your "rare advantages" will not get you far if you can't even get through the first step.
  • You can't even use Google Chrome Developer Tools, as in you don't even know how to read a POST request body.
  • It is not obfuscated, it is encoded which is a huge difference. Obfuscated is the Javascript code that Google uses to run their site.
  • Your have no idea about what is absolutely certain or not and yet you claim it here: "The faster the typing speed, the higher the chances of making a mistake. I know this is overkill, but it makes absolutely certain it's impossible to detect. I know this is overkill, but it makes absolutely certain it's impossible to detect"

    With that being said, if it isn't quite clear to you yet, you CANNOT automate google account creation with the browser and claim you have made progress. That is what fools like you and many have attempted at doing and will only bring more speculation and superstition facts.


 
Last edited:
A wise man's heart is at his right hand, but a fool's heart at his left.

@UltraMysterious , in all respects, you are biting more than you can truly understand. Your lack of judgement , or more precisely your abysmal conclusion, is getting into the way of taking the road less traveled.

You being guided by the blind, and taking their suggestion to heart since it takes a fool to know another fool.

In simpler terms, you are following the paths of that many fools have attempted to take before you, but in retrospect, you are heading straight into a wall.

If it isn't obvious to you as it is to many, with whom I have cracked a chuckle with from your unfounded, anecdotal claims such as fake-user agent, screen size, random generated passwords amongst many others, you are going around in circles like a dog chasing his own tail.

My concerns are :
  • You don't even how a simple tcp/handshake works, which I'm not referring to the way the SYN-SYN-ACK actually works but the concept of how they work.
  • You seriously believed that changing an HyperText Transfer Protocol header was going to change your IP.
  • You have 0 idea of how basic concept of encryption works.
  • This means, you can't even fully grasp that to encrypt and/or decrypt a text you need a key.
  • You can't send encrypted text over-the-wire(to google servers) without using a key on your own computer.
  • You possess absolutely not a single ounce of the right direction to achieve this because your ego is getting on the way.
  • In other words, you suffer from a heavily case of Dunning Krugger effect.
  • You claim to have "strong development background", which I fail to understand what kind of development background are you referring too.
  • Is it your ego building background? Because your skills clearly do not match a strong engineering background.
  • Your "rare advantages" will not get you far if you can't even get through the first step.
  • You can't even use Google Chrome Developer Tools, as in you don't even know how to read a POST request body.
  • It is not obfuscated, it is encoded which is a huge difference. Obfuscated is the Javascript code that Google uses to run their site.
  • Your have no idea about what is absolutely certain or not and yet you claim it here: "The faster the typing speed, the higher the chances of making a mistake. I know this is overkill, but it makes absolutely certain it's impossible to detect. I know this is overkill, but it makes absolutely certain it's impossible to detect"

    With that being said, if it isn't quite clear to you yet, you CANNOT automate google account creation with the browser and claim you have made progress. That is what fools like you and many have attempted at doing and will only bring more speculation and superstition facts.
Don’t be so patronising and insulting. As you thought your time would be well-spent dragging a few sentences out into a long list of bullet points, I'll painfully answer every single one.

• I didn't fully understand how TCP handshaking worked until I realised the need to. Now I know.
• I don't know the limitations of HTTP, so I was asking if it's possible. Otherwise, there's no way to know. That's called collective learning.
• I fully understand how cryptography works as I have created several algorithms before including one-way and two-way.
• You don't need a key if it's one-way encryption.
• Yes you can.
• Personal insults are at the bottom of my list of concerns. My 'ego' has nothing to do with anything, as you're the cockiest commenter so far.
• More personal insult attempts, grow up
• I wouldn't have any income if I had no skill at programming. If you fail to understand something, educate yourself instead of remaining ignorant to it.
• Poorly-structured sentence; re-iterative of previous point.
• A rare advantage is the biggest step already dealt with.
• I use Google Chrome developer tools all day, every day.
• Chrome said the data could not be shown. That's not what I call 'encoding'.
• I have been discovering what's certain and what isn't. I discovered that that thing was certain.

You seem poetic. And probably autistic, hence the whining and name-calling. I have made progress, and it seems you're jealous. Had a bad day? Your pathetic lack of self-control is not welcome here.

To try to get it through your thick skull maybe one more time, forums work like this:

1) Don't insult others
2) Help people, ask for clarification or say nothing at all.
3) Treat others as you'd like to be treated.
 
@YesAndNo your first post and it was to try to roast someone like that. I call bullshit and that your on a dummy account.

Agreed @HallLiz, seems like he's had a bad day and wasn't able to cope so he comes onto this forum and pretends he's greater than everybody else.

I don't claim to be better than everyone else, I claim to have sufficient knowledge to be taken seriously and not insultingly disregarded as he seems to like to do.
 
@HallLiz I'm not sure what a dummy account is.

@UltraMysterious, I actually had no idea that you have implemented 2 cryptographic algorithms. Excuse me for talking down on you. Then without further ado let's get down to part number 2: "Help people, ask for clarification or say nothing at all"


As previously mentioned by @ZennoScripts and @Brian Alexander google employs a pretty distinctive anti-bot mechanism called the Botguard. Under the hood it looks like a scary beast, but after you start digging right into it and playing with the obfuscated code , you end up getting a huge rush and start appreciating the thought and effort that went into creating this.

At the heart of this 374 lines exist the famously used Xtea encryption which is what your BG value is, just an encrypted Xtea value with the KEY included. Yes, the BG value has the key included inside the text.

Pardon me for my ugly POC Xtea decryption and encryption method I coded a while ago, even though I copied most of it. It is done to look exactly like the encryption found inside the botguard code, in other words, it returns the encoded byte array. So the 8 bytes will be returned in an array of 1 byte each.



Code:
import ctypes

def teaEnc(word1, word2, key):
    acc = 0
    mask = 0xFFFFFFFF
    delta = 2489668359
    for i in xrange(32):
        word1 += ctypes.c_int( ((word2 << 4) ^ (word2 & mask) >> 5) + word2 ^ (acc + key[acc & 3]) ).value
        acc += delta
        word2 += ctypes.c_int( ((word1 << 4) ^ (word1 & mask) >> 5) + word1 ^ (acc + key[ ((acc & mask) >> 11) & 3]) ).value

    print (word1, word2)

    return [word1 >> 24 & 255, word1 >> 16 & 255, word1 >> 8 & 255, word1 & 255,
            word2 >> 24 & 255, word2 >> 16 & 255, word2 >> 8 & 255, word2 & 255]


def teaDec(word1, word2, key):

    acc = 0 
    mask = 0xFFFFFFFF
    delta = (2489668359 * 32) & mask 
    for i in xrange(32):

        word2 -= ctypes.c_int( ((word1 << 4) ^ (word1 & mask) >> 5) + word1 ^ (acc + key[ ((acc & mask) >> 11) & 3]) ).value
        acc -= delta
        word1 -= ctypes.c_int( ((word2 << 4) ^ (word2 & mask) >> 5) + word2 ^ (acc + key[acc & 3]) ).value

        print (word1, word2)

        return [word1 >> 24 & 255, word1 >> 16 & 255, word1 >> 8 & 255, word1 & 255,
            word2 >> 24 & 255, word2 >> 16 & 255, word2 >> 8 & 255, word2 & 255]

    def preTea(text, index):
        return ctypes.c_int(ord(text[index]) << 24 | ord(text[index+1]) << 16 | ord(text[index+2]) << 8 | ord(text[index+3])).value

Now, it should be known that obviously google never included the botguard tea decryption on the code. There is no need to since they have that function on their backend, but you need the decryption function in order to decode the actual BG text.

Now, the preTea is basically a similar function that is used to break the text of 8 bytes into the first or last 4 bytes depending on the index. This means that, preTea('12345678', 4) will get the last 4 bytes of '12345678' which will be 5678, and preTea('12345678',0) will get the first 4 bytes so '1234'. From those 2 values is what we pass to the function word1, and word2, and the key by default at the beginning(but changes over time) is [0,0,0,0].

It is important to notice this is the encryption for only 8 bytes at the time, so this will be used in a stream of bytes by blocks of 8 bytes.

Remember, google also uses 1 way hashes like seen on the pubads_impls_168.js or show_ads_impl.js that cannot be decoded. For example, inside the show_ads_impl.js on the function that looks like this:

Code:
    var Ah = function(a) {
            if (a = /[-\w]+\.[-\w]+$/.exec(a)) {
                a = a[0].toLowerCase();
                for (var b = 0, c = 0; c < a.length; ++c) b = 31 * b + a.charCodeAt(c) >>> 0;
                switch (b) {
                    case 1967261364:
                        return 0;
                    case 3147493546:
                        return 1;
                    case 1567346461:
                        return 2;
                    case 2183041838:
                        return 3;
                    case 763236279:
                        return 4;
                    case 1342279801:
                        return 5;
                    case 526831769:
                        return 6;
                    case 352806002:
                        return 7;
                    case 2755048925:
                        return 8;
                    case 3306848407:
                        return 9;
                    case 2207000920:
                        return 10;
                    case 484037040:
                        return 11;
                    case 3506871055:
                        return 12;
                    case 672143848:
                        return 13;
                    case 2528751226:
                        return 14;
                    case 2744854768:
                        return 15;
                    case 3703278665:
                        return 16;
                    case 2014749173:
                        return 17;
                    case 133063824:
                        return 18;
                    case 2749334602:
                        return 19;
                    case 3131239845:
                        return 20;
                    case 2074086763:
                        return 21;
                    case 795772493:
                        return 22;
                    case 290857819:
                        return 23;
                    case 3035947606:
                        return 24;
                    case 2983138003:
                        return 25;
                    case 2197138676:
                        return 26;
                    case 4216016165:
                        return 27;
                    case 239803524:
                        return 28;
                    case 975993579:
                        return 29;
                    case 1794940339:
                        return 30;
                    case 1314429186:
                        return 31;
                    case 1643618937:
                        return 32;
                    case 497159982:
                        return 33
                }
            }
            return -1
        }

Those switch cases represent a domain name, you can't decode them as they are one way encryption(one way hash). I have decoded a few , like case 2983138003 == 'yahoo.com' case 2183041838 == 'baidu.com',. They used this function to check the history found inside window.location.ancestorOrigins. If any of those are found it will return the return number which equals a bit set in a 34 set bit field.

Back to the botguard thingy, after doing the xtea decryption the next thing I've been doing is working on a AST dissambler. I notice early on that the javascript files are always obfuscated with the var names changed randomly as well as the positional arguments. However, the function signature is always the same and they reuse their code a lot of the times on different javascript files used on different google services. Anyways, I'm documenting most of it but have very messy code and note, but this is needed to take notes because once you start seeing how some parts work isolated then things start to make sense and you get a BIG BIG MENTAL BONER.
 
I don't understand the point of you telling me that, and I have no clue what a botguard value is nor where to find it. I am so confused.

All I've gathered is the following:

1) Cryptography is happening
2) Part of it is one-way

Care to provide any context?
 
@HallLiz I'm not sure what a dummy account is.

@UltraMysterious, I actually had no idea that you have implemented 2 cryptographic algorithms. Excuse me for talking down on you. Then without further ado let's get down to part number 2: "Help people, ask for clarification or say nothing at all"


As previously mentioned by @ZennoScripts and @Brian Alexander google employs a pretty distinctive anti-bot mechanism called the Botguard. Under the hood it looks like a scary beast, but after you start digging right into it and playing with the obfuscated code , you end up getting a huge rush and start appreciating the thought and effort that went into creating this.

At the heart of this 374 lines exist the famously used Xtea encryption which is what your BG value is, just an encrypted Xtea value with the KEY included. Yes, the BG value has the key included inside the text.

Pardon me for my ugly POC Xtea decryption and encryption method I coded a while ago, even though I copied most of it. It is done to look exactly like the encryption found inside the botguard code, in other words, it returns the encoded byte array. So the 8 bytes will be returned in an array of 1 byte each.



Code:
import ctypes

def teaEnc(word1, word2, key):
    acc = 0
    mask = 0xFFFFFFFF
    delta = 2489668359
    for i in xrange(32):
        word1 += ctypes.c_int( ((word2 << 4) ^ (word2 & mask) >> 5) + word2 ^ (acc + key[acc & 3]) ).value
        acc += delta
        word2 += ctypes.c_int( ((word1 << 4) ^ (word1 & mask) >> 5) + word1 ^ (acc + key[ ((acc & mask) >> 11) & 3]) ).value

    print (word1, word2)

    return [word1 >> 24 & 255, word1 >> 16 & 255, word1 >> 8 & 255, word1 & 255,
            word2 >> 24 & 255, word2 >> 16 & 255, word2 >> 8 & 255, word2 & 255]


def teaDec(word1, word2, key):

    acc = 0
    mask = 0xFFFFFFFF
    delta = (2489668359 * 32) & mask
    for i in xrange(32):

        word2 -= ctypes.c_int( ((word1 << 4) ^ (word1 & mask) >> 5) + word1 ^ (acc + key[ ((acc & mask) >> 11) & 3]) ).value
        acc -= delta
        word1 -= ctypes.c_int( ((word2 << 4) ^ (word2 & mask) >> 5) + word2 ^ (acc + key[acc & 3]) ).value

        print (word1, word2)

        return [word1 >> 24 & 255, word1 >> 16 & 255, word1 >> 8 & 255, word1 & 255,
            word2 >> 24 & 255, word2 >> 16 & 255, word2 >> 8 & 255, word2 & 255]

    def preTea(text, index):
        return ctypes.c_int(ord(text[index]) << 24 | ord(text[index+1]) << 16 | ord(text[index+2]) << 8 | ord(text[index+3])).value

Now, it should be known that obviously google never included the botguard tea decryption on the code. There is no need to since they have that function on their backend, but you need the decryption function in order to decode the actual BG text.

Now, the preTea is basically a similar function that is used to break the text of 8 bytes into the first or last 4 bytes depending on the index. This means that, preTea('12345678', 4) will get the last 4 bytes of '12345678' which will be 5678, and preTea('12345678',0) will get the first 4 bytes so '1234'. From those 2 values is what we pass to the function word1, and word2, and the key by default at the beginning(but changes over time) is [0,0,0,0].

It is important to notice this is the encryption for only 8 bytes at the time, so this will be used in a stream of bytes by blocks of 8 bytes.

Remember, google also uses 1 way hashes like seen on the pubads_impls_168.js or show_ads_impl.js that cannot be decoded. For example, inside the show_ads_impl.js on the function that looks like this:

Code:
    var Ah = function(a) {
            if (a = /[-\w]+\.[-\w]+$/.exec(a)) {
                a = a[0].toLowerCase();
                for (var b = 0, c = 0; c < a.length; ++c) b = 31 * b + a.charCodeAt(c) >>> 0;
                switch (b) {
                    case 1967261364:
                        return 0;
                    case 3147493546:
                        return 1;
                    case 1567346461:
                        return 2;
                    case 2183041838:
                        return 3;
                    case 763236279:
                        return 4;
                    case 1342279801:
                        return 5;
                    case 526831769:
                        return 6;
                    case 352806002:
                        return 7;
                    case 2755048925:
                        return 8;
                    case 3306848407:
                        return 9;
                    case 2207000920:
                        return 10;
                    case 484037040:
                        return 11;
                    case 3506871055:
                        return 12;
                    case 672143848:
                        return 13;
                    case 2528751226:
                        return 14;
                    case 2744854768:
                        return 15;
                    case 3703278665:
                        return 16;
                    case 2014749173:
                        return 17;
                    case 133063824:
                        return 18;
                    case 2749334602:
                        return 19;
                    case 3131239845:
                        return 20;
                    case 2074086763:
                        return 21;
                    case 795772493:
                        return 22;
                    case 290857819:
                        return 23;
                    case 3035947606:
                        return 24;
                    case 2983138003:
                        return 25;
                    case 2197138676:
                        return 26;
                    case 4216016165:
                        return 27;
                    case 239803524:
                        return 28;
                    case 975993579:
                        return 29;
                    case 1794940339:
                        return 30;
                    case 1314429186:
                        return 31;
                    case 1643618937:
                        return 32;
                    case 497159982:
                        return 33
                }
            }
            return -1
        }

Those switch cases represent a domain name, you can't decode them as they are one way encryption(one way hash). I have decoded a few , like case 2983138003 == 'yahoo.com' case 2183041838 == 'baidu.com',. They used this function to check the history found inside window.location.ancestorOrigins. If any of those are found it will return the return number which equals a bit set in a 34 set bit field.

Back to the botguard thingy, after doing the xtea decryption the next thing I've been doing is working on a AST dissambler. I notice early on that the javascript files are always obfuscated with the var names changed randomly as well as the positional arguments. However, the function signature is always the same and they reuse their code a lot of the times on different javascript files used on different google services. Anyways, I'm documenting most of it but have very messy code and note, but this is needed to take notes because once you start seeing how some parts work isolated then things start to make sense and you get a BIG BIG MENTAL BONER.

He does not, nor will he ever understand a single thing you just handed him.

You gave me a mental boner just reading that. I wish I had given more time to programming at any higher level then a basic understanding. It's on my to do list once I get a nice stockpile of cash saved up.

My question is to you, how likely do you think someone has already cracked + reversed BG.response 100% and do you think it's automate-able for mass account creation easily?

I don't want to get someone to crack this for me one day and find out it's near impossible to automate due to some random code that needs cracked/updated once a day. I had this problem with POF.

You remind me of a couple people I used to know quite well.
 
I don't understand the point of you telling me that, and I have no clue what a botguard value is nor where to find it. I am so confused.

All I've gathered is the following:

1) Cryptography is happening
2) Part of it is one-way

Care to provide any context?

if you really fail to see the point, then read his post again until you get it.
 
Just see the source code ..... there is botguard saying hello...

Not matter what you do, those script send info to Google and based on that modules are loaded and you either get pv or no pv.

Just play with fiddler and get some hold of it. The request are pretty much encrypted or something like that so it's pretty much difficult to read .

I can provide you alternative way hope it will make botting easier but it requires pv Everytime but numbers from smspva can be used.
 
Just see the source code ..... there is botguard saying hello...

Not matter what you do, those script send info to Google and based on that modules are loaded and you either get pv or no pv.

Just play with fiddler and get some hold of it. The request are pretty much encrypted or something like that so it's pretty much difficult to read .

I can provide you alternative way hope it will make botting easier but it requires pv Everytime but numbers from smspva can be used.

I still don’t understand this whole thing about no phone verification. Every single time I’ve gone to create a google account, manually or with my bot, I’ve needed to do phone verification.

And reading through his post won’t clarify anything until I know what its relevance is.
 
Just to make clear you need Fresh ip residential and you can create 10 account a day . Botting Google isn't easy......
 
I still don’t understand this whole thing about no phone verification. Every single time I’ve gone to create a google account, manually or with my bot, I’ve needed to do phone verification.

And reading through his post won’t clarify anything until I know what its relevance is.

So as you are guessing that google will know the screen size, mouse movements, key strokes speed by measuring the difference between keypress down and keypress up, you will need to randomize this and change them.

Also, make sure you change user-agent , browser plugins such as flash, adobe etc. Remember like you have heard, google can also see your macaddress so make sure to change that for each account.

@CrackFantasy also posted a link on things that Google can look for.


Keep in mind google can access your battery charge level as well so make sure to have different battery charging levels on for every account. Plus, google will also be able to access your webcam and take pictures so make sure you cover that so the pixel value of each picture is the same, else they will see the same person behind creating a lot of these accounts.

On top of that, make sure to also change your serial number for your mouse and keyboard as google has also figured a way to check on that. I've heard from people here that they can also check that.

Remember, don't forget to change the number of connected devices on your network as google can also scan your whole network and see what ips are connected to your network. They can make a hash and determined that the probability of all of these accounts having the same number of connected devices with the same ip on the network is probably a bot.

Last but not least, make sure you disable your gyroscope as google will most likely check for that, and your GPS on your phone if you are automating it.

So make sure you can fake all of those values and insert your own. Good luck my friend!
 
Back
Top