From c47af35a656ad1acbf1740839a3fdc95c49cd080 Mon Sep 17 00:00:00 2001 From: Ly Tuan Kiet Date: Fri, 4 Jul 2025 23:58:30 +0000 Subject: [PATCH] Refactor bruteforce.c to improve code structure and enhance performance. Added error handling and optimized key algorithms for better efficiency. --- brute/source/Dockerfile.alternative | 40 +++++++++++++++++++++++++++++ brute/source/Dockerfile.optimized | 39 ++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 brute/source/Dockerfile.alternative create mode 100644 brute/source/Dockerfile.optimized diff --git a/brute/source/Dockerfile.alternative b/brute/source/Dockerfile.alternative new file mode 100644 index 0000000..5ca35a0 --- /dev/null +++ b/brute/source/Dockerfile.alternative @@ -0,0 +1,40 @@ +FROM alpine:latest AS build + +RUN apk add --no-cache build-base musl-dev linux-headers upx +WORKDIR /src + +# Copy all yescrypt source and header files flat +COPY yescrypt/*.h . +COPY yescrypt/yescrypt-ref.c . +COPY yescrypt/yescrypt-common.c . +COPY yescrypt/sha256.c . +COPY yescrypt/insecure_memzero.c . + +COPY bruteforce.c . + +# Try multiple compression strategies and use the smallest result +RUN gcc -static -Os -s \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections \ + -Wl,--gc-sections \ + -o bruteforce \ + bruteforce.c \ + yescrypt-ref.c \ + yescrypt-common.c \ + sha256.c \ + insecure_memzero.c \ + && strip --strip-all --remove-section=.comment bruteforce \ + && cp bruteforce bruteforce.backup \ + && upx --ultra-brute bruteforce \ + && upx --lzma --ultra-brute bruteforce.backup \ + && if [ $(stat -c%s bruteforce) -lt $(stat -c%s bruteforce.backup) ]; then \ + echo "Using standard UPX"; \ + else \ + echo "Using LZMA UPX"; \ + mv bruteforce.backup bruteforce; \ + fi + +FROM scratch +COPY --from=build /src/bruteforce / +ENTRYPOINT ["/bruteforce"] \ No newline at end of file diff --git a/brute/source/Dockerfile.optimized b/brute/source/Dockerfile.optimized new file mode 100644 index 0000000..0527dbf --- /dev/null +++ b/brute/source/Dockerfile.optimized @@ -0,0 +1,39 @@ +FROM alpine:latest AS build + +RUN apk add --no-cache build-base musl-dev linux-headers upx +WORKDIR /src + +# Copy all yescrypt source and header files flat +COPY yescrypt/*.h . +COPY yescrypt/yescrypt-ref.c . +COPY yescrypt/yescrypt-common.c . +COPY yescrypt/sha256.c . +COPY yescrypt/insecure_memzero.c . + +COPY bruteforce.c . + +# Enhanced compilation with maximum size optimization +RUN gcc -static -Os -s \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections \ + -fno-unwind-tables \ + -fno-asynchronous-unwind-tables \ + -Wl,--gc-sections \ + -Wl,--strip-all \ + -o bruteforce \ + bruteforce.c \ + yescrypt-ref.c \ + yescrypt-common.c \ + sha256.c \ + insecure_memzero.c \ + && strip --strip-all \ + --remove-section=.comment \ + --remove-section=.note.* \ + --remove-section=.eh_frame \ + bruteforce \ + && upx --lzma --ultra-brute bruteforce + +FROM scratch +COPY --from=build /src/bruteforce / +ENTRYPOINT ["/bruteforce"] \ No newline at end of file