Coder Social home page Coder Social logo

Comments (6)

AlecHaring avatar AlecHaring commented on July 20, 2024 1

Huh, very interesting. And that code snippet also explains why it adds a 2nd .dylib to the end of the lib name. So adding lib to the beginning of the name would fix that as well :)

from burp-awesome-tls.

AlecHaring avatar AlecHaring commented on July 20, 2024

Seems like the problem is that it's looking for libserver.dylib.dylib, but unzipping the 2 file in burp10831821168041598492.tmp/ reveals the file's name is just server.dylib

from burp-awesome-tls.

sleeyax avatar sleeyax commented on July 20, 2024

Odd, I don't immediately see why it would look for libserver.dylib.dylib . It should be just server.dylib πŸ€”

from burp-awesome-tls.

sleeyax avatar sleeyax commented on July 20, 2024

I checked out the JNA (Java Native Access) source code and according to this code snippet it seems like only on MacOS native libraries are expected to start with lib:

https://github.com/java-native-access/jna/blob/87f32b5a1e818533004a41f3071e55e0aa3a39b5/src/com/sun/jna/NativeLibrary.java#L761-L801

    static String mapSharedLibraryName(String libName) {
        if (Platform.isMac()) {
            if (libName.startsWith("lib")
                && (libName.endsWith(".dylib")
                    || libName.endsWith(".jnilib"))) {
                return libName;
            }
            String name = System.mapLibraryName(libName);
            // On MacOSX, System.mapLibraryName() returns the .jnilib extension
            // (the suffix for JNI libraries); ordinarily shared libraries have
            // a .dylib suffix
            if (name.endsWith(".jnilib")) {
                return name.substring(0, name.lastIndexOf(".jnilib")) + ".dylib";
            }
            return name;
        }
        else if (Platform.isLinux() || Platform.isFreeBSD()) {
            if (isVersionedName(libName) || libName.endsWith(".so")) {
                // A specific version was requested - use as is for search
                return libName;
            }
        }
        else if (Platform.isAIX()) {    // can be libx.a, libx.a(shr.o), libx.so
            if (isVersionedName(libName) || libName.endsWith(".so") || libName.startsWith("lib") || libName.endsWith(".a")) {
                // A specific version was requested - use as is for search
                return libName;
            }
        }
        else if (Platform.isWindows()) {
            if (libName.endsWith(".drv") || libName.endsWith(".dll") || libName.endsWith(".ocx")) {
                return libName;
            }
        }


        String mappedName = System.mapLibraryName(libName);
        if(Platform.isAIX() && mappedName.endsWith(".so")) {
            return mappedName.replaceAll(".so$", ".a");
        } else {
            return mappedName;
        }
    }

I'll need to update the build script to support this.

from burp-awesome-tls.

sleeyax avatar sleeyax commented on July 20, 2024

Should be fixed in the latest build (Github Action is still running at the time of writing, check releases soon).

from burp-awesome-tls.

AlecHaring avatar AlecHaring commented on July 20, 2024

Yep, that fixed it. Thanks!

from burp-awesome-tls.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.