TonyWeb: My Feeble Attempts to Show Defiance

I may be devoid of shame but in the end who makes MONEY? It is I.

THAT is what matters. Shame, honor and fresh air all go out through the window in the end and what matters is who is left holding the CASH! πŸ˜€

And how much CASH do I hold in my hand? WADS and WADS of cold cash that I get from selling cracked software that I gather from B4A and various other forums. πŸ˜€ πŸ˜€ πŸ˜€

I made at least 50 accounts when the registration was opened up at B4A recently. Just use MULTILOGIN SOFTWARE to create the accounts. I did the same. Through MULTILOGIN you can create any number of accounts at any forum and the admins like CHALLENGER would just be left scratching their heads like fools in confusion! πŸ˜€

What a HUGE fool that Challenger is, thinking that he could prevent duplicate accounts!

Anyone who wants an account at B4A can contact me and pay me $1. I will provide you the login details. Payments by BTC only please!

These days you can see me post some useless stuff on various forums. Now that de! recently got shamed in public for claiming credits for cracking a popular software while in reality it was a GROUP EFFORT by various expert reverse engineers from the TIRA forum, I, tonyweb am just venting out my frustration in a vain attempt to show to the world that I am “not afraid” and that I “still continue to” post content, even though the content I am posting may be worse than utter trash!

Many other forums booted me out in a very shameful way and showed me out their door πŸ™

I am only able to fool people like Challenger, Especialista, JonArbuckle and a few others who seem to be rather fascinated by the useless trash that I post in their forums.

Shameless Lies by User “de” about “UFS Explorer” Target

In Board4All, user de! started a series a lies YET AGAIN claiming to have reversed the target “UFS Explorer” all by herself, when in truth it was done as a GROUP EFFORT.

Interesting that she started the claim that she already reversed this app in the past all by herself, just when another user claimed to have reversed it all by themselves without begging de! for help!

Just another pathetic attempt on the part of de! to salvage her long lost pride… πŸ˜€ Truly shameless!

PeterPunk Screwed: Shellfire VPN for Sale

If you want to know the details how I ROYALLY put down and screwed PeterPunk (a.k.a PeterPonk) by teaching him how to reverse and crack Java app Shellfire VPN, you can head over the link mentioned below.

By the way, although I blew off my big mouth several times in that thread by posting without thinking and understanding the basics of reversing first, I am happy to say that I was able to screw him well in public πŸ˜€

Shellfire VPN is now available for sale (cracked by me) here:

Tonyweb: Trying My Traps as Usual, with Meaculpa+ (Gregory Morse)

Busy helping out the admins of B4All lately and licking their arses in exchange for for them letting me keep my position in the forum.

Presently I am just trying to make posts in cretain restricted areas of the forum so that the admins can “smoke out” the users who are able to view the content in those sections when they “leak” it to the other forums.

But of course, the smarter guys would not leak the content from the private sections of the forum immediately but would rather give a long time gap before posting ALL of the content from the sections all at once πŸ˜€

Meanwhile our friend, Gregory Morse (Abdul Muid) , aka chants aka collins aka many other nicks now started out with another avatar: Meaculpa+ πŸ˜€

Neotys NetLoad v7.11.x (For Sale)

Please read this first if you did not do so already:


Coming to the Neotys topic. Now, Neotys NeoLoad v7.11 is available for sale. You can pay me $50 by bitcoin and I will make it available to you.

Neotys NeoLoad v7.11

Of course, I stole the technique to crack it from another forum where I pretended to be a Team Member until I could get hold of all their techniques and tools, but who the hell cares?!

Here I am the person making money selling the cracks!

Try the most automated performance testing platform for the Enterprise

No credit card required. Up and running in 5 minutes.

  • Support what you test: web, mobile, APIs, SAP, Citrix
  • Integrations with CI servers for Agile and DevOps, APM tools for code-level diagnostics, and functional testing tools for end-user experience metrics
  • Code-less for faster design of complex tests
  • As code for tests within automated pipelines
  • Script maintenance in as little as 1/10 of the original design time
  • Actionable insights from high-level dashboards and detailed metrics

Gartner Peer Insights Awarded

Home Page:


My profile here:

Tonyweb: Zeus from Board4All Finally Slams Me

Finally, Zeus from Board4All decided to beat the sh*t out of me in his latest announcement yesterday:

Challenger and Markat (Kate) were not spared either, although they are a part of his real-life family as I see πŸ™

In any case, you all know how to find me. Instead of emailing me, in future you can find me directly at this forum where I can sell you my porn and cracked software:

Am I Tonyweb, A Snake?

I see that a new article has been posted about me:

I am indeed growing famous day by day! πŸ˜€

Yeah so EVERYTHING in that article is true. SO WHAT???

It is I, Tonyweb who is raking in the big money. Why the F*CK should I crack for free? And what is wrong in selling porn? Selling porn is a BIG business, by the way!

I consider that article a good advertisement for me!

As always…

StrategyQuant X Build 134 by Tonyweb for Sale

You can either crack it yourself or you can buy from me.

How to crack it:

Three jars are decrypted from native code and main loader class takes control.

The java loader starts decrypting the crypted jar in relative path:


and one of the interesting steps for us is the checkLicense one


private void checkLicense() {
        try {
            SQApp.Log.debug("Verifying license.");
            SQApp.Log.debug("Verifying license. Step 2");
            final SQLicenser instance = SQLicenser.getInstance();
            instance.setLicenceFilePath(MainApp.getDataPath() + "licenceFile.lic");
            SQApp.Log.debug("Verifying license. Step 3");
            try {
                if (instance.licenseFileExists()) {
                    SQApp.Log.debug("Verifying license. Step 4");
            catch (Exception ex) {
                SQApp.Log.error("License verification failed. Exc. ", (Throwable)ex);
            if (this.isRunInConsole()) {
                SQApp.Log.debug("Verifying license. Step 5 CLI");
                if (!SQLicenser.getInstance().verified()) {
                    SQApp.Log.debug("Verifying license. Step 6 CLI");
                    final String license = LicenseDb.getLicense();
                    if (license != null && !license.isEmpty()) {
                        SQApp.Log.debug("Verifying license. Step 7 CLI");
            else {
                SQApp.Log.debug("Verifying license. Step 5");
                while (BrowserGUI.getInstance() == null) {
          "Waiting for internal browser initialization");
      "License dialog initing");
                final String license2 = LicenseDb.getLicense();
                if (license2 != null && !license2.isEmpty()) {
                SQApp.Log.debug("Verifying license. Step 6");
                if (!SQLicenser.getInstance().verified()) {
                    SQApp.Log.debug("Verifying license. Step 7");
                    SQApp.Log.debug("Verifying license. Step 8");
                    if (instance.isItTrial() || instance.isItPartnerTrial() || instance.isItFullMbg()) {
                    else {
            if (!SQLicenser.getInstance().verified()) {
      "Missing license.");
            SQApp.Log.debug("License was successfully verified.");
        catch (Exception ex2) {
            SQApp.Log.error("Failed to check license. Exc. ", (Throwable)ex2);

You can start tracing from here to follow what’s happening:

String references are not easy to deal with because of the way Go arranges them (i.e. concatenated in blocks).

private SQLicenseXml _verifyLicenseOnServer(final String s, final String s2, final String s3, final boolean b) throws SQLicenseException {
        try {
            final SQLicenseXml sqLicenseXml = new SQLicenseXml();
            sqLicenseXml.type = 5;
            String str = URLEncoder.encode("productid", "UTF-8") + "=" + URLEncoder.encode(this.product, "UTF-8") + "&" + URLEncoder.encode("mac", "UTF-8") + "=" + URLEncoder.encode(s, "UTF-8") + "&" + URLEncoder.encode("dsn", "UTF-8") + "=" + URLEncoder.encode(s2, "UTF-8") + "&" + URLEncoder.encode("license", "UTF-8") + "=" + URLEncoder.encode(s3, "UTF-8") + "&" + URLEncoder.encode("resellerid", "UTF-8") + "=" + URLEncoder.encode(this.reseller, "UTF-8") + "&" + URLEncoder.encode("uniqid", "UTF-8") + "=" + URLEncoder.encode(this.uniqID, "UTF-8") + "&" + URLEncoder.encode("hardwareid", "UTF-8") + "=" + URLEncoder.encode(this.hardwareid, "UTF-8") + "&" + URLEncoder.encode("newhardwareid", "UTF-8") + "=" + URLEncoder.encode(this.newhardwareid, "UTF-8") + "&" + URLEncoder.encode("dateid", "UTF-8") + "=" + URLEncoder.encode(this.dateid + "", "UTF-8") + "&" + URLEncoder.encode("os", "UTF-8") + "=" + URLEncoder.encode(HardwareInfo.getOSKey() + "", "UTF-8");
            if (b) {
                str = str + "&" + URLEncoder.encode("offline", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8");
            if (this.builds.containsKey(this.product)) {
                str = str + "&" + URLEncoder.encode("build", "UTF-8") + "=" + this.builds.get(this.product);
            final String string = str + "&" + URLEncoder.encode("ival", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8");
            boolean b2 = false;
            final ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
            final ArrayList<Future<String>> list = new ArrayList<Future<String>>();
            list.add(fixedThreadPool.<String>submit((Callable<String>)new SQHttpClient("", string)));
            list.add(fixedThreadPool.<String>submit((Callable<String>)new SQHttpClient("", string)));
            String xml = null;
            String s4 = null;
            final Iterator<Object> iterator = list.iterator();
            while (iterator.hasNext()) {
                final String s5 = (String)((Future<String>);
                if (s5 != null) {
                    b2 = true;
                    final String[] split = s5.split("\n");
                    if (split.length != 2) {
                    xml = new String(Base64.decodeBase64(split[0]), "UTF-8");
                    s4 = split[1];
                    if (!xml.contains("<error>")) {
            if (!b2) {
                throw new SQLicenseException(2);
            if (xml == null || s4 == null) {
                throw new SQLicenseException(9);
            sqLicenseXml.hash = Base64.decodeBase64(s4);
            sqLicenseXml.xml = xml;
            return sqLicenseXml;
        catch (SQLicenseException ex) {
            throw ex;
        catch (Exception ex2) {
            SQLicenser.Log.error("Exc.", (Throwable)ex2);
            throw new SQLicenseException(20);

Natural Adabas – CE

The license consists in two xml files, natCE83.xml and ndvCE83.xml .
The tag called LicenseKey that holds a MD5 file checksum and the tag ExpirationDate the date limit.

The algorithm is very simple:Replace all values of the LicenseKey tag with 32 byte (20 hex).Calculate de MD5Loop every byte doing AND & 15 after second oneAnd SHR plus AND with >> 4 & 15restore the Tag with the new value
This license code is inside saglic-ALL-Any.jar, class com.softwareag.common.lic.SagLic and the function is getSignedCertificate
    protected String getSignedCertificate(String certificateString) throws SagLicException, UnsupportedEncodingException {
        String methodName = "getSignedCertificate";
        String tagLicenseKey = "<LicenseKey>";
        int keyStartPos;
        if ((keyStartPos = SagUtilitiesStrings.indexStrInStr(certificateString, tagLicenseKey, 0, true)) < 0) {
            throw new SagLicException(2, methodName);
        } else {
            byte[] newCertificateBytes = certificateString.getBytes("US-ASCII");

            int i;
            for(i = keyStartPos + tagLicenseKey.length(); i < 32 + keyStartPos + tagLicenseKey.length(); ++i) {
                newCertificateBytes[i] = 32;

            SagLicMd5 sagLicMd5 = new SagLicMd5();

            for(i = 0; i < newCertificateBytes.length; ++i) {
                if (SagUtilitiesStrings.isHashableChar(newCertificateBytes[i])) {
                    sagLicMd5.update(newCertificateBytes, i, 1);

            byte[] digestKey = sagLicMd5.digest();
            i = keyStartPos + tagLicenseKey.length();

            for(int j = 0; i < 32 + keyStartPos + tagLicenseKey.length(); ++j) {
                newCertificateBytes[i] = sHex[digestKey[j] >> 4 & 15];
                newCertificateBytes[i + 1] = sHex[digestKey[j] & 15];
                i += 2;

            String newCertificateString = new String(newCertificateBytes, "US-ASCII");
            return newCertificateString;

The license files and code can be found here:

The installation file can be found here: