uTorrent 1.8.2 build 14458 with DHT patch
- Type:
- Applications > Windows
- Files:
- 3
- Size:
- 525.27 KiB (537881 Bytes)
- Tag(s):
- utorrent dht private patch
- Uploaded:
- 2009-04-14 18:10:38 GMT
- By:
- schoenewelt
- Seeders:
- 0
- Leechers:
- 1
- Comments
- 3
- Info Hash: E4EAF81600D69EE2A512FFACFECFFEDA451D607E
(Problems with magnets links are fixed by upgrading your torrent client!)
This patch removes the restrictions on torrents marked as private, allowing uTorrent to use DHT, Peer Exchange and Local Peer Discovery to look for new peers when it is normally not allowed. In its internal data structures, uTorrent uses four bits in one byte of data per torrent to record these settings. bit # 7 6 5 4 3 2 1 0 \ | | / | | | | not used | | | DHT enabled (default: 1) (set to 0) | | | | | private torrent | | | Peer Exchange enabled (default: 1) | Local Peer Discovery enabled (default: 1) When a torrent file is added, uTorrent checks the "info" section for an integer value named "private". If it's set to 1, it marks the private torrent bit in the byte shown above, which forces the other information in this byte to be ignored. This byte is also saved in the resume.dat file (a bencoded file that uTorrent uses to save its state) as an integer value named "dht". The patch works by storing the private torrent flag in bit 7 instead of bit 1 so that all the code in uTorrent that checks bit 1 to determine if this is a private torrent will always find that it isn't. However, it writes the "dht" value out to the resume.dat normally, so if you start an unpatched copy of uTorrent your private torrents will still be private. Here are the steps required to apply the patch; you will need UPX version 3.03 and a hex editor: 1. Decompress the uTorrent.exe file using the following command: upx -d uTorrent.exe 2. Open the uTorrent.exe file in a hex editor and change the following: position old bytes new bytes -------- ------------------------ ------------------------ 200 D0 FC 52F1 50 68 0C BB 45 00 E9 DA 4E 05 00 90 855B 02 80 BCD3 8A 4E 41 80 E1 0A E9 0D E5 04 00 90 5A1D0 00 00 00 00 00 00 00 00 8B C8 80 E1 80 C1 E9 06 00 00 00 00 00 00 00 00 0B C1 50 68 0C BB 45 00 00 00 00 00 00 00 00 00 E9 12 B1 FA FF 8B C8 80 00 00 00 00 00 00 00 00 E1 02 C0 E9 06 24 FD 0B 00 00 00 00 00 00 00 00 C1 8A 4E 41 80 E1 0A E9 00 00 00 00 DD 1A FB FF 3. The digital signature is now invalid. Remove it from the file by deleting everything after position 8E000. 4. Recompress the file using this command: upx --ultra-brute uTorrent.exe 5. This will produce a file of size 264704 bytes. The patch is now complete and should be identical to the file in this torrent.
File list not available. |
Sorry if this is a stupid question... do we need to follow the instructions on how to apply the patch if you have already done so and included the newly generated utorrent.exe in your torrent?
I don't understand why there are instructions on how to change the original file when it appears you have already done this?
Can anyone clear this up?
I don't understand why there are instructions on how to change the original file when it appears you have already done this?
Can anyone clear this up?
It's kind of a learning thing wombat45. Hey anonymous I was able to patch the original file just as you did. My question is how do you patch a newer version of utorrent? You can't use the same guide so what do you use? BTW nice post
This patch is specific to the particular build of uTorrent it's applied to as the code - at least the locations of - changes in each build, and there are relative jumps in the patch.
But the approach I used to make the patch was to un-UPX utorrent, load it into IDA Pro and look for the strings "private" and "dht", then follow the cross-references back to the code that uses them. From there it was clear to see how the private flag worked; I used some spare space at the end of the code segment to add some extra code to move the bits, and the functions were patched to jump to that code and back again. If you disassemble the patched and unpatched exes side by side you can see how this works.
Also see https://piratebayproxy.live/torrent/4859325, it's the same patch for the next build of utorrent.
But the approach I used to make the patch was to un-UPX utorrent, load it into IDA Pro and look for the strings "private" and "dht", then follow the cross-references back to the code that uses them. From there it was clear to see how the private flag worked; I used some spare space at the end of the code segment to add some extra code to move the bits, and the functions were patched to jump to that code and back again. If you disassemble the patched and unpatched exes side by side you can see how this works.
Also see https://piratebayproxy.live/torrent/4859325, it's the same patch for the next build of utorrent.
Comments