jabel
aegis4j
jabel | aegis4j | |
---|---|---|
9 | 8 | |
790 | 14 | |
- | - | |
3.5 | 4.5 | |
3 months ago | over 2 years ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jabel
-
What Are Senders Good For, Anyway?
Java has things like Jabel that let you use modern Java syntax and compile down to Java 8 for compatibility reasons.
https://github.com/bsideup/jabel
This is useful commercially, but also nice when building Minecraft mods for older versions of Minecraft.
-
How to use different Java versions for src/main/java and src/test/java in Maven
As for Java bytecode, you assume the differences are significant while in reality, they are not, as explained by the Jabel project:
-
What can I do with Java 1.4?
(Before realizing it'd already been done)
-
What's new in Java 18 for us, developers ?
If you want to use new language features (pattern matching, string templates, records etc.) then I highly recommend to take a look at https://github.com/bsideup/jabel
- Minecraft 1.18 Pre-Release 2: Minecraft 1.18 will require Java 17
-
What version should new Java libraries be written in?
I've never heard of somebody sticking to 9 or 10 as their primary JDK. AFAIK most people who could update waited for the 11 LTS. The rest of us are just stuck on 8. But we have some nice tricks.
-
Is it possible to any jre under 16 to recognise class ver 60 ?
https://github.com/bsideup/jabel - lets you use new Java syntax, because things like pattern matching are just syntatic sugar and dont change the class file specification
-
Eclipse Compiler supports -source 16 -target 8
I've found about the Jabel that tried to enable this feature in the Javac compiler.
- Are there byte code differences between different Java releases?
aegis4j
-
What's new in Java 18 for us, developers ?
The guys at Oracle have made this point on this forum quite often, but it never really hit home for me personally until the recent log4j vulnerability made me more interested in the topic and the available mitigation options (see https://github.com/gredler/aegis4j/).
-
CVE-2021-44832: New Log4j 2 vulnerability
If you've been impacted by these log4j vulnerabilities, have a look at aegis4j, a Java agent that completely disables platform features you don't use, before an attacker uses them against you (including e.g. JNDI and Java serialization).
https://github.com/gredler/aegis4j/
- Aegis4j: Avoid the Next Log4Shell Vulnerability
-
Log4j MEGATHREAD
Yep, this is why strategically patching InitialContext when the class is initially loaded will completely disable JNDI (and mitigate future JNDI-based exploits).
- aegis4j: Avoid the NEXT Log4Shell vulnerability!
-
Log4j 2.15.0 – Previously suggested mitigations may not be enough
The recent log4j vulnerability really piqued my interest, and I've spent the last few evenings working on a proof of concept Java agent that could mitigate similar vulnerabilities in the future, for applications that are able to completely forego platform features like JNDI, serialization or native process execution.
Link to the project: https://github.com/gredler/aegis4j
It's not a lot of code, but it uses parts of the platform that I think are a bit unusual for most devs, so it was quite interesting to implement. Happy to discuss details, ideas, and concerns.
One idea for a possible improvement is to make the feature block list adaptive, i.e. watch what the application uses in the first few minutes of execution, and then shut down all unused "dangerous" features for the remaining lifetime of the VM. Not sure how reliable this would be though, especially for services which have background jobs that might only run once a day.
What are some alternatives?
Mixin - Mixin is a trait/mixin and bytecode weaving framework for Java using ASM
Apache Log4j 2 - Apache Log4j 2 is a versatile, feature-rich, efficient logging API and backend for Java.
JGroups - The JGroups project
logstash-patterns-core
Spring - Spring Framework
log4j-affected-db - A community sourced list of log4j-affected software
guava - modular guava
log4shell-tools - Tool that runs a test to check whether one of your applications is affected by the recent vulnerabilities in log4j: CVE-2021-44228 and CVE-2021-45046
lwjgl - [LEGACY] LWJGL 2.X - The Lightweight Java Game Library.
lunasec - LunaSec - Dependency Security Scanner that automatically notifies you about vulnerabilities like Log4Shell or node-ipc in your Pull Requests and Builds. Protect yourself in 30 seconds with the LunaTrace GitHub App: https://github.com/marketplace/lunatrace-by-lunasec/
UniJ - Universal facade of JDK 9+ API, focused on Collection factory methods
ysoserial - A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization.