Jump to content

cbox


Recommended Posts

Posted

The authentication system used by various apps has been updated on the server side. It is now 1 query instead of 2, and operates on (Sign in, quick reply, and normal post) for updating your IP, post count, group id, and REP count).

 

 

Thanks for the various users for helping out with the test.

 

The source in C#, for anyone.

 

You must include these classes.

using System.Net;
using System.Collections;

 

 

        public void authMe()
       {
           /*
           * Allowed User Groups to post, edit this yourself
           * Remove the ones that you DONT want to use your program
           * For this demo, all the groups are there
           * 
           * The ones that are missing are Bots,
           * Guests and some old usergroups that are hidden
           */
           ArrayList aug = new ArrayList();
           // aug.Add(1); //Validating
           aug.Add(3); //Members
           aug.Add(4); //Owner
           // aug.Add(5); //Banned 
           aug.Add(7); //Sub Admins
           aug.Add(; //VIP
           aug.Add(9); //Global Mods
           aug.Add(10); //GFX Team
           aug.Add(12); //Retired Staff
           aug.Add(14); //Members+
           aug.Add(15); //Donors
           aug.Add(16); //Donors+

           //These are the the levels of which you want for posts and REP
           int minPosts = 0;
           int minRep = 0;

           //The client to download the string, which contains all login info
           WebClient client = new WebClient();
           string info = client.DownloadString("http://www.ibotmodz.net/index.php/prog/api");
           client.Dispose();

           //Check if website online or not
           if (String.IsNullOrEmpty(info))
               MessageBox.Show("iBotModz is offline");

           //Gathering the 4 variables
           String user = info.Substring((info.IndexOf("[user]") + 6), ((info.IndexOf("[/user]") - (info.IndexOf("[user]") + 6))));

           //Check if guest
           if (String.IsNullOrEmpty(user))
           {
               MessageBox.Show("Please become a member on iBotModz.net." + Environment.NewLine + Environment.NewLine + "If you are a member....Make a post" + Environment.NewLine + "Without using the quick reply ");
               Environment.Exit(0);
           }
           int posts = Convert.ToInt32(info.Substring((info.IndexOf("[posts]") + 7), ((info.IndexOf("[/posts]") - (info.IndexOf("[posts]") + 7)))));
           int rep = Convert.ToInt32(info.Substring((info.IndexOf("[rep]") + 5), ((info.IndexOf("[/rep]") - (info.IndexOf("[rep]") + 5)))));
           int groupID = Convert.ToInt32(info.Substring((info.IndexOf("[groupid]") + 9), ((info.IndexOf("[/groupid]") - (info.IndexOf("[groupid]") + 9)))));

           //Check for posts
           if (minPosts > posts)
           {
               MessageBox.Show("You need more posts to use this program.");
               this.Close();
           }
           //Check for REP level
           if (minRep > rep)
           {
               MessageBox.Show("You need more REP to use this program.");
               this.Close();
           }
           //Check for memberID
           if (groupID == 0)
               MessageBox.Show("Sorry, you don't have a usergroup.");

           int flag = 0; // ((0 = failed)) ((1 = passed))
           //This will go through each allowed ID, so lets hope we are in here
           foreach (int i in aug)
           {
               if (groupID == i)
               {
                   //Yes we found it
                   //Debug.WriteLine(groupID + " passed because it was equal to " + i);
                   flag = 1;
                   break;
               }
               else
               {
                   //so far theres nothing, keep going
                   flag = 0;
                   //Debug.WriteLine(groupID + " failed because it was equal to " + i);
               }
           }
           switch (flag)
           {
               //Check the flag
               case 1: 
                   //Login passed
                   break;
               case 0: 
                   //Login Failed
                   this.Close();
                   break;
           }
       }

 

An example project is attached.

ibmAuth.rar

  • 2 weeks later...
Posted

Sometimes a incomplete session caused by a unfinished login might result in the groupID being set as 0 or null, thus failing the ID check.

 

Mostly only happens with guests on proxies, or spiders/bots.

Posted

For those of you using Visual Basic .NET, here is the converted code:

 

Public Sub authMe()
'
' 	* Allowed User Groups to post, edit this yourself
' 	* Remove the ones that you DONT want to use your program
' 	* For this demo, all the groups are there
' 	* 
' 	* The ones that are missing are Bots,
' 	* Guests and some old usergroups that are hidden
' 	

Dim aug As New ArrayList()
' aug.Add(1); //Validating
aug.Add(3)
'Members
aug.Add(4)
'Owner
' aug.Add(5); //Banned 
aug.Add(7)
'Sub Admins
aug.Add(
'VIP
aug.Add(9)
'Global Mods
aug.Add(10)
'GFX Team
aug.Add(12)
'Retired Staff
aug.Add(14)
'Members+
aug.Add(15)
'Donors
aug.Add(16)
'Donors+
'These are the the levels of which you want for posts and REP
Dim minPosts As Integer = 0
Dim minRep As Integer = 0

'The client to download the string, which contains all login info
Dim client As New WebClient()
Dim info As String = client.DownloadString("http://www.ibotmodz.net/index.php/prog/api")
client.Dispose()

'Check if website online or not
If [string].IsNullOrEmpty(info) Then
MessageBox.Show("iBotModz is offline")
End If

'Gathering the 4 variables
Dim user As [string] = info.Substring((info.IndexOf("[user]") + 6), ((info.IndexOf("[/user]") - (info.IndexOf("[user]") + 6))))

'Check if guest
If [string].IsNullOrEmpty(user) Then
MessageBox.Show((("Please become a member on iBotModz.net." & Environment.NewLine) + Environment.NewLine & "If you are a member....Make a post") + Environment.NewLine & "Without using the quick reply ")
Environment.[Exit](0)
End If
Dim posts As Integer = Convert.ToInt32(info.Substring((info.IndexOf("[posts]") + 7), ((info.IndexOf("[/posts]") - (info.IndexOf("[posts]") + 7)))))
Dim rep As Integer = Convert.ToInt32(info.Substring((info.IndexOf("[rep]") + 5), ((info.IndexOf("[/rep]") - (info.IndexOf("[rep]") + 5)))))
Dim groupID As Integer = Convert.ToInt32(info.Substring((info.IndexOf("[groupid]") + 9), ((info.IndexOf("[/groupid]") - (info.IndexOf("[groupid]") + 9)))))

'Check for posts
If minPosts > posts Then
MessageBox.Show("You need more posts to use this program.")
Me.Close()
End If
'Check for REP level
If minRep > rep Then
MessageBox.Show("You need more REP to use this program.")
Me.Close()
End If
'Check for memberID
If groupID = 0 Then
MessageBox.Show("Sorry, you don't have a usergroup.")
End If

Dim flag As Integer = 0
' ((0 = failed)) ((1 = passed))
'This will go through each allowed ID, so lets hope we are in here
For Each i As Integer In aug
If groupID = i Then
'Yes we found it
'Debug.WriteLine(groupID + " passed because it was equal to " + i);
flag = 1
Exit For
Else
'so far theres nothing, keep going
'Debug.WriteLine(groupID + " failed because it was equal to " + i);
flag = 0
End If
Next
Select Case flag
'Check the flag
Case 1
'Login passed
Exit Select
Case 0
'Login Failed
Me.Close()
Exit Select
End Select
End Sub

Guest
This topic is now closed to further replies.
×
×
  • Create New...