Skip to content

Instantly share code, notes, and snippets.

@johnmyleswhite
johnmyleswhite / claude.md
Created December 25, 2025 19:09
Claude Code analysis of Mole security

Mole Security Assessment Report

Assessment Date: December 25, 2025 Assessed Version: V1.14.4 (commit b09b771) Assessor: Claude (Anthropic AI) Assessment Scope: Full codebase review for malicious code, backdoors, data exfiltration, botnet indicators, and security vulnerabilities


Executive Summary

@johnmyleswhite
johnmyleswhite / codex.md
Created December 25, 2025 19:08
OpenAI Codex analysis of Mole security

Findings

  • Medium: The update flow downloads and executes a remote installer script without signature or checksum verification, so a compromised GitHub repo or MITM could execute arbitrary code during update. mole:282 mole:289 mole:296 mole:384 install.sh:115 install.sh:121 install.sh:135
  • Low: The interactive analyzer deletes user-selected paths via os.RemoveAll without a denylist or path validation layer; a mistaken selection (or running as root) could remove critical data. cmd/analyze/delete.go:76 cmd/analyze/delete.go:118
  • Low: Auto-fix and Touch ID helpers modify security-sensitive system settings (firewall state, PAM config, Rosetta install) using sudo. These are user-initiated but high-impact operations worth flagging. lib/manage/autofix.sh:132 lib/manage/autofix.sh:149 lib/manage/autofix.sh:162 bin/touchid.sh:82 bin/touchid.sh:111

Assessment (Maliciousness)

  • I found no evidence of data exfiltration, telemetry, or C2 behavior; network access appears limited to GitHub
@johnmyleswhite
johnmyleswhite / gemini_output.txt
Created August 19, 2025 12:53
Gemini in Google Sheets AI Function
1 hour 15 minutes
1 hour 15 minutes
1 hour 15 minutes
1 hour 15 minutes
1 hour 15 minutes
1 hour 15 minutes
1 minute
1 minute
10 minutes
10 minutes
@johnmyleswhite
johnmyleswhite / overflow.R
Created February 20, 2023 14:48
R REPL overflow
x <- 1
x <- 2
x <- 3
x <- 4
x <- 5
x <- 6
x <- 7
x <- 8
x <- 9
x <- 10
@johnmyleswhite
johnmyleswhite / Julia ChatGPT.md
Created February 19, 2023 20:57
Julia ChatGPT

Write a blog post criticizing the Julia programming language

As a powerful high-level dynamic programming language, Julia has gained a lot of popularity among data scientists, engineers, and researchers. It is often considered a more efficient alternative to Python, R, and MATLAB, with a syntax that is easy to read and write. However, despite its strengths, there are some criticisms of Julia that should be taken into consideration.

First and foremost, the Julia programming language has a relatively small ecosystem compared to other programming languages. While it does have a growing community of developers, it does not have the same level of support and resources as languages like Python or Java. This can make it difficult for developers to find the necessary tools and libraries to accomplish their tasks.

Another major criticism of Julia is its lack of backwards compatibility. The language is still in its early stages of development, and as a result, changes to the syntax and features are common. While t

@johnmyleswhite
johnmyleswhite / primes.jl
Created November 15, 2022 00:28
Prime Sequence Generator
julia> import Printf: @printf
julia> f(x) = 1 / (x - floor(Int, x))
f (generic function with 1 method)
julia> function g(n, x₀ = 0.43233208718590286890)
x = x₀
for i in 1:n
x = f(x)
@printf("%d\t%s\n", i, x)
johnmyleswhite@foobar:~/R-4.1.2$ bin/R
do_invisible
do_invisible
do_invisible
do_invisible
do_invisible
do_invisible
do_invisible
do_invisible
do_invisible
> visible_plus_one <- function (x) {x}
>
> invisible_plus_one <- function (x) {invisible(x)}
>
> visible_plus_one(1)
[1] 1
> invisible_plus_one(1)
>
> visible_plus_one(1) + 1
[1] 2
@johnmyleswhite
johnmyleswhite / lift.jl
Created October 31, 2020 15:48
wip_lift.jl
import MacroTools: postwalk
function missing_check(es)
if length(es) == 0
false
elseif length(es) == 1
Expr(:call, :ismissing, es[1])
elseif length(es) == 2
Expr(
:call,
struct ExpressionThunk
source::Any
thunk::Any
end
macro thunk(e)
quote
ExpressionThunk(
$(QuoteNode(e)),
() -> $(esc(e))