OffensiveNim
tinycc
OffensiveNim | tinycc | |
---|---|---|
10 | 15 | |
2,685 | 1,817 | |
- | 2.2% | |
4.6 | 8.8 | |
about 1 month ago | 4 days ago | |
Nim | C | |
BSD 2-clause "Simplified" License | GNU Lesser General Public License v3.0 only |
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.
OffensiveNim
-
Nim reverse shell.
Thanks! Looks cool, have you found the offensive Nim repo? Good resource https://github.com/byt3bl33d3r/OffensiveNim
- OffensiveNim: My experiments in weaponizing Nim (https://nim-lang.org/)
-
Offensive Nim
"Offensive " is about using a programming language for red teams. Stuff like writing malware, privilege escalation, antivirus evasion, etc... The "weaponization" here is about using the language for malicious apps.
There's nothing offensive about the MessageBox example, it's mostly showing how to use Win32 APIs in various ways, which is going to be necessary for a lot of the more malicious stuff, such as calling VirtualAllocEx to allocate executable code[1].
I doubt this will help either Russia nor Ukraine.
[0]: https://github.com/trickster0/OffensiveRust
[1]: https://github.com/byt3bl33d3r/OffensiveNim/blob/master/src/...
-
My own Windows 10 VM keeps killing my meterpreter connection despite no defenses active
Now I'm learning to program in Nim and this Github repository is gold: https://github.com/byt3bl33d3r/OffensiveNim
- The virus issue
-
Malware developers turn to 'exotic' programming languages to thwart researchers
Here is a cool repo showing some common red techniques implemented in Nim - https://github.com/byt3bl33d3r/OffensiveNim
-
The cross-platform Nim language is starting to become a thing in offsec... here's a new RAT/agent, written in Nim, which communicates to a C2 over multiple protocols (http, tcp, udp)..
Nim is a computer language that has recently started to become popular (i.e., a thing) in offensive security. There's even a fairly popular project, called Offensive Nim (https://github.com/byt3bl33d3r/OffensiveNim) which has started collecting code on the topic.
- OffensiveNim: Experiments in weaponizing Nim language for implant development
tinycc
-
Autoconf makes me think we stopped evolving too soon
A better solution is just to write a plain ass shell script that tests if various C snippets compile.
https://github.com/oilshell/oil/blob/master/configure
https://github.com/oilshell/oil/blob/master/build/detect-pwe...
Not an unholy mix of m4, shell, and C, all in the same file.
---
These are the same style as a the configure scripts that Fabrice Bellard wrote for tcc and QEMU.
They are plain ass shell scripts, because he actually understands the code he writes.
https://github.com/qemu/qemu/blob/master/configure
https://github.com/TinyCC/tinycc/blob/mob/configure
OCaml’s configure script is also “normal”.
You don’t have to copy and paste thousands of lines of GNU stuff that you don’t understand.
(copy of lobste.rs comment)
-
AST vs. Bytecode: Interpreters in the Age of Meta-Compilation [pdf]
I can highly recommend libtcc (https://github.com/TinyCC/tinycc.git) for this kind of thing. I recently ported the code developed in linux on an ARM chromebook to a generic windows box in 20 minutes.
- Are there faster alternatives to GCC and Clang for C?
-
Offensive Nim
I think it's a pretty nice prog.lang. You may be very happy. Though nothing is perfect, there is much to recommend it. By now I've written over 150 command-line tools with https://github.com/c-blake/cligen . A few are at https://github.com/c-blake/bu or https://github.com/c-blake/nio (screw 1970s COBOL-esque SQL) or in their own repos.
If it helps, I like to use the "mob branch" [0] of TinyCC/tcc [1] for really fast builds in debugging mode, but this may only work if you toss `@if tcc: mm:markAndSweep @end` or similar in your nim.cfg. Then I have a little `@if r: ...` so I can say `nim c -d:r foo` for a release build with gcc/whatever.
[0] https://repo.or.cz/w/tinycc.git
[1] https://en.wikipedia.org/wiki/Tiny_C_Compiler
-
Bringing a dynamic environment to C: My linker project
I have found the libtcc from https://github.com/TinyCC/tinycc to be absolutely fantastic. I'm using it to instantaneously compile the C output from my hobby language to create a repl. Once I had the compiler in good shape it allowed me to create a 100% compatible interpreter for (basically) free.
The libtcc API is minimal. For my needs that has been 100% sufficient and a pleasure to work with.
-
tcc on RasPi, func pointers to standard functions are nil
The latest version that people are working with can be found on the 'mob' branch at https://repo.or.cz/w/tinycc.git
-
Optimizing GoAWK with a bytecode compiler and virtual machine
Instead of interpreters, if one has less of a "must be a full featured prog.lang" mentality and a fast compiler like Go or Nim [1] (or is willing to wait, for slow optimizing compiles to apply against big data sets) then an end-to-end simpler design for "one-liners" (or similarly simple programs) is the whole program generator. Maybe "big IFs", but also maybe not.
To back up my simplicity claim, consider rp [2] -- like 60 non-comment/import/signature lines of code for the generator. Generated programs are even smaller. But, you can deploy gcc or clang or whatever against them and make fast libraries in the host language.
Why, if you are willing to write those little generation command options in C99 then you can compile the harness with tcc [3] in about 1 millisecond which is faster than most interpreter start-up times - byte code or otherwise - and can link against gcc -O3 (or whatever) helper libraries.
Anyway, I only write this because in my experience few people realize how much development cost they buy into when then insist on a full featured prog.lang, not to criticize Ben's work. You also make users need to learn quirks of that new language instead of the quirks of a "harness" which may be fewer.
[1] https://forum.nim-lang.org/
[2] https://github.com/c-blake/cligen/blob/master/examples/rp.ni...
[3] https://repo.or.cz/w/tinycc.git
- What's the best portfolio project that you have ever seen?
-
CHICKEN 5.3.0 has been released
I think it is. At least there have been some recent activity in https://repo.or.cz/w/tinycc.git
- Cwerg - an opinionated, light-weight compiler backend
What are some alternatives?
ArnoldC - Arnold Schwarzenegger based programming language
Cwerg - The best C-like language that can be implemented in 10kLOC.
bu - B)asic|But-For U)tility Code/Programs (in Nim & Often Unix/POSIX/Linux Context)
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
Bootstrapped-Freeze-Interpreter - I will basically provide minimal functions like goto, string, conditions, and methods and the rest will be handled inside the interpreted language
pvsneslib - PVSnesLib : A small, open and free development kit for the Nintendo SNES
community - All open-source content for the Prelude Operator C2 platform
c2nim - c2nim is a tool to translate Ansi C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand before and after the translation process.
sliver - Adversary Emulation Framework
nimterop - Nimterop is a Nim package that aims to make C/C++ interop seamless
nio - Low Overhead Numerical/Native IO library & tools
cligen - Nim library to infer/generate command-line-interfaces / option / argument parsing; Docs at