• Log in or sign up for an account here: https://www.sythe.org/login

RuneScape Grand Exchange Tool

Joined
Feb 9, 2011
Sythe Gold
0
Messages
4
RuneScape Grand Exchange​

If a staff member can verify pl0x

I made this application for me to use but I no longer play RuneScape, what it does is it loads a list of items from a website and then displays them when you being typing into the search box.

When you find the item you want if you double click it another form will appear and you can then view graphs and prices. I found it much faster than going to the RuneScape website everytime I wanted to find the history of an item.

If you click on an item that isn't in the grand exchange database the program will tell you so don't worry about it crashing!

Virus Scans:
http://virusscan.jotti.org/en-gb/scanresult/45d09628c6d954931ba67401f6f6cfae92904006

http://www.virustotal.com/file-scan...237c83c1b0c9b19336fcbeee9ac1cf2121-1297182034

Download:
http://www.multiupload.com/X2WWQR3ICB

Some pictures:
blrZCJ.png


r86JJn.png


skxCcg.png


mBP87m.png
 
any mod test this for viruses
 
Checking...

Result:
The file is not detected by any antivirus, but I wasn't able to decompile it either, the program is encrypted/obfuscated.
The reason for this is to make an detected virus undetected.
Info about virus encryption: http://en.wikipedia.org/wiki/Computer_virus#Encryption_with_a_variable_key

My advice: DO NOT DOWNLOAD

Naa I obfuscated it to keep the file size down, the source is here:

Code:
Imports System.IO
Imports System.Net
Imports System.Drawing
Imports System.Drawing.Imaging

Public Class GrandExchangeForm

    Private ItemName As String
    Private ItemId As Integer
    Private Description As String
    Private Price As String

    Public Sub New(ByVal ItemName As String, ByVal ItemId As String)
  InitializeComponent()
  lbl_ItemName.Text = ItemName
  lbl_Description.Visible = False
  Me.ItemName = ItemName
  Me.ItemId = ItemId
  bgw_Statistics.RunWorkerAsync()
    End Sub

    Private Sub GrandExchangeForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Me.Text = "RuneScape - GrandExchange - " & ItemName
    End Sub

    Private Function ParseWebsite() As Boolean
  Dim URLStream As Stream = Nothing
  Dim URLStreamReader As StreamReader = Nothing
  Try
    Dim Request As WebRequest = WebRequest.Create("http://services.runescape.com/m=itemdb_rs/viewitem.ws?obj=" & ItemId)
    Dim Response As WebResponse = Request.GetResponse

    URLStream = Response.GetResponseStream
    URLStreamReader = New StreamReader(URLStream)
    Dim Line As String = URLStreamReader.ReadLine

    Dim Lines As String() = New String(3) {}

    Do While (Not Line Is Nothing)
    If Line.Contains("<meta name=""description"" content=""") Then
    Line = Line.Replace("<meta name=""description"" content=""", "")
    Line = Line.Replace(""">", "")
    Description = Line
    End If
    If Line.Contains("<b>Current guide price:</b>") Then
    Line = Line.Replace("<b>Current guide price:</b>", "")
    Line = Line.Replace(" ", "")
    Price = Line
    End If
    If Line.Contains("item_image") Then
    Line = Line.Replace("<img id=""item_image"" src=""", "")
    Line = Line.Replace(""" alt=""" & ItemName & """>", "")
    pic_SnapShot.ImageLocation = Line
    End If
    If Line.Contains("item_graph_image") Then
    URLStreamReader.ReadLine()
    Lines(0) = URLStreamReader.ReadLine
    Lines(1) = URLStreamReader.ReadLine
    Lines(2) = URLStreamReader.ReadLine
    Exit Do
    End If
    Line = URLStreamReader.ReadLine
    Loop

    If Not String.IsNullOrEmpty(Lines(0)) Then

    Dim yAxis As String = Lines(0)
    yAxis = yAxis.Replace("<td><img name=""object"" src=""", "")
    yAxis = yAxis.Replace(""" alt=""""></td>", "")
    yAxis = yAxis.Replace("&amp;", "&")
    pic_Axis1.ImageLocation = yAxis

    Dim Graph As String = Lines(1)
    Graph = Graph.Replace("<td><img src=""", "")
    Graph = Graph.Replace(""" alt=""""></td>", "")
    Graph = Graph.Replace("&amp;", "&")
    pic_Graph.ImageLocation = Graph

    Dim xAxis As String = Lines(2)
    xAxis = xAxis.Replace("<tr><td colspan=2><img src=""", "")
    xAxis = xAxis.Replace(""" width=""499"" alt=""""></td>", "")
    xAxis = xAxis.Replace("&amp;", "&")
    pic_Axis2.ImageLocation = xAxis

    If URLStreamReader IsNot Nothing Then
    URLStreamReader.Close()
    End If
    If URLStream IsNot Nothing Then
    URLStream.Close()
    End If
    Return True
    End If

  Catch ex As Exception
  Finally
    If URLStreamReader IsNot Nothing Then
    URLStreamReader.Close()
    End If
    If URLStream IsNot Nothing Then
    URLStream.Close()
    End If
  End Try
  Return False
    End Function

    Private Sub bgw_Statistics_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw_Statistics.DoWork
  If Not ParseWebsite() Then
    e.Result = False
  Else
    e.Result = True
  End If
    End Sub

    Private Sub bgw_Statistics_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgw_Statistics.RunWorkerCompleted
  lbl_PleaseWait.Visible = False
  If e.Result = True Then
    pic_Axis1.Visible = True
    pic_Axis2.Visible = True
    pic_Graph.Visible = True
    pic_SnapShot.Visible = True
    lbl_Description.Visible = True
    lbl_Price.Visible = True
    lbl_Price.Text = Price
    lbl_Description.Text = Description
  Else
    lbl_Error.Visible = True
  End If
    End Sub

End Class

Code:
Imports System.Text
Imports System.Collections.Generic
Imports System.IO
Imports System.Net

Public Class MainForm

    Private RSItems As New SortedDictionary(Of String, Integer)()
    Private GrandForm As GrandExchangeForm

    Private Sub RuneScapeForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

  bgw_Items.WorkerReportsProgress = True
  AddHandler bgw_Items.DoWork, AddressOf bgw_Items_DoWork
  AddHandler bgw_Items.ProgressChanged, AddressOf bgw_Items_ProgressChanged
  AddHandler bgw_Items.RunWorkerCompleted, AddressOf bgw_Items_RunWorkerCompleted
  bgw_Items.RunWorkerAsync()

    End Sub

    Private Function FilterRSItems(ByVal Search As String) As List(Of String)
  Dim NewItems As List(Of String) = New List(Of String)
  For Each item As String In RSItems.Keys.ToArray
    If item.ToLower().Contains(Search.ToLower()) Then
    NewItems.Add(item)
    End If
  Next
  Return NewItems
    End Function

    Private Sub btn_Search_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btn_Search.MouseClick
  lsb_Items.DataSource = FilterRSItems(txt_Search.Text)
    End Sub

    Private Sub txt_Search_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_Search.KeyPress
  If e.KeyChar = Convert.ToChar(Keys.Enter) Then
    lsb_Items.DataSource = FilterRSItems(txt_Search.Text)
    e.Handled = True
  End If
    End Sub

    Private Sub lsb_Items_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lsb_Items.MouseDoubleClick
  Dim CPoint As Point = e.Location
  Dim Index As Integer = lsb_Items.IndexFromPoint(CPoint)
  If Index <> -1 Then
    PopupItem(lsb_Items.Items(Index).ToString)
  End If
    End Sub

    Private Sub PopupItem(ByVal Name As String)
  If GrandForm IsNot Nothing Then
    GrandForm.Hide()
    GrandForm.Dispose()
  End If
  Dim Index As Integer = 0
  For Index = 0 To RSItems.Keys.Count - 1 Step 1
    Dim ItemName As String = RSItems.Keys(Index)
    If Name.ToLower = ItemName.ToLower Then
    Index = RSItems.Item(ItemName)
    Exit For
    End If
  Next
  GrandForm = New GrandExchangeForm(Name, Index)
  GrandForm.Show(Me)
    End Sub

    Private Sub bgw_Items_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
  Dim Items As IDictionary(Of String, Integer) = New SortedDictionary(Of String, Integer)

  Dim URLStream As Stream = Nothing
  Dim URLStreamReader As StreamReader = Nothing
  Try
    Dim Request As WebRequest = WebRequest.Create("url2itemlist.txt")
    Dim Response As WebResponse = Request.GetResponse

    URLStream = Response.GetResponseStream
    URLStreamReader = New StreamReader(URLStream)

    Dim Count As Integer = 0
    Dim Line As String = URLStreamReader.ReadLine

    Do While (Not Line Is Nothing)
    Count += 1
    Line = URLStreamReader.ReadLine
    Loop

    If URLStreamReader IsNot Nothing Then
    URLStreamReader.Close()
    End If
    If URLStream IsNot Nothing Then
    URLStream.Close()
    End If

    Request = WebRequest.Create("url2itemlist.txt")
    Response = Request.GetResponse

    URLStream = Response.GetResponseStream
    URLStreamReader = New StreamReader(URLStream)

    Line = URLStreamReader.ReadLine
    Dim ParsedCount As Integer = 0

    Do While (Not Line Is Nothing)
    ParsedCount += 1
    bgw_Items.ReportProgress((ParsedCount / Count) * 100)
    Dim Split As String() = Line.Split("|")
    If Items.ContainsKey(Split(1)) Then
    Line = URLStreamReader.ReadLine
    Continue Do
    End If
    Items.Add(Split(1), Integer.Parse(Split(0)))
    Line = URLStreamReader.ReadLine
    Loop
  Catch ex As Exception
  Finally
    If URLStreamReader IsNot Nothing Then
    URLStreamReader.Close()
    End If
    If URLStream IsNot Nothing Then
    URLStream.Close()
    End If
  End Try

  RSItems = Items
    End Sub

    Private Sub bgw_Items_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs)
  pgb_Loaded.Value = e.ProgressPercentage
  txt_Search.Text = "Please wait... " & e.ProgressPercentage & "%"
    End Sub

    Private Sub bgw_Items_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs)
  txt_Search.Text = "Search for an item by entering its name"
  btn_Search.Enabled = True
  txt_Search.Enabled = True
  pgb_Loaded.Visible = False
  Me.Size = New Size(506, 434)
    End Sub

    Private Sub txt_Search_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_Search.TextChanged
  lsb_Items.DataSource = FilterRSItems(txt_Search.Text)
    End Sub

End Class
 
then "unobfuscate" or whatever so i will download it.
 
Runescape Gamblingrunescape gambling
Back
Top