EMS SQL Manager for PostgreSQL v6.3.2.55531 for Sale

Please check this out first:

Team-IRA back with a bang

EMS SQL Manager for PostgreSQL is a high performance tool for PostgreSQL database administration and development. It works with any PostgreSQL versions up to the newest one and supports the latest PostgreSQL features including exclusion constrains, β€˜when’ clause of triggers, functions returning table, and others. SQL Manager for PostgreSQL offers plenty of powerful database tools such as Visual Database Designer to create PostgreSQL database in few clicks, Visual Query Builder to build complicated PostgreSQL queries, powerful BLOB editor and many more useful features for efficient PostgreSQL administration. SQL Manager for PostgreSQL has a state-of-the-art graphical user interface with well-described wizard system, so clear in use that even a newbie will not be confused with it.





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: 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) {
                    SQApp.Log.info("Waiting for internal browser initialization");
                SQApp.Log.info("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()) {
                SQApp.Log.info("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("https://api.strategyquant.com/licensechecksqx", string)));
            list.add(fixedThreadPool.<String>submit((Callable<String>)new SQHttpClient("https://api2.strategyquant.com/licensechecksqx", string)));
            String xml = null;
            String s4 = null;
            final Iterator<Object> iterator = list.iterator();
            while (iterator.hasNext()) {
                final String s5 = (String)((Future<String>)iterator.next()).get();
                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 DVD_Version_NAT_8. installation file can be found here:


Dongle Decoded by Tonyweb

Visit My New Domain:


License info: (Original, Coded)


License Info Decoded by Tonyweb:

system.account-id= removed not for public eyes
system.api-key= removed not for public eyes
system.api-secret= removed not for public eyes
system.token= removed from public eyes
system.product-name=PhotoPRINT Server 12 AW Cloud Edition

Contact me for dongle and software ($50):

DBISAM 4.49B5 for Delphi 10.4.1 Client and Server Database and Components

DBISAM 4.49B5 for Delphi 10.4.1 Client and Server Database and Components

DBISAM 4.49B5 for Delphi 10.4.1 Client and Server Database and Components

DBISAM is the standard for replacing the BDE in Delphi or C++Builder applications. It has has been deployed to thousands of locations around the world, and can be branded so that no one even knows that DBISAM is being used. It is licensed per-developer, and includes royalty-free distribution. License management isn’t required at all, and the money that you used to pay to the database engine vendor is now your profit to keep.

You don’t need to use a feature-crippled “free” product in order to avoid licensing fees anymore. With Elevate Software, you are backed by a company that has over a decade of experience in highly-distributed and pre-packaged database application software.

Are you wasting money on support calls caused by the BDE not working properly with newer operating systems, or just not working on at all ?

DBISAM is designed to be included in a pre-packaged database application and can be installed very quickly and easily. The DBISAM Database Server is a single EXE (~1.8MB), only requires a single INI text file for configuration, and can be run as an application or Windows service. Source code to the DBISAM Database Server is included with every purchase, so it can be customized and re-branded, if necessary. The DBISAM client-side code can be compiled directly into Delphi and C++Builder applications. It is also available as an ODBC Driver in the form of a single DLL (~1.5MB) for applications that can use ODBC for data access. DBISAM client code can also transparently switch between local, single-user and client/server, multi-user usage.

DBISAM can automatically create all necessary files when they are needed. DBISAM provides reverse-engineering facilities that allow you to easily create creation SQL scripts and Delphi/C++Builder code that can be run during installation to transparently create any necessary tables and indexes.

Once installed, DBISAM is not fragile and cannot be made inoperable by another application’s installation process. Many database engines are extremely sensitive to configuration changes and require constant attention by an administrator.

Are you ready to start on a new path to success ?

DBISAM has been used in retail POS, hospital management, physican and dentist practice management, tax preparation, payroll service, government and public court system management, and web site applications, just to name a few. These applications require constant up-time and consistent performance in order for the application vendor to be successful. DBISAM can help bring the same type of success to your database application.

Get it on HERE itself (email me) OR Get it here: