Sothink AoB finder
-migrated-
Re: Sothink AoB finder Posted on: 11/23/2010 3:24pm
Quote Post
System Bot
@satanicgurrl Pretty sweet, thanks mate. I have to admit that I prefer your version. Although I seem to fail to see the "NOP selection" in the program.

This post was imported from an account that no longer exists!
Previous Name: phreneticus
Re: Sothink AoB finder Posted on: 11/23/2010 3:46pm
Quote Post
I was about to pm you. I updated it since posting.
the newest version is 1.5.0.0
to NOP code simply select it in the edit pane (text box on the right) then right click on it and select "NOP Selection" from the context menu.

(broken image removed)

also, if youre using the installer version, you may need to uninstall through the control panel before installing the newer version.
Re: Sothink AoB finder Posted on: 11/23/2010 3:59pm
Quote Post
System Bot
Ok, thanks again. I like the standalone version, it doesn't change anything at the registry. (broken image removed)

This post was imported from an account that no longer exists!
Previous Name: phreneticus
Re: Sothink AoB finder Posted on: 11/23/2010 6:21pm
Quote Post
yet another update. cv 1.5.4.0

added Automatic AoB Length checking to ensure equality in the array length
Re: Sothink AoB finder Posted on: 11/23/2010 6:27pm
Quote Post
System Bot
Quote from: "satanicgurrl"
yet another update. cv 1.5.4.0

added Automatic AoB Length checking to ensure equality in the array length
It said "Shorter by 6", with the following AoBs:

d0 66 bd 08 62 05 66 af 01 62 05 66 b0 01 24 64
d0 66 bd 08 62 05 66 af 01 62 05 66 b0 01

As far as I see, it's 2 bytes shorter or if you want to see those as numbers, 4 numbers shorter. But nothing I can think of that would be 6.

This post was imported from an account that no longer exists!
Previous Name: phreneticus
Re: Sothink AoB finder Posted on: 11/23/2010 6:46pm
Quote Post
Before Your Time
What language are you using gurrl? And is any of the code Open-Source?



I'm basically the shit... 
Re: Sothink AoB finder Posted on: 11/23/2010 7:23pm
Quote Post
Quote from: "phreneticus"
Quote from: "satanicgurrl"
yet another update. cv 1.5.4.0

added Automatic AoB Length checking to ensure equality in the array length
It said "Shorter by 6", with the following AoBs:

d0 66 bd 08 62 05 66 af 01 62 05 66 b0 01 24 64
d0 66 bd 08 62 05 66 af 01 62 05 66 b0 01

As far as I see, it's 2 bytes shorter or if you want to see those as numbers, 4 numbers shorter. But nothing I can think of that would be 6.

Cheat Engine counts internal spaces, so i do too. so the difference is "<space> zwei fear <space> sex fear" it doesnt check format, it just checks String.Length, Its really more of a heads up than anything else, because I dont know if the spaces actually matter in CE, all I know is that it warns you if they are different.

@HakHappy
Its C# written in Studio '10. Im not going to release full source because its a MAJOR hassle to sip it all up but without all the debug bullshit and and everything. If there were more to it than a couple of regex match/replace and a dozen or so conditionals, I would be more than happy to give you the whole source. but i mean thats really all there is so theres no need.

here though is the method bodies, it should be all you really need.
Code: [Select]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace Raw_Data_AoB_Extractor
{
   
    public partial class Form1 : Form
    {
        private String aobregex = "/+(([a-fA-F0-9]{2}\s*)+)";
        private String nopregex = "([a-fA-F0-9]{2}\s*)";
        public Form1()
        {
            InitializeComponent();
        }

        #region form event handlers
        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            if (!checkBox1.Checked)
            {
                return;
            }
            highlightbox1();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            highlightbox1();
            highlightbox2();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox2.Text = richTextBox1.Text;
            highlightbox2();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //Console.WriteLine("sender: " + ((Button)sender).Name);
            getaobs(((Button)sender).Name);

        }
        private void button4_Click(object sender, EventArgs e)
        {
            getforumcode();
        }
        private void button5_Click(object sender, EventArgs e)
        {
            Clipboard.SetText(textBox4.Text);
        }
        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            getforumcode();
        }
        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AboutBox1 about = new AboutBox1();
            about.Show();
        }

        private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = Clipboard.GetText();
        }

        private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Focus();
            richTextBox1.SelectAll();
        }
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            if (textBox2.Text == "" || textBox2.Text == null)
            {
                label2.Visible = false;
                textBox2.BackColor = Color.White;
                return;
            }
            if (textBox1.Text == "" || textBox1.Text == null)
                getaobs("button2");
            if (textBox2.Text.Length != textBox1.Text.Length)
            {
                label2.Text = (textBox2.Text.Length > textBox1.Text.Length) ? ("Longer by: " + (textBox2.Text.Length - textBox1.Text.Length)) : ("Shorter by: " + (-1*(textBox2.Text.Length - textBox1.Text.Length)));
                label2.Visible = true;
                textBox2.BackColor = Color.Crimson;
            }
            else
            {
                label2.Visible = false;
                textBox2.BackColor = Color.White;
            }
        }

        #endregion

        #region aob highlighting
        private void highlightbox2()
        {
            Regex r = new Regex("n");
            String[] lines = r.Split(richTextBox2.Text);
           
            //Console.WriteLine("the text has changed.");
            richTextBox2.Text = "";
            Color xcolor;
            if(checkBox1.Checked)
                xcolor=Color.Green;
            else
                xcolor=Color.Black;
            foreach (string l in lines)
            {
                if (l.Length < 2)
                {
                    continue;
                }

                if (Regex.IsMatch(l.Trim(), aobregex))
                {
                   
                    richTextBox2.SelectionColor = xcolor;
                    richTextBox2.SelectedText = l.Trim() + "n";
                }
                else
                {
                    richTextBox2.SelectionColor = Color.Black;
                    richTextBox2.SelectedText = l.Trim() + "n";
                }
            }
            richTextBox2.SelectionColor = Color.Black;
        }

        private void highlightbox1()
        {
            Regex r = new Regex("n");
            String[] lines = r.Split(richTextBox1.Text);

            //Console.WriteLine("the text has changed.");
            richTextBox1.Text = "";
            Color xcolor;
            if (checkBox1.Checked)
                xcolor = Color.Green;
            else
                xcolor = Color.Black;
            foreach (string l in lines)
            {
                if (l.Length < 2)
                {
                    continue;
                }

                if (Regex.IsMatch(l.Trim(), aobregex))
                {

                    richTextBox1.SelectionColor = xcolor;
                    richTextBox1.SelectedText = l.Trim() + "n";
                }
                else
                {
                    richTextBox1.SelectionColor = Color.Black;
                    richTextBox1.SelectedText = l.Trim() + "n";
                }
            }
            richTextBox1.SelectionColor = Color.Black;
           
        }

#endregion

        #region Aob textbox updates
        private void getaobs(string sender)
        {
            Regex r = new Regex("n");
            String[] lines;
            if (sender == "button2")
                lines = r.Split(richTextBox1.Text);
            else
                lines = r.Split(richTextBox2.Text);
            String aob = "";

            foreach (string l in lines)
            {
                if (Regex.IsMatch(l.Trim(), aobregex))
                    aob += Regex.Replace(l.Trim(), aobregex, "$1") + " ";
            }

            if (sender == "button2")
                textBox1.Text = aob;
            else
                textBox2.Text = aob;
        }

       

        private void getforumcode()
        {
            String fc = "";
            if (checkBox2.Checked)
                fc += "[b]" + textBox3.Text + "[/b]" + Environment.NewLine;
            else
                fc += textBox3.Text + Environment.NewLine;
            if (textBox1.Text == "" || textBox1.Text == null)
            {
                getaobs("button2");
                fc += textBox1.Text + Environment.NewLine;
            }
            else
                fc += textBox1.Text + Environment.NewLine;
            if (textBox2.Text == "" || textBox2.Text == null)
            {
                getaobs("button3");
                fc += textBox2.Text;
            }
            else
                fc += textBox2.Text;

            textBox4.Text = fc;
        }


        #endregion

        #region Nop Selection context and code
        private void contextMenuStrip2_Opening(object sender, CancelEventArgs e)
        {
            if (richTextBox2.SelectedText.Length < 2)
                contextMenuStrip2.Items[0].Enabled = false;
            else
                contextMenuStrip2.Items[0].Enabled = true;
        }
        private void nOPSelectionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Regex r = new Regex(" |n");
            String[] lines = r.Split(richTextBox2.SelectedText);
            String nop = "";
            foreach (string l in lines)
            {
                if (l.Length < 2)
                {
                    continue;
                }

                if (Regex.IsMatch(l.Trim(), "^_.*"))
                {
                    nop += "n" + l.Trim();
                }
                else if (Regex.IsMatch(l.Trim(), aobregex))
                {
                    if (nop.Length > 0)
                        nop += "n";
                    nop += "//02 ";
                }
                else if (Regex.IsMatch(l.Trim(), nopregex))
                {
                    nop += "02 ";
                }
                else
                {
                    nop += "n" + l.Trim();
                }
            }
            richTextBox2.SelectedText = nop;  
        }
        #endregion

       

       
    }
}
Re: Sothink AoB finder Posted on: 12/02/2010 6:18am
Quote Post
Never let a computer tell me shit.
Quote from: "satanicgurrl"
well I hope you dont think I am stepping on your toes or anything, but I went ahead and made a knockoff with some of the features I had wanted.

http://www.forceprojectx.co.cc/services/rawdata

thanks for this. and also for fixing the nop selection thing



I use this AoB tool to make all the AoBs I post. Try the online version if you dont feel like downloading it.
"Obviously, windows are central to Windows. They are so important that they named the operating system after them. But what is a window?"