Gnutella Forums  

Go Back   Gnutella Forums > Current Gnutella Client Forums > LimeWire+WireShare (Cross-platform) > Open Discussion topics
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

Open Discussion topics Discuss the time of day, whatever you want to. This is the hangout area. If you have LimeWire problems, post them here too.


View Poll Results: What do you think of Ads ?
Thank Heavens CG1H3R0 showed us how to remove them 1 20.00%
They are extremely important to the limegroup, number one revenue maker 1 20.00%
I collect advert banners 0 0%
What adverts , I removed it myself 3 60.00%
Multiple Choice Poll. Voters: 5. You may not vote on this poll

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old December 22nd, 2001
Apprentice
 
Join Date: December 22nd, 2001
Posts: 9
cg1h3r0 is flying high
Default Say Goodbye to the ADS

How to Remove the Adverts from LimeWire (A step-by-step guide)

LimeWire is a cool gnutella clone in java , from version 1.6 to 2.0.2 they have added a lot of stability useful features, and something that is really annoying , an advert banner . As a practise on how to tweak java software, use the following steps to remove this "nerving, blinking pain in the butt" java control.

First of all you as the ambitioned future java hacker need the following tools:you can search for the actual download locations at google and google:
„h JAD , the Java Disassembler, use the -dis option for the opcodes, use without options for the source!
„h The gnu tools ,.ZIP and UNZIP
„h A good text editor (ultraedit or xemacs) with hex editing and search facility
„h A good book on the Java Virtual Machine or at least a list on jvm opcodes ( I used Java Virtual Machine from Matthias Kalle Dallheimer)
Step 1:
„h Unpack the Java Files from Limewire.jar with
unzip LimeWire.jar
Step 2:
„h Decompile them to source code (jad *.class) ,
Step 3:
„h Grep for the Tooltip of the shared files display " The number of files you are sharing ", you will find it in StatusLine.java
The corresponding code fragment is as follows:
public StatusLine()
{
super(new BorderLayout());
labelAvailable = true;
myCurrentPlayingFile = null;
currBeginIndex = -1;
myIDT = null;
fileToPlay = null;
iterations = 0;
myPlayer = new BasicPlayer(this);
myPlayThread = new PlayThread();
myPlayThread.start();
createConnectButtons();
sharingLabel = new JLabel(" ");
sharingLabel.setHorizontalAlignment(0);
sharingLabel.setToolTipText("The number of files you are sharing.");
setStatistics(0L, 0L, 0L, 0);
setDisconnected();
setBorder(BorderFactory.createLoweredBevelBorder() );
JPanel centerPanel = null;
JPanel leftPanel = null;
if(GUIMediator.shouldShowAds())
{
leftPanel = new JPanel(new FlowLayout(0, 0, 15));
centerPanel = new JPanel();
BoxLayout bl = new BoxLayout(centerPanel, 0);
} else
{
leftPanel = new JPanel(new FlowLayout(0));
centerPanel = new BoxPanel(0);
}
leftPanel.add(switchedPanel);
leftPanel.add(sharingLabel);
add(leftPanel, "West");
if(GUIMediator.shouldShowAds())
{
cbanner = new CBanner();
centerPanel.add(cbanner);
add(centerPanel, "Center");
}
if(!CommonUtils.isMacClassic())
{
JPanel mediaPanel = constructMediaPanel();
add(mediaPanel, "East");
myIDT = new InitialDisplayThread();
myIDT.start();
}
myInstance = this;
}
„h Nearby you will find the conditional statement for the ad display , our aim is to disable this function, therefore take care that it will be always false

Step 4:
„h Disassemble GUIMediator.java, take a look at the function:
public static boolean shouldShowAds()
{
return CommonUtils.isWindows() && SHOW_ADS;
}

„h We are getting nearer, what the hell is SHOW_ADS ?
„h It is a constant , at is set true
....
private static GUIMediator _instance = null;
private static boolean SHOW_ADS = true;
public static final int YES_OPTION = 101;
public static final int NO_OPTION = 102;
.....
„h We want to have it set to false, and have the adverts sent to hell

Step 5:
„h We have two possibilities to change the constants, the first is to alter the decompiled source code and recompile with SHOW_ADS set to false, this solution is risky, because a lot of characteristics a class loader (with additional context checks) might check are potentially changed , therefore we go for the alternative, and patch the classfile of GUIMediator.class
„h static boolean constants are always filled in the class static constructor, opcode iconst_0 means putting true on the stack, and iconst_1 means false, therefore we have to exchange these opcodes.

static
{
// 0 0:aconst_null
// 1 1utstatic #2 <Field GUIMediator _instance>
// 2 4:iconst_0
// 3 5utstatic #132 <Field boolean SHOW_ADS>


„h A look into the opcode map shows ,that we have to patch the following code sequence
„h change
($04, $B3, 0, $84) iconst_1, putstatic $0084
to
($03, $B3, 0, $84) iconst_0, putstatic $0084
„h Search for $04 $B3 $00 $73 in 1.8b, or for version 2.0.2 search for $04 $B3 $00 $84 and exchange the $04 by $03
„h The file can now be patched with the hex mode of ultraedit
„h For verification purposes decompile the patched class-file, it should now show, if it doesn't go back to step 1
....
private static GUIMediator _instance = null;
private static boolean SHOW_ADS = false ;///!!!!!!!!
public static final int YES_OPTION = 101;
public static final int NO_OPTION = 102;
.....

Step 6:
„h Now we have to get the patched GUIMediator.class back to the LimeWire.jar
„h Make a Backup-Copy of LimeWire.jar (does not apply to the brave guys!)
„h Now update the jar with

zip LimeWire.jar com/limegroup/gnutella/gui/GUIMediator.class


Step 7:
„h Now do some clean up and remove the unpacked class files to make sure that the java class loader gets the files from the jar and not from the unpacked directories under com/limegroup/....



Step 8:
„h Start LimeWire and enjoy the empty space where once the ads appeared.
„h Now you learned how to defend against unwanted actions on your system and take an closer look to the inner workings of the software that is consuming your cpu cycles.

Now Have fun with a real cool limewire


Your CGIH3R0 (cg1h3r0@gmx.li)

Reply With Quote
  #2 (permalink)  
Old December 24th, 2001
Crazy Scientist
 
Join Date: November 17th, 2001
Location: Belgium
Posts: 374
VTOLfreak is flying high
Default

That's on the core level , really yanking the heart of the ad code out .

If you just wanna neuter the ads so they don't bother you it's enough to just fiddle around with CyDoor .

Replace the existing file in /Windows/system/ with this one .
Then mark it "read-only" because CyDoor has a habbit of repairing and reinstalling itself .

CyDoor won't be out of your system but rendered useless .
Were the ads used to be in LW is now just a grey square .

Last edited by 6_pac; February 1st, 2008 at 12:05 AM.
Reply With Quote
  #3 (permalink)  
Old December 28th, 2001
Apprentice
 
Join Date: December 22nd, 2001
Posts: 9
cg1h3r0 is flying high
Default

Ask your doctor what is better, cutting the cancer cells out or taking a anti-cancer pill
Reply With Quote
  #4 (permalink)  
Old December 31st, 2001
crohrs's Avatar
LimeWire Developer
 
Join Date: May 30th, 2001
Posts: 166
crohrs is flying high
Default

Or you could also consider paying $6 to get the PRO version. That entitles you to six months of upgrades. More importantly it helps fund the developers at limewire.com.
Reply With Quote
  #5 (permalink)  
Old December 31st, 2001
Crazy Scientist
 
Join Date: November 17th, 2001
Location: Belgium
Posts: 374
VTOLfreak is flying high
Default

That last suggestion comes from one of those benefiting developers ofcourse .
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
I got SCAMMED! Goodbye $70!! synik_1979 Open Discussion topics 25 December 28th, 2006 09:52 PM
Goodbye Munchkin Peerless Chat - Open Topics - The Lounge 10 September 3rd, 2006 10:34 AM
Adios, adieu, goodbye get bent Hilander Open Discussion topics 6 August 19th, 2004 12:55 AM
Goodbye LimeWire hdfonts Open Discussion topics 4 May 21st, 2003 08:55 AM
goodbye LW and Gnutella bub2000 Open Discussion topics 3 January 18th, 2002 12:15 PM


All times are GMT -7. The time now is 12:54 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.