Hello all!
I've (almost) completely rewritten libpe C library into Nim to be able to built a multiplatform tool to inspect PE files. So here I'm releasing:
Reason I started creating those two was to be able to inspect all the Windows dlls looking for specific symbol. Another reason was to better learn Nim and stuff like FFI. At first, all I wanted was to wrap essential libpe functions but suddenly I encountered some strange deadlocks when some cygwin routines were called. Then I decided to rewrite everything from ground up - that glued me to the IDE for weeks and my endless nightmare begun. Now it's working and I can share with you. Do expect bugs though as some features are not finished and some parts of code are mindlessly translated from the original lib. Testing suite is pretty solid.
Features/Use cases
Lastly I would like to thank everybody at Nim's discord who helped me answering more or less lame questions.
huh?
wine calc.exe
dotnet foo.exe
as name warning, the name peni 🍆🍆 sounds a bit awkward in Italian.
This was intended - it refers to fameous polish comedy "Boys don't cry".
thanks for the correction, edited the above. As mentioned, I just learned the meaning of PE (I did not find any reference to PE in any of the links in OP).
And as a fun experiment with this new tool, I create the most basic nim dll:
proc add*(num1, num2: int): int {.stdcall, exportc, dynlib.} =
num1 + num2
compiled with nim c --app:lib -d:release add.nim and examined with peni info -a add.dll, see results in gist
now I am really curious about the movie: https://www.imdb.com/title/tt0238119/?ref_=ttqt_qt_tt
Yep, now you could find more dlls produced by Nim by simply:
peni grep -E -p "NimMain" -r <some path>
that was my original idea. Or perhaps it was searching windir with keywords such as 'password' and 'credentials' ;-)
I've (almost) completely rewritten libpe C library into Nim...
FYI it looks like libpe is licensed under LGPL (see the LICENSE file) and you've licensed your libraries under MIT.
As far as I know (and I am not a lawyer) you can not license work derived from GPL and LGPL code under anything else. You probably should ask the developer of libpe for permission or license your code under LGPL.
I'm also not a lawyer, but if you're simply re-implementing APIs, the SCOTUS recently ruled in the famous oracle vs google case that re-implementing java APIs from scratch is not copyright infringement. That's my layman's understanding, at least. https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_Inc.
If you "translated" the C code, that's probably another story.
As for GPL, consider licensing LGPL at least. LGPL would allow people to dyamically-link the library in their project without having to use the GPL. Given, dynamic linking like that in Nim is not super easy, but at least should be possible in practice.
Very cool. Congratulations.
I was writing a Nim package for PE. The project was at a standstill due to my lack of time to continue and other problems that had arisen in the last few months. As soon as I have some time I will look at your work.
Hire a professional hacker! (Telegram: @Blackhat_plug) My expertise is programming, running exploits, and setting up DDOS attacks and I like the challenge of doing things where most others give up.
Examples: Spear Phishing Attacks to get accounts from selected targets. I can recover account passwords of most social networks easily, remote control smartphones. Facebook, Reddit, Instagram, the Twitter account hacking. Criminal record expungement, Credit score increment, Change of a school course grade, tracking live location etc.
Full package deal, getting access to personal or company devices and accounts and searching for the data you need. Hacking web servers, game servers, or other internet infrastructure. Basically, anything a hacker needs to be successful.
Examples: Simply hacking something technically. Causing a lot of technical trouble on websites/networks to disrupt their service with DDOS and other methods. Economic espionage. Getting private information from someone. Ruining your opponents, business, or private persons you don't like, I can ruin them financially and or get them arrested, whatever you like.
Contact via Telegam:............... Blackhat_plug