Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ins't the source still contained in the compiled war? #459

Open
thebravoman opened this issue Sep 1, 2019 · 0 comments
Open

Ins't the source still contained in the compiled war? #459

thebravoman opened this issue Sep 1, 2019 · 0 comments

Comments

@thebravoman
Copy link

thebravoman commented Sep 1, 2019

Hi,
I am doing

warble compiled war

As a result I have a war with a .rb and .class file

The .rb contains

load __FILE__.sub(/.rb$/, '.class')

and there is a .class file.

When decompiling the .class file I see

// 
// Decompiled by Procyon v0.5.36
// 

package lib.liquid_drops;

import org.jruby.ir.IRScope;
import org.jruby.ParseResult;
import org.jruby.ir.runtime.IRRuntimeHelpers;
import org.jruby.Ruby;

public class user_drop
{
    private static final String script_ir;
    
    static {
        script_ir = new StringBuilder().append("\u0000\u0000\u0000\u0001\u0000\u0000\ts\u00ff\u00ff\u00ff\u00ff\u0007\b\u0013t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000D\u0000-t\u0000\u0003\u0001_\u0000(t\u0000\u0003\fE\u0001\u00ff\u00ff\u00ff\u00ff\u00ff\u001dlib/liquid_drops/user_drop.rb\u0000\b\u0013t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000D\u0007;t\u0000\u0003\u0006Liquid\bUS-ASCIIsf<t\u0000\u0004t\u0000\u0003\u0004Drop\bUS-ASCIItt.t\u0000\u0005\u0002_\u0000t\u0000\u0004D1E\u0002\u00ff\u00ff\u00ff\u00ff\u00ff\u001dlib/liquid_drops/user_drop.rb1(t\u0000\u0005\u001cE\u0001\u00ff\u00ff\u00ff\u00ff\u00ff\u001dlib/liquid_drops/user_drop.rb\u0007\b\u0013t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000D\b0\u0003D\r0\u0004D\u00110\u0005D\u00150\u0006D\u00190\u0007D\u001d0\bD!0\tD%0\nD)0\u000bD-0\fD0E\u0002\u00ff\u00ff\u00ff\u00ff\u00ff\u001dlib/liquid_drops/user_drop.rb0(:\u000funsubscribe_url\bUS-ASCII\t\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0001\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ff\tl\u0004user\bUS-ASCII\u0000\u0000D\tCS\u0005@user\bUS-ASCIIl\u0004user\bUS-ASCII\u0000(l\u0004user\bUS-ASCII\u0000\t\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD\u000e>t\u0000\u0003S\u0005@user\bUS-ASCII\"\u0000\u0002id\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004(t\u0000\u0004\n\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD\u0012>t\u0000\u0003S\u0005@user\bUS-ASCII\"\u0000\u0004data\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004\"\u0000\nemail_name\bUS-ASCIIt\u0000\u0004\u0000t\u0000\u0005(t\u0000\u0005\u001b\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD\u0016>t\u0000\u0003S\u0005@user\bUS-ASCII\u0004L\u0003LBL\u0001t\u0000\u0003\"\u0000\rsubscriptions\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004\u0004L\u0003LBL\u0001t\u0000\u0004\"\u0000\u0006active\bUS-ASCIIt\u0000\u0004\u0000t\u0000\u0005\u0004L\u0003LBL\u0001t\u0000\u0005\"\u0000\u0005first\bUS-ASCIIt\u0000\u0005\u0000t\u0000\u0006\u0004L\u0003LBL\u0001t\u0000\u0006\"\u0000\u0010next_period_date\bUS-ASCIIt\u0000\u0006\u0000t\u0000\u0007\u0004L\u0003LBL\u0001t\u0000\u0007St\u0000\t'z\b%d %B %Y\u0005UTF-8\u0010\u001dlib/liquid_drops/user_drop.rb\u0016\u001f\u0000\bstrftime\bUS-ASCIIt\u0000\u0007\u0001t\u0000\tt\u0000\b\u0001L\u0003LBL\u00025L\u0003LBL\u0001St\u0000\bN5L\u0003LBL\u0002\u0005L\u0003LBL\u0000t\u0000\bSt\u0000\n'z\tcancelled\u0005UTF-8\u0010\u001dlib/liquid_drops/user_drop.rb\u0016St\u0000\bt\u0000\n5L\u0003LBL\u0000(t\u0000\b\r\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD\u001a;t\u0000\u0003\u000bLiquidDrops\bUS-ASCIIsf<t\u0000\u0004t\u0000\u0003\u000bAddressDrop\bUS-ASCIItt>t\u0000\u0006S\u0005@user\bUS-ASCII\"\u0000\taddresses\bUS-ASCIIt\u0000\u0006\u0000t\u0000\u0007\"\u0000\u0005first\bUS-ASCIIt\u0000\u0007\u0000t\u0000\b\u001f\u0000\u0003new\bUS-ASCIIt\u0000\u0004\u0001t\u0000\bt\u0000\u0005(t\u0000\u0005\r\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD\u001e;t\u0000\u0003\u0005Rails\bUS-ASCIIsf\"\u0000\u000bapplication\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004\"\u0000\u0006routes\bUS-ASCIIt\u0000\u0004\u0000t\u0000\u0005\"\u0000\u000burl_helpers\bUS-ASCIIt\u0000\u0005\u0000t\u0000\u0006St\u0000\b'z\u0005plan2\u0005UTF-8\u0010\u001dlib/liquid_drops/user_drop.rb\u001e\u001f\u0000\u0016subscriptions_edit_url\bUS-ASCIIt\u0000\u0006\u0001{\u0001:\bnew_plan\bUS-ASCIIt\u0000\btt\u0000\u0007(t\u0000\u0007\r\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD\";t\u0000\u0003\u0005Rails\bUS-ASCIIsf\"\u0000\u000bapplication\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004\"\u0000\u0006routes\bUS-ASCIIt\u0000\u0004\u0000t\u0000\u0005\"\u0000\u000burl_helpers\bUS-ASCIIt\u0000\u0005\u0000t\u0000\u0006St\u0000\b'z\u0005plan4\u0005UTF-8\u0010\u001dlib/liquid_drops/user_drop.rb\"\u001f\u0000\u0016subscriptions_edit_url\bUS-ASCIIt\u0000\u0006\u0001{\u0001:\bnew_plan\bUS-ASCIIt\u0000\btt\u0000\u0007(t\u0000\u0007\r\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD&;t\u0000\u0003\u0005Rails\bUS-ASCIIsf\"\u0000\u000bapplication\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004\"\u0000\u0006routes\bUS-ASCIIt\u0000\u0004\u0000t\u0000\u0005\"\u0000\u000burl_helpers\bUS-ASCIIt\u0000\u0005\u0000t\u0000\u0006St\u0000\b'z\u0005plan3\u0005UTF-8\u0010\u001dlib/liquid_drops/user_drop.rb&\u001f\u0000\u0016subscriptions_edit_url\bUS-ASCIIt\u0000\u0006\u0001{\u0001:\bnew_plan\bUS-ASCIIt\u0000\btt\u0000\u0007(t\u0000\u0007\f\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD*;t\u0000\u0003\u0005Rails\bUS-ASCIIsf\"\u0000\u000bapplication\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004\"\u0000\u0006routes\bUS-ASCIIt\u0000\u0004\u0000t\u0000\u0005\"\u0000\u000burl_helpers\bUS-ASCIIt\u0000\u0005\u0000t\u0000\u0006\"\u0000\u0010edit_profile_url\bUS-ASCIIt\u0000\u0006\u0000t\u0000\u0007(t\u0000\u0007\u000e\b\u0011t\u0000\u0000St\u0006\u0001sSt\u0005\u0002_\u0000P\u0000\u0000ff\u00ff\u00ff\u00ff\u00ff\u00ffD.;t\u0000\u0003\u0005Rails\bUS-ASCIIsf\"\u0000\u000bapplication\bUS-ASCIIt\u0000\u0003\u0000t\u0000\u0004\"\u0000\u0006routes\bUS-ASCIIt\u0000\u0004\u0000t\u0000\u0005\"\u0000\u000burl_helpers\bUS-ASCIIt\u0000\u0005\u0000t\u0000\u0006>t\u0000\bS\u0005@user\bUS-ASCII\"\u0000\u0011unsubscribe_token\bUS-ASCIIt\u0000\b\u0000t\u0000\t\u001f\u0000\u000funsubscribe_url\bUS-ASCIIt\u0000\u0006\u0001{\u0001:\u0005token\bUS-ASCIIt\u0000\ttt\u0000\u0007(t\u0000\u0007\r\u0007\u0000\u0004\u0000\u001dlib/liquid_drops/user_drop.rb\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\f\u0004\u0000\u0006\u0000\u000bLiquidDrops\bUS-ASCII\u0000\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000*\u0005\u0007\u0003\u0000\bUserDrop\bUS-ASCII\u0001\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0000\u00c6\u0002\b\u0003\u0000\ninitialize\bUS-ASCII\u0002\u0000\u0001\u0004user\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u00ff\u0001\u0004user\bUS-ASCII\u0000\u00ff\u0000\u0000\u0001h\u0002\r\u0005\u0000\u0002id\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0001\u00c9\u0002\u0011\u0006\u0000\nemail_name\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0002\u0013\u0002\u0015\u000b\u0003\u0010next_period_date\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0002|\u0002\u0019\t\u0000\u0007address\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0004\u0012\u0002\u001d\t\u0000\tplan2_url\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0004\u00cd\u0002!\t\u0000\tplan4_url\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0005\u00cc\u0002%\t\u0000\tplan3_url\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0006\u00cb\u0002)\b\u0000\u0010edit_profile_url\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\u0007\u00ca\u0002-\n\u0000\u000funsubscribe_url\bUS-ASCII\u0002\u0000\u0000\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00ff\u0000\u00ff\u0000\u0000\bx").toString();
    }
    
    public static void main(final String[] array) {
        final Ruby instance = Ruby.newInstance();
        instance.runInterpreter((ParseResult)IRRuntimeHelpers.decodeScopeFromBytes(instance, user_drop.script_ir.getBytes("ISO-8859-1"), "lib/liquid_drops/user_drop.rb"));
    }
    
    public static IRScope loadIR(final Ruby ruby, final String s) {
        return IRRuntimeHelpers.decodeScopeFromBytes(ruby, user_drop.script_ir.getBytes("ISO-8859-1"), s);

This Java class has string which looks like the .rb content. So it should be possible to get the .rb content from this script_ir.

Am I missing something. Why is the .rb script contained in the .class file. Wouldn't this make it possible to just automatically return to .rb from the .class file?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant