Offensive Nim
github.com
github.com
Would you mind elaborating why.
- Nim is case-agnostic. Tokens ignore cases and underscore so foo_bar == foobar == fooBar. I personally find this enjoyable for my personal projects, but it remains a contentious subject.
- Parallel support is pretty buggy. I've had loads of bizarre issues related to parallelism on the current version (1.6.10). However, from what I've tested in the release candidate, version 2.0.0 seems to have fixed a lot of these issues.
- The official documentation is really good, but if you don't find something there, its hard to find it anywhere (details regarding its Javascript target remain pretty sparse, for example). All new languages will suffer from this though, and I don't think its severe enough to mark is as "not production ready" by itself, but it's worth noting.
I have yet to be conviced it is a negative - or that the potential cons outway the potential pros, and I'm steadfastly stuck on this hill for now. Thanks for the comment.
Want to know every library on GitHub that uses "mySpecialNimConst" in it's code?
Enjoy the hunt
Given the compilation step to C allows nice FFI and using all kinds of compilers
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.
That's quite an impressive amount of cmdline tools.
Also, if you think of an idea for more, please feel free to raise an issue - maybe it's already done somewhere. Or even better, use it as an excuse to learn Nim and file a PR or even better do your own repo. :)
Static types are a huge benefit in staying sane, IMO, especially when doing bit/structure twiddling. Sure, there are ways of accomplishing this is dynamic languages, but Nim is both fast and fun to use.
Perhaps nigh tautological, but a rapid corollary of this is that if everything is a string/line in a file, the distinction is less valuable than if you have many kinds of CPU register (say). In fact, there is even https://en.wikipedia.org/wiki/Typed_assembly_language .
Does anyone know of a working implementation you can play with today?
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/...
EDIT: @tgv might have been more understood himself had he said "title should be changed to 'Offensive (Red Team) Nim'" or something along those lines.
EDIT: FWIW I think in this case the origin is just "opposite of 'defensive'" as in "offense & defense" in sports..red & blue teams, etc.