ILM (Imvu Login Macro) [Updated 5-8-2013] 21 posts

OP Thu Mar 22, 2012 11:19 pm
User avatar
Administrator
Legendary Family Member
  • Gender: Male
  • Posts: 6284
  • Joined: Jun, 2010
  • Advertisements: 45
  • Karma: 368
The IML scripts were my way of beginning to learn the AutoIt scripting language. Simply put, they automatically open the Imvu Client, type in your username and password and hit login for you. This way, you can quickly log into the client with a simple click of the left mouse button.

When you run them for the first time, it will ask you for your Avatar Name and password. It does this because it's going to create a new registry key where it will store your Avatar name and password so it can type them for you.

These keys can be found here (Note: They won't be created till you run the script(s). However, you can create them manually):

V1:
Code
HKEY_CURRENT_USER\Software\ILM1


V2:
Code
HKEY_CURRENT_USER\Software\ILM2


V3:
Code
HKEY_CURRENT_USER\Software\ILM3




Imvu Login Macro v1:
Version 1 is for people who only have 1 IMVU account and already have their username saved in IMVU.
Click here to download a pre-compiled exe
Code
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#comments-start
  Note, This Script Only Works If You Have Your Account Name Already
  Saved In The Registry
#comments-end

;Check For The IMVU Client
If FileExists (@AppDataDir & "\IMVUClient\IMVUClient.exe") Then
   If RegRead ( "HKEY_CURRENT_USER\Software\ILM1", "Password" ) = "" Then
      ;If Reg Key Not Found, Create It And Prompt For Password Creation
      Dim $pass = InputBox("Avatar Name", "This Apears To Be The First Time You've Run ILM. Please Type In Your Password & Click OK")
      ;Set The Pass In The Ini File
      RegWrite("HKEY_CURRENT_USER\Software\ILM1", "Username", "REG_SZ", $pass)
   Else
      ;If Ini Found, Read Password From It And Store It In A Variable
      Dim $pass = RegRead ( "HKEY_CURRENT_USER\Software\ILM1", "Password", "", "*")
   EndIf
   ;Run The Imvu Client
   Run (@AppDataDir & "\IMVUClient\IMVUClient.exe")
   ;Pause And Wait For The Login Dialog To Load
   WinWaitActive("IMVU Login")
   AutoItSetOption("SendKeyDelay", 1)
   ;Type In The Password
   Send($pass)
   ;Tab Twice To Get To The Login Button
   Send(@tab)
   Send(@tab)
   ;Click The Login Button
   Send("{ENTER}")
Else
   ;If Imvu Not Found, Alert The User
   MsgBox(0,"Not Found", "Imvu Was Not Found On This Computer")
EndIf




Imvu Login Macro v2:
Version 2 is for people who have more than 1 IMVU Account and don't have their Avatar name stored in IMVU already.
Click here to download a pre-compiled exe
Code
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#comments-start
  Note, This Script Only Works If You DON'T Have Your Account Name Already
  Saved In The Registry
#comments-end

;Check for the Imvu client
If FileExists (@AppDataDir & "\IMVUClient\IMVUClient.exe") Then
   ;If Imvu is found, check for the ILM reg key. If not found or avi name field is blank, prompt to create it
   If RegRead ( "HKEY_CURRENT_USER\Software\ILM2", "Username" ) = "" Then
      ;Prompt for the avi name
      Dim $aviname = InputBox("Avatar Name", "This Apears To Be The First Time You've Run ILM. Please Type In Your Avatar Name & Click OK")
      ;Prompt for the password
      Dim $pass = InputBox("Password", "This Apears To Be The First Time You've Run ILM. Please Type In Your Password & Click OK", "", "*")
      ;Write the avi name and password to the registry
      RegWrite("HKEY_CURRENT_USER\Software\ILM2", "Username", "REG_SZ", $aviname)
      RegWrite("HKEY_CURRENT_USER\Software\ILM2", "Password", "REG_SZ", $pass)
   Else
      ;If the reg key is found and not empty, read the avi name and pass from it
      Dim $aviname = RegRead ( "HKEY_CURRENT_USER\Software\ILM2", "Username" )
      Dim $pass = RegRead ( "HKEY_CURRENT_USER\Software\ILM2", "Password" )
   EndIf
    ;Delete the Imvu avi name key to prevent the login dialog from starting on the password input box
   RegDelete("HKCU\Software\IMVU\username")
   ;Run Imvu
   Run (@AppDataDir & "\IMVUClient\IMVUClient.exe")
   ;Wait for the Imvu login dialog to load befor continuing
   WinWaitActive("IMVU Login")
   AutoItSetOption("SendKeyDelay", 0)
   ;Type in the avi name
   Send($aviname)
   ;Tab down to the password box
   Send(@tab)
   ;Type in the password
   Send($pass)
   ;hit enter to login
   Send("{ENTER}")
EndIf




Imvu Login Macro v3:
This is for people who are having issue with IMVU storing your avatar name even though it shouldn't be. I've looked though all the files and registry keys and can't figure out why IMVU is storing an avatar name to an alt account of mine and causing the script to put the avatar name in the password box. So, if you're having this issue as well, then download this version.
Click here to download a pre-compiled exe
Code
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#comments-start
  Note, This Script Only Works If You DON'T Have Your Account Name Already
  Saved In The Registry
#comments-end

;Check for the Imvu client
If FileExists (@AppDataDir & "\IMVUClient\IMVUClient.exe") Then
   ;If Imvu is found, check for the ILM reg key. If not found or avi name field is blank, prompt to create it
   If RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Username" ) = "" Then
      ;Prompt for the avi name
      Dim $aviname = InputBox("Avatar Name", "This Apears To Be The First Time You've Run ILM. Please Type In Your Avatar Name & Click OK")
      ;Prompt for the password
      Dim $pass = InputBox("Password", "This Apears To Be The First Time You've Run ILM. Please Type In Your Password & Click OK", "", "*")
      ;Write the avi name and password to the registry
      RegWrite("HKEY_CURRENT_USER\Software\ILM3", "Username", "REG_SZ", $aviname)
      RegWrite("HKEY_CURRENT_USER\Software\ILM3", "Password", "REG_SZ", $pass)
   Else
      ;If the reg key is found and not empty, read the avi name and pass from it
      Dim $aviname = RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Username" )
      Dim $pass = RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Password" )
   EndIf
    ;Delete the Imvu avi name key to prevent the login dialog from starting on the password input box
   RegDelete("HKCU\Software\IMVU\username")
   ;Run Imvu
   Run (@AppDataDir & "\IMVUClient\IMVUClient.exe")
   ;Wait for the Imvu login dialog to load befor continuing
   WinWaitActive("IMVU Login")
   AutoItSetOption("SendKeyDelay", 0)
   Dim $count = 0
   Do
     $count = $count + 1
     Send("{TAB}")
   Until $count = 15
   ;Type in the avi name
   Send($aviname)
   ;Tab down to the password box
   Send(@tab)
   ;Type in the password
   Send($pass)
   ;hit enter to login
   Send("{ENTER}")
EndIf


All the scripts should work on Windows XP/Vista and 7. If you encounter any problems, let me know.


To-Do List:
    -Find a way to encrypt the avatar name and password in the registry
    -Add some sort of support for multiple accounts
    -Find a way to re write the scripts so I can manually select the avatar name box
Fri Mar 23, 2012 4:28 pm
User avatar
  • Gender: Male
  • Posts: 45
  • Joined: Sep, 2011
  • Karma: 0
i have worked with autoit be4 also im a bit rusty with it tho but it does have alot of staff for a marco lang ill nab a copy of it later and see if there is anyway i can help you out
Fri Mar 23, 2012 5:27 pm
User avatar
Mafia Don
Legendary Family Member
  • Gender: Male
  • Posts: 12814
  • Joined: Nov, 2007
  • Advertisements: 406
  • Karma: 204
I wonder..., is it capable of entering IMVU modes such as public rooms or people search?
OP Fri Mar 23, 2012 6:32 pm
User avatar
Administrator
Legendary Family Member
  • Gender: Male
  • Posts: 6284
  • Joined: Jun, 2010
  • Advertisements: 45
  • Karma: 368
Don Von Free Credits wrote:
I wonder..., is it capable of entering IMVU modes such as public rooms or people search?


If the tab button works with the client, then yes, that is completely possible. However, if not, then you would have to rely on mouse movement commands which could do it but it would be a lot less reliable because you would have to have the mouse at the same position on every computer every time you run it, otherwise you'd have to re write it every time you move your mouse.

Edit:

The tab button doesn't seem to work in the client, but considering the home mode is nothing but html and javascript, it might be possible to tell AutoIt to lock onto the Imvu window (like my above scripts do with the login window) then invoke the html buttons themselves. However, that is all theory, I am not sure it's actually possible.

It would also require looking at the source code of the client which we don't publicly display to non staff members.
Fri Mar 23, 2012 7:01 pm
User avatar
  • Gender: Male
  • Posts: 45
  • Joined: Sep, 2011
  • Karma: 0
Here you go bro i wrote up the store and read from registry for you its still all your code just modify a few lines to make it read/write to the registry i ahve tested this and it works :)
Code
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#comments-start
  Note, This Script Only Works If You DON'T Have Your Account Name Already
  Saved In The Registry
#comments-end

;Check For The IMVU Client
If FileExists (@AppDataDir & "\IMVUClient\IMVUClient.exe") Then
   If RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Username" ) = "" Then
      ;If Regkey Found, Create It And Prompt For Avatar Name Creation
      Dim $aviname = InputBox("Password", "This Apears To Be The First Time You've Run ILM. Please Type In Your Avatar Name & Click OK")
      ;If Regkey Not Found, Create It And Prompt For Password Creation
      Dim $pass = InputBox("Password", "This Apears To Be The First Time You've Run ILM. Please Type In Your Password & Click OK")
      ;Set The Avi Name In The Registry
      RegWrite("HKEY_CURRENT_USER\Software\ILM3", "Username", "REG_SZ", $aviname)
     ;Set The Pass In The Registry
    RegWrite("HKEY_CURRENT_USER\Software\ILM3", "Password", "REG_SZ", $pass)
   Else
      ;If Regkey Found, Read The Avatar Name From It And Store It In A Variable
     Dim $aviname = RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Username" )
     ;If Regkey Found, Read Password From It And Store It In A Variable
     Dim $pass = RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Password" )

   EndIf
   ;Run The Imvu Client
   Run (@AppDataDir & "\IMVUClient\IMVUClient.exe")
   ;Pause And Wait For The Login Dialog To Load
   WinWaitActive("IMVU Login")
   AutoItSetOption("SendKeyDelay", 100)
   ;Type In The Avatar Name
   Send($aviname)
   ;Tab To The Password Box
   Send(@tab)
   ;Type In The Password
   Send($pass)
   ;Tab Twice To Get To The Login Button
   Send(@tab)
   Send(@tab)
   ;Click The Login Button
   Send("{ENTER}")
EndIf
OP Fri Mar 23, 2012 7:05 pm
User avatar
Administrator
Legendary Family Member
  • Gender: Male
  • Posts: 6284
  • Joined: Jun, 2010
  • Advertisements: 45
  • Karma: 368
Ah cool, you just improved this script a lot. I should have figured AutoIt had a regwrite function.

EDIT:

Hmm, the bug is back. For some reason if you run it after the regfile has been created, it seems to type in the wrong info. I can't tell what though cause the avi name matches and the password length is correct.
Fri Mar 23, 2012 7:14 pm
User avatar
  • Gender: Male
  • Posts: 45
  • Joined: Sep, 2011
  • Karma: 0
I found a cheat sheet so to say for the functions http://www.autoitscript.com/autoit3/docs/functions.htm
also i was thinking for muti usersnames you could have them give you the number of accounts they want to set up and then just do a loop for the username and pass input adding a number at the end of username give me a few and ill try to write something like that up then like you said figure a way to add a drop down with all the usernames in the registry
OP Fri Mar 23, 2012 7:54 pm
User avatar
Administrator
Legendary Family Member
  • Gender: Male
  • Posts: 6284
  • Joined: Jun, 2010
  • Advertisements: 45
  • Karma: 368
I think the bug is typing my avatar name in the password box. Not sure why though, gonna have to do some debugging.

EDIT:

Imvu seems to save your avatar name automatically which forces the cursor to start on the password box so I need to come up with some code that reads the imvu registry key that stores the avi name and then clears/deletes it.


EDIT 2:
Ok, I see what the problem was. After a certain amount of incorrect login attempts, Imvu seems to refuse to let you login to the client (even with the correct info) until you go to the website login page and fill out a captcha. That was the problem, it was typing in the correct account info but Imvu was blocking my account till I typed in the captcha.

I also made some changes to the script to prevent it from loading up the login page and starting on the password input box. I also removed a couple useless lines after i realized you can hit enter at anytime and don't actually have to tab to the login button itself.


Imvu Login Macro v3
DOWNLOAD PRE COMPILED EXECUTABLE
Code
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#comments-start
  Note, This Script Only Works If You DON'T Have Your Account Name Already
  Saved In The Registry
#comments-end

;Check for the Imvu client
If FileExists (@AppDataDir & "\IMVUClient\IMVUClient.exe") Then
   ;If Imvu is found, check for the ILM reg key. If not found or avi name field is blank, prompt to create it
   If RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Username" ) = "" Then
      ;Prompt for the avi name
      Dim $aviname = InputBox("Password", "This Apears To Be The First Time You've Run ILM. Please Type In Your Avatar Name & Click OK")
      ;Prompt for the password
      Dim $pass = InputBox("Password", "This Apears To Be The First Time You've Run ILM. Please Type In Your Password & Click OK")
      ;Write the avi name and password to the registry
      RegWrite("HKEY_CURRENT_USER\Software\ILM3", "Username", "REG_SZ", $aviname)
      RegWrite("HKEY_CURRENT_USER\Software\ILM3", "Password", "REG_SZ", $pass)
   Else
      ;If the reg key is found and not empty, read the avi name and pass from it
      Dim $aviname = RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Username" )
      Dim $pass = RegRead ( "HKEY_CURRENT_USER\Software\ILM3", "Password" )
   EndIf
   ;Delete the Imvu avi name key to prevent the login dialog from starting on the password input box
   RegDelete("HKCU\Software\IMVU\username")
   ;Run Imvu
   Run (@AppDataDir & "\IMVUClient\IMVUClient.exe")
   ;Wait for the Imvu login dialog to load befor continuing
   WinWaitActive("IMVU Login")
   AutoItSetOption("SendKeyDelay", 100)
   ;Type in the avi name
   Send($aviname)
   ;Tab down to the password box
   Send(@tab)
   ;Type in the password
   Send($pass)
   ;hit enter to login
   Send("{ENTER}")
EndIf
Mon Mar 26, 2012 9:59 am
User avatar
Mafia Don
Legendary Family Member
  • Gender: Male
  • Posts: 12814
  • Joined: Nov, 2007
  • Advertisements: 406
  • Karma: 204
Ð▪ℳ wrote:
It would also require looking at the source code of the client which we don't publicly display to non staff members.


I highly doubt that the HTML for the homepage is dangerous in public hands.
Code
<div id="home-mode">
        <div id="home-header">
            <div id="title-container">
                <div id="title"><script id="inline_translate">_iT("Home", "inline_translate")</script></div>
                <div id="sledgehammer" style="display: none;"></div>
            </div>
            <div id="home-paginator"></div>
            <div id="gift" style="display: none;"><div id="sparkle"></div></div>
        </div>

               
        <div class="home-body">
            <div id="buttons-container">
            </div>
            <img id="prev-page" src="img/home_paging_arrow_left.png">
            <img id="next-page" src="img/home_paging_arrow_right.png">
            <div id="start-here"></div>
        </div>

        <div id="loading-mask"><div id="loading-spinner"></div></div>
    </div>


Once the javascript is run, the buttons are generated inside of the "buttons-container" div.
As far as the buttons themselves, I am not sure what kind of tag they are using for them, but they are setting the class to "button" and the name to something different for each button. Try targeting the public rooms mode button, whose name looks to be either "chatRooms" or 'Chat Rooms'.

If we can teach autoit to home in on objects within the client, then we should be able to bot the client.
Last edited by DataMine on Fri Oct 17, 2014 1:27 pm, edited 1 time in total. Reason: Fixed quote typo
Mon Mar 26, 2012 3:08 pm
User avatar
  • Gender: Male
  • Posts: 45
  • Joined: Sep, 2011
  • Karma: 0
here you go don von and dm this will go to the chat tab on imvu
Code
Opt("WinTitleMatchMode", 4)
WinWait("Home - IMVU","chrome://imvu/content/tool/fri")
ControlClick("Home - IMVU","chrome://imvu/content/tool/fri","MozillaWindowClass5")
WinWait("Chat Rooms - IMVU","chrome://imvu/content/tool/fri")

and this line should open the room in the top left had corner
Code
WinWait("Room Card - IMVU","chrome://imvu/content/dialogs/")
ControlClick("Room Card - IMVU","chrome://imvu/content/dialogs/","MozillaWindowClass1")

However i think it sends it be4 the chat tab is fully loaded cos i cant get it to join a room using that code still testing stuff tho just wnated to share this bit

Create an account or sign in to comment

You need to be a member in order to leave a comment

Sign in

Already have an account? Sign in here

SIGN IN NOW

Create an account

Sign up for a new account in our community. It's easy!

REGISTER A NEW ACCOUNT