The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts

Overview

yGuard

Continous Integration for yGuard

yGuard is an open-source Java obfuscation tool. With yGuard it is easy as pie ( 🍰 ) to configure obfuscation through an extensive ant task.

yGuard is brought to you by yWorks GmbH, creator of the family of graph and diagram visualization frameworks yFiles and other fine products.

Obtaining yGuard

Recent yGuard releases can be downloaded from GitHub, or used from Maven central directly.

Previous releases may still be downloaded from the yWorks download center.

Usage

An online version of this documentation is available.

Additionally, yGuard is distributed with usage instructions. In your distribution, the docs folder contains informtion about yGuard. Browse docs/index.html to view the documentation.

Examples

yGuard comes with a exhaustive set of examples to cover many use cases. Please review the list of examples in the examples directory.

Users of yGuard

Below you will find a list of users relying on yGuard to keep their product secure.

If your product uses yGuard as well and you would like to add it to this list, please contact us.

Development

Building

To build yGuard you will need Java >= 7.

Download the repository and build yGuard using ./gradlew build.

The bundle version (for Ant users) is built using the assembleBundleDist task (e.g ./gradlew assembleBundleDist). The assembleBundleDist task comes with a optional parameter to copy documentation (-Pcopy-docs).

In order to build the documentation you will need mkdocs:

pip3 install mkdocs # or use a virtual environment if you prefer
mkdocs build

Using IntellIJ with yGuard

yGuard will be loaded without further ado from IntellIJ thanks to the Gradle integration. Opening the yGuard folder will set up Gradle and mark sources, tests and resources accordingly.

Comments
  • Yguard Obfuscation in a Spring Boot Project

    Yguard Obfuscation in a Spring Boot Project

    Let me ask you something. Have a an application that is written on spring boot. To obfuscate the jar via yguard, i have no success that i would like to exclude BOOT-INF/lib folder. Could you help me on it?

    Thanks a lot.

    question needs-information 
    opened by angelsinistanbul 16
  • Question: how do I make sure that packaged dependencies are not stripped out from the obfuscated jar?

    Question: how do I make sure that packaged dependencies are not stripped out from the obfuscated jar?

    First of all let me compliment you for this amazing tool.

    I have the following question: I am packaging my Java jar with Maven and the maven-assembly-plugin with the jar-with-dependencies configuration this makes it so that all the required dependencies are packaged as part of my final jar.

    When I try to obfuscate this jar using yGuard all the packed dependencies are stripped out and thus the resulting jar is not working properly: how can I address this?

    Based on my understanding of the documentation this should be managed with the externalclasses element and I have not been able to make it work correctly. Can I get some help with this? Below is my current configuration.

    Thank you.

    <target>
    	<property name="compile_classpath" refid="maven.compile.classpath"/>
    	<property name="runtime_classpath" refid="maven.runtime.classpath"/>
    	<property name="test_classpath" refid="maven.test.classpath"/>
    	<property name="plugin_classpath" refid="maven.plugin.classpath"/>
    
    	<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="${runtime_classpath}"/>
    	<yguard>
    		<!-- see the yGuard task documentation for information about the <yguard> element-->
    		<inoutpair in="${project.build.directory}/${project.build.finalName}.jar" out="${project.build.directory}/obfuscated.jar" resources="copy" />
    
    		<rename  mainclass="com.github.ilpersi.BHBot.BHBot" logfile="${basedir}/yguard.log.xml"
    				 replaceClassNameStrings="true">
    		</rename>
    		<externalclasses>
    			<pathelement path="${runtime_classpath}" />
    		</externalclasses>
    	</yguard>
    </target>
    
    needs-information 
    opened by ilpersi 12
  • JavaFX fxml support

    JavaFX fxml support

    After obsufiaction, my jar does not start due to an error: caused by: java.lang.ClassNotFoundException: com.example.Controller at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:920)

    Because the name of the old class remains in the fxml file.

    enhancement good first issue Hacktoberfest difficulty:medium 
    opened by meetinger 7
  • Allow subclasses to instantiate their own specialized implementations

    Allow subclasses to instantiate their own specialized implementations

    The emphasis of this commit is to be able to extend to provide our own custom ResourceAdjuster, along with custom attributes in the related Ant tasks.

    We have replaced the direct instantiation of key classes via the new operator with calls to protected methods that create the instances. We have made this change for Ant tasks and ResourceAdjuster-related classes.

    A couple classes that were package-private are now accessible for sub-classing.

    Furthermore, we have removed "final" from any class that may now have customized implementations.

    Within these classes, we have also exposed some private fields as "protected final".

    opened by ao-apps 6
  • Annotation @Obfuscation causes error: package com.yworks.util.annotation does not exist

    Annotation @Obfuscation causes error: package com.yworks.util.annotation does not exist

    Based on this documentation page: https://yworks.github.io/yGuard/task_documentation/#controlling-obfuscation-exclusion-with-annotations

    ...I am trying to exclude the main function of my class from Obfuscation using:

      @com.yworks.util.annotation.Obfuscation( exclude = true, applyToMembers = false)
      public static void main(String[] args) {
        try {
          new Start();
        } catch (SQLException e) {
          LOGGER.error(e, e);
        }
      }
    

    My IDE (Eclipse 2019-14) apparently believes that package path to be valid, since it does not show an error.

    However, when I try to Gradle build the project, I get the following error:

    ...\Start.java:22: error: package com.yworks.util.annotation does not exist
      @com.yworks.util.annotation.Obfuscation( exclude = true, applyToMembers = false)
                                 ^
    

    In my build.gradle, I only import the following from yGuard:

    	compile 'com.yworks:yguard:2.9.2'
    

    I don't know the dependency tree, or where I would get the com.yworks.util.annotation package from. I have tried various approaches, but most of them made it only worse.

    At best, I am doing something wrong, in which case I would be grateful if the documentation about how to use these annotations could be made clearer.

    At worst, something is broken right now and the @Obfuscation Annotation is not working.

    opened by KiraResari 6
  • Java 15 support?

    Java 15 support?

    Is this in the making or you guys wont support it? Also, Im using it on java 8 and it works great. But I wonder if there is a way we can set a renaming mask. Because what I have noticed, it is pretty easy to "remake" the code. Sometimes it doesnt even use the same renaming convention for 2 different variables. Eg, we have an "int value", and an "double valueD". Both of those could be changed to "int a" and "double a". but it instead changes to "double b".

    Am I doing something wrong?

            <inoutpair in="${temp.jar.no.obfs}/protocolsNoCrypt.jar" out="${temp.jar.obfs}/protocols.jar"/>
            <rename replaceClassNameStrings="true">
                <keep>
                    <class classes="none"
                           methods="none"
                           fields="none">
                        <patternset>
                            <include name="r.*"/>
                        </patternset>
                    </class>
                </keep>
                <adjust replaceName="true" replaceContent="true">
                    <include name="r/*"/>
                </adjust>
            </rename>
        </yguard>
        
        
        
        Ive also seen the following setting:
        
       <property name="obfuscation-prefix" value="x"/>
        
        But how do I use it properly?
    
    opened by marciox25 5
  • ERROR: Illegal char <:> in jar shrinking

    ERROR: Illegal char <:> in jar shrinking

    Hello,

    I'm using the latest version of yGuard to shrink and rename (obfuscate) a jar archive. I created an ant script (see the file "build.xml" in the attached zip - the user name in the paths is substituted with some asterisks) using the latest version of Eclipse with the JDK11 on Windows 10, but the shrink operation fails with the message reported in the object (see also the file "yshrinklog.xml"). It seems that yguard interprets uncorrectly the Windows path (as a Unix path? - see the prepended slash). For uploading problems the zip is protected with password "password".

    Any ideas?

    docs.zip Issue62.zip

    bug 
    opened by rob-daneel 5
  • Dependent files break after obuscation

    Dependent files break after obuscation

    I am in the situation where I have to obfuscate two related JARS: A main JAR containing the module and a library that contains components that are shared between multiple components. But thus far, everything I've tried has resulted in the module not finding the shared components.

    Here is one attempt:

    task yGuardObfuscate {
    	group 'yGuard'
    	description 'Obfuscates existing archives.'
    	dependsOn "installDist"
    
    	doLast {
    		ant.taskdef(
    			name: 'yguard',
    			classname: 'com.yworks.yguard.YGuardTask',
    				classpath: sourceSets.main.runtimeClasspath.asPath
    			)
    		
    		ant.yguard {
    			inoutpairs {
    				fileset(dir: "./build/install/module") {
    					include(name: "module*.jar")
    					include(name: "lib/project-lib*.jar")
    					exclude(name: "*_obf.jar")
    					exclude(name: "lib/*_obf.jar")
    				}
    			}
    			
    			rename(logFile: "./build/install/module/rename.log", annotationClass: "io.company.project.module.annotations.Obfuscation") {
    				property(name: "naming-scheme", value: "short")
    			}
    		}
    	}
    }
    

    This compiles. However, when I try to run it, I get a variation of the following error:

    Exception in thread "main" java.lang.NoClassDefFoundError: A/A/A/A/B
    [...]
    Caused by: java.lang.ClassNotFoundException: A.A.A.A.B
    

    I have by now also seen this in various variations, the most expressive one was when I manually renamed the project-lib_obf-file:

    Exception in thread "main" java.lang.NoClassDefFoundError: com/company/project/api/Settings
    [...]
    Caused by: java.lang.ClassNotFoundException: com/company/project/api/Settings
    

    ...with com.company.project.api being the namespace of the project-lib.

    I remember reading something about obfuscation not working with API. Is this a case like that? I really hope not, because the module uses, like, really many classes of the project-lib.

    In essence, I feel there should be a way to make this work in a way that the classes and references are obfuscated in a way that allows cross-referencing between them. However, I have read the documentation back and forth and can't figure out how to do this.

    Can someone please help me out with this?

    opened by KiraResari 5
  • invokeDynamic calls being dropped under some circumstances

    invokeDynamic calls being dropped under some circumstances

    Minimal example here. This is the java code:

    
    package minimalexample;
    
    import javax.swing.SwingUtilities;
    
    public class MinimalExample {
    
        boolean changeRequested = false;
    
        public static void main(String[] args) {
            new MinimalExample().runExample();
        }
        
        public void runExample() {
            
            synchronized(this) {
                MinimalExample that = this;
                if (changeRequested == false) {
                    SwingUtilities.invokeLater(() -> {
                        synchronized(that) {
                            changeRequested = false;
                        }
                    });
                    changeRequested = true;
                }
            }
            System.out.println(changeRequested);
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
            }
            System.out.println(changeRequested);
        }
    }
    
    

    which compiles and runs as expected.

    Running through yguard (first happened to me when I was using 2.6, then updated to 2.9.2, same result):

        <target name="yguard">
          <taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="lib/yguard.jar"/>
          <!-- the following can be adjusted to your needs -->
          <yguard>
            <inoutpair in="dist/MinimalExample.jar" out="dist/MinimalExampleYG.jar"/>
            <shrink logfile="dist/shrink.log"/>
            <rename mainclass="minimalexample.MinimalExample" logfile="dist/rename.log">
    	</rename>
          </yguard>
        </target>
    

    makes running the obfuscated file result in a crash, tested with oracle jdk 8.201 and openjdk 12.0.1:

    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.VerifyError: Instruction type does not match stack map
    Exception Details:
      Location:
        minimalexample/MinimalExample.A()V @23: aload_1
      Reason:
        Current frame's stack size doesn't match stackmap.
      Current Frame:
        bci: @23
        flags: { }
        locals: { 'minimalexample/MinimalExample', 'minimalexample/MinimalExample', 'minimalexample/MinimalExample' }
        stack: { 'minimalexample/MinimalExample' }
      Stackmap Frame:
    ....
    

    Investigating the class files with javap shows this in the original class file:

      public void runExample();
        Code:
           0: aload_0
           1: dup
           2: astore_1
           3: monitorenter
           4: aload_0
           5: astore_2
           6: aload_0
           7: getfield      #2                  // Field changeRequested:Z
          10: ifne          28
          13: aload_0
          14: aload_2
          15: invokedynamic #6,  0              // InvokeDynamic #0:run:(Lminimalexample/MinimalExample;Lminimalexample/MinimalExample;)Ljava/lang/Runnable;
          20: invokestatic  #7                  // Method javax/swing/SwingUtilities.invokeLater:(Ljava/lang/Runnable;)V
          23: aload_0
          24: iconst_1
          25: putfield      #2                  // Field changeRequested:Z
    

    and this obfuscated:

      public void A();
        Code:
           0: aload_0
           1: dup
           2: astore_1
           3: monitorenter
           4: aload_0
           5: astore_2
           6: aload_0
           7: getfield      #12                 // Field A:Z
          10: ifne          23
          13: aload_0
          14: aload_2
          15: invokestatic  #26                 // Method javax/swing/SwingUtilities.invokeLater:(Ljava/lang/Runnable;)V
          18: aload_0
          19: iconst_1
          20: putfield      #12                 // Field A:Z
    

    The invokeDynamic() line 15 is missing from the obfuscated file, causing invokeLater to be called with a wrong parameter stack.

    bug enhancement 
    opened by gbl 5
  • java.lang.NoClassDefFoundError: com/yworks/yguard/obf/NoSuchMappingException

    java.lang.NoClassDefFoundError: com/yworks/yguard/obf/NoSuchMappingException

    Hello,

    I've got a spring boot jar I'm attempting to obfuscate and I'm in the early stages. I've tried executing the obfuscation on the plain spring boot jar using version 2.9.1 (retrieved from maven) but I get the following stack trace:

    C:\Users\neilb\Documents\GitHub\datapaq5\build.xml:20: java.lang.NoClassDefFoundError: com/yworks/yguard/obf/NoSuchMappingException at com.yworks.yguard.YGuardTask.createRename(YGuardTask.java:157) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.tools.ant.IntrospectionHelper$CreateNestedCreator.create(IntrospectionHelper.java:1427) at org.apache.tools.ant.IntrospectionHelper$Creator.create(IntrospectionHelper.java:1343) at org.apache.tools.ant.UnknownElement.handleChild(UnknownElement.java:574) at org.apache.tools.ant.UnknownElement.handleChildren(UnknownElement.java:359) at org.apache.tools.ant.UnknownElement.configure(UnknownElement.java:205) at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:164) at org.apache.tools.ant.Task.perform(Task.java:351) at org.apache.tools.ant.Target.execute(Target.java:437) at org.apache.tools.ant.Target.performTasks(Target.java:458) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1406) at org.apache.tools.ant.Project.executeTarget(Project.java:1377) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1261) at org.apache.tools.ant.Main.runBuild(Main.java:857) at org.apache.tools.ant.Main.startAnt(Main.java:236) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:287) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112) Caused by: java.lang.ClassNotFoundException: com.yworks.yguard.obf.NoSuchMappingException at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1386) at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1335) at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1090) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 22 more

    However when running with 2.7.1; it works just fine. For now I'm using the 2.7.1 version because that is what is on the yguard webpage but I thought it might help to report the problem. Please see my build.xml below:

    `

    <target name="setup-properties">
    	<!-- setup properties -->
    	<echo>setup properties</echo>
    	<property name="target.dir" value="${basedir}/target" />
    	<property name="dp5.jar.file" value="etc/yguard/DP5-0.1.jar" />
    </target>
    
    
    <target name="obfuscate-dp5" depends="setup-properties">
    	<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="etc/yguard/yguard-2.7.1.jar" />
    	<yguard>
    		<inoutpair in="${dp5.jar.file}" out="${dp5.jar.file}.obs" />
    		<rename mainclass="com.ziath.datapaq5.Datapaq5Application" logfile="renamelog.xml">
    
    			<property name="language-conformity" value="illegal" />
    			<property name="naming-scheme" value="mix" />
    
    			<keep>
    				<!-- No obfuscate non ziath libraries -->
    				<class classes="private" methods="private" fields="private">
    					<patternset>
    						<include name="**" />
    						<exclude name="com.ziath.**" />
    					</patternset>
    				</class>
    			</keep>
    		</rename>
    	</yguard>
    	<copy file="${dp5.jar.file}" tofile="${dp5.jar.file}.original" />
    	<copy file="${dp5.jar.file}.obs" tofile="${dp5.jar.deploy.file}" />
    </target>
    
    ` I'm using JDK 11 and the jar is a spring boot one.

    Thanks.

    Cheers,

    Neil

    Cheers,

    Neil

    question needs-information 
    opened by neil-benn 5
  • <tasks> replaced by <target>

    replaced by

    In the newer version, the "tasks" tag in pom.xml has been replaced by "target". But replacing tasks by target directly is not working. Has anyone obfuscated their springboot project in Java 17 using yguard and maven ?

    opened by thyanmol 4
  • Remove Kotlin Metadata annotations

    Remove Kotlin Metadata annotations

    Kotlin adds a Metadata annotationto every class which includes the class name and all function names; mostly defeating the purpose of renaming. There in an unmeta plugin, but it would be better if it was incorporated into this one so didnt have to deal with both.

    enhancement needs-information 
    opened by ctadlock 1
  • Support for Java 18+?

    Support for Java 18+?

    Looks like MAJOR_VERSION is 0x3D (61) which is Java 17. https://github.com/yWorks/yGuard/blob/1f7f317f62804e4f1c910ca2410593a8bfee55be/src/main/java/com/yworks/yguard/obf/classfile/ClassConstants.java#L30

    https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers

    Error: java.io.IOException: Incompatible version number for class file format: 62.0

    opened by ctadlock 1
  • Spring-boot war obfuscation

    Spring-boot war obfuscation

    spring boot obfuscated war deletes springframework directory despite of using external library attribute. moreover, manifest.mf file contents are getting replaced despite of mentioning the opposite in adjust attribute.

    opened by thesherrinford 8
  • Improvement for

    Improvement for "replaceClassNameStrings" to optionally replace partial paths

    Currently replaceClassNameStrings only causes complete strings of fully qualified class names to be modified. Would it be possible to add an option to also modify strings containing paths starting at the root, but not ending in a class? So for example when you have the following replacement: System.out.println("com.mycompany.MyClass"); => System.out.println("b.c.d"); the new option would also cause the following: System.out.println("/com/mycompany/resources/" + filename); => System.out.println("/b/c/resources/" + filename); There should probably be a minimum of two path segments and separators should be configurable, like for replaceContent. If this won't be included in the near future, could you point me to the code that modifies the strings, so I can have a look at it?

    opened by bernhardf-ro 3
  • Improve replaceContent for resource files

    Improve replaceContent for resource files

    When using <adjust replaceContent="true">, yGuard can replace either path names or class names (if replaceContentSeparator="." is used as well), but not both in one file.

    As a result, content like e.g.

    <example>
      <class name="com.yworks.yguard.StringReplacer"/>
      <file name="com/yworks/yguard/StringReplacer.properties"/>
    </example>
    

    can be adjusted to

    <example>
      <class name="A.A.A.SR"/>
      <file name="com/yworks/yguard/StringReplacer.properties"/>
    </example>
    

    or

    <example>
      <class name="com.yworks.yguard.StringReplacer"/>
      <file name="A/A/A/SR.properties"/>
    </example>
    

    but not to

    <example>
      <class name="A.A.A.SR"/>
      <file name="A/A/A/SR.properties"/>
    </example>
    

    which is what you need in this case.

    enhancement difficulty:beginner 
    opened by thomasbehr 1
  • Improve record obfuscation

    Improve record obfuscation

    When compiling a record, the java compiler inserts bootstrap methods that handle equals/hashCode/toString. These bootstrap methods are passed a descriptor string identifying the record's components by name. yGuard replaces that descriptor string for the bootstrap method invocation with a remapped descriptor string. The value of the old descriptor string is kept in the constant pool to prevent breaking string literals in code that have the same value as the descriptor, e.g. suppose

    record MyRecord(int value) {
      String getName() {
       return "value";
      }
    }
    

    However, for most cases the descriptor string will be unique and should be removed to ensure all traces of the original component names are gone. This requires counting the references to string literals in code blocks.

    opened by thomasbehr 0
Releases(4.0.0)
Owner
yWorks GmbH
yWorks - the diagramming experts
yWorks GmbH
RealmeDirac - an open-source Android application written in java

RealmeDirac is an open-source Android application written in java. RealmeDirac is a feature introduced by realme & dirac in realmeUI for sound optimisation, trying to recreate same thing, this is scratch written app aiming to provide same features as realmeDirac..

psionicprjkt 4 Feb 21, 2022
An open source, modular alternative of sketchware. Create your own app in android using block programming like scratch!

OpenBlocks An open source, modular alternative of sketchware. Create your own app in android using block programming like scratch! What is OpenBlocks?

OpenBlocks 30 Dec 16, 2022
An open-source component of TabLight project "Base-API"

DataAddons is a library (or framework?) created for Minecraft providing comfortable abstractions making additions over already existing data, generally, it is anti-pattern ans YOU SHOULDN'T USE IT in normal programms.

XXR 3 Mar 8, 2022
A Java to iOS Objective-C translation tool and runtime.

J2ObjC: Java to Objective-C Translator and Runtime Project site: https://j2objc.org J2ObjC blog: https://j2objc.blogspot.com Questions and discussion:

Google 5.9k Dec 29, 2022
ThirdEye is an integrated tool for realtime monitoring of time series and interactive root-cause analysis.

ThirdEye is an integrated tool for realtime monitoring of time series and interactive root-cause analysis. It enables anyone inside an organization to collaborate on effective identification and analysis of deviations in business and system metrics. ThirdEye supports the entire workflow from anomaly detection, over root-cause analysis, to issue resolution and post-mortem reporting.

null 87 Oct 17, 2022
A simplified and multi-functional tool for spigot developers

A simplified and multi-functional tool for spigot developers. There are dozens of features you can use in it, and it is completely open source code. hCore supports all versions from 1.8.x to 1.18.2. Also you can find all these APIs usages from here.

Hakan Kargın 57 Jan 1, 2023
Helper tool to calculate the price for a given amount of users within a graduated pricing model.

Lithic Hi Lithic, This small piece of software is a coding exercise I asked some candidates to solve and is based on the pricing model of Atlassian pr

Stefan Antal 1 Feb 27, 2022
A tool to help Barcelonian people get various immigration-related appointments via the Cita previa process

NIEBot A tool to help Barcelonian people get various immigration-related appointments via the Cita previa process. Requirements A Windows or Linux PC.

Conor Rynne 49 Dec 10, 2022
A harness to build the source code from openjdk.java.net using Free Software tools and dependencies

A harness to build the source code from openjdk.java.net using Free Software tools and dependencies

IcedTea 2 Mar 5, 2022
A Parser That parses OpenAPI definitions in JSON or YAML format and Generates Pact files That contain HTTP request/response interactions by parsing Given Open API specifications

This is a Parser That parses OpenAPI definitions in JSON or YAML format and Generates Pact files That contain HTTP request/response interactions by parsing Given Open API specifications.

dev-rgupta 2 Mar 19, 2022
Cobaltstrike4.1 Source

CobaltstrikeSource Cobaltstrike4.1 Source 这是反编译后的Cobaltstrike4.1源码,修改了一点反编译后的bug,teamserver与agressor均能正常调试使用,若想自己修改调试那个文件只需把该文件复制到src下即可。 这是魔改Cobaltst

rooster 623 Sep 7, 2021
This repository holds the source code for TML (Tecknix Mod Loader)'s API.

This repository contains the modding API not the MDK (Mod Development Kit). This repository will not give you the ability to mod Tecknix Client but you can contribute to the repository if you have events you would like to add.

Tecknix Client 6 Aug 1, 2022
Sauron, the all seeing eye! It is a service to generate automated reports and track migrations, changes and dependency versions for backend services also report on known CVE and security issues.

SAURON - VERSION AND DEPLOYMENT TRACKER DESCRIPTION Sauron, the all seeing eye! It is a service to generate automated reports and track migrations, ch

FREENOWTech 20 Oct 31, 2022
A Local implementation of a java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

A Local implementation of java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

Isaac Barry 1 Feb 12, 2022
Java Notes & Codes for better understanding and it contains all the funtions with examples and also added Cheat Sheet for Revision

Java Notes & Codes for better understanding and it contains all the funtions with examples and also added Cheat Sheet for Revision...

Ujjawal Singh 1 Nov 30, 2022
A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values

A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values The calculator also does percentages, square roots and squares

Andrey Fabricio 1 Jan 31, 2022
Tripoli imports raw mass spectrometer data files and supports interactive review and archiving of isotopic data.

Tripoli imports raw mass spectrometer data files and supports interactive review and archiving of isotopic data. Tripoli facilitates visualization of temporal trends and scatter during measurement, statistically rigorous filtering of data, and calculation of statistical parameters.

CIRDLES 7 Dec 15, 2022
Automatically discover and tag PII data across BigQuery tables and apply column-level access controls based on confidentiality level.

Automatically discover and tag PII data across BigQuery tables and apply column-level access controls based on confidentiality level.

Google Cloud Platform 18 Dec 29, 2022
Make Slack and Facebook Bots in Java.

JBot Make bots in Java. JBot is a java framework (inspired by Howdyai's Botkit) to make Slack and Facebook bots in minutes. It provides all the boiler

Ram 1.2k Dec 18, 2022