Joined September 2018
15 Photos and videos
Pinned Tweet
9 May 2025
Hello twitter, made an IDA script/plugin to comment your decompiled Rust code with... Rust source code ! It fetches panic information and reads fetch the associated source code to print it to you in the form of a comment. github.com/N0fix/IDA_rust_me…
5
19
1,061
Made a little experiment of lifting IDA microcode to z3 to automatically resolve opaque predicates. It works quite well on a few malware families I tested on. In the gif you can see Lumma stealer's opaque predicates being solved automatically:
1
26
200
11,918
Nofix retweeted
This 1-pager from Xusheng Li on GDB internals of how watchpoints are implemented is a delight to read! (especially that double-write behaviour false positive - I did not know about that)
5
81
361
22,062
Nofix retweeted

41
171
14,839
Nofix retweeted
We probably need to start transitioning to the new name...
187
350
7,430
510,075
Nofix retweeted
Ever wanted to draw a triangle with OpenGL as a 2kb position-independent shellcode? No? Me neither. But you can do it anyway: github.com/wbenny/scfw
31
147
10,574
Nofix retweeted

24
142
754
207,039
Nofix retweeted
In today's episode of programming horror... In the Python docs of random.seed() def, we're told "If a is an int, it is used directly." [1] But if you seed with 3 or -3, you actually get the exact same rng object, producing the same streams. (TIL). In nanochat I was using the sign as a (what I thought was) clever way to get different rng sequences for train/test splits. Hence gnarly bug because now train=test. I found the CPython code responsible in cpython/Modules/_randommodule.c [2], where on line 321 we see in a comment: "This algorithm relies on the number being unsigned. So: if the arg is a PyLong, use its absolute value." followed by n = PyNumber_Absolute(arg); which explicitly calls abs() on your seed to make it positive, discarding the sign bit. But this comment is actually wrong/misleading too. Under the hood, Python calls the Mersenne Twister MT19937 algorithm, which in the general case has 19937 (non-zero) bits state. Python takes your int (or other objects) and "spreads out" that information across these bits. In principle, the sign bit could have been used to augment the state bits. There is nothing about the algorithm that "relies on the number being unsigned". A decision was made to not incorporate the sign bit (which imo was a mistake). One trivial example could have been to map n -> 2*abs(n) int(n < 0). Finally this leads us to the contract of Python's random, which is also not fully spelled out in the docs. The contract that is mentioned is that: same seed => same sequence. But no guarantee is made that different seeds produce different sequences. So in principle, Python makes no promises that e.g. seed(5) and seed(6) are different rng streams. (Though this quite commonly implicitly assumed in many applications.) Indeed, we see that seed(5) and seed(-5) are identical streams. And you should probably not use them to separate your train/test behaviors in machine learning. One of the more amusing programming horror footguns I've encountered recently. We'll see you in the next episode. [1] docs.python.org/3/library/ra… [2] github.com/python/cpython/bl…
215
483
7,800
768,776
Nofix retweeted
22 Oct 2025
Impressive work from our team today at #Pwn2Own! Mehdi and Matthieu just pulled off an exploit on the Philips Hue Bridge without laying a finger on the device! Great demonstration of Synacktiv’s offensive expertise 👏 Come on 🔥
3
11
89
5,777
3 Oct 2025
What's a good reason to put relevant information of your file format at the end of the file ? It makes it so hard to find if anything goes wrong or if the file gets concatenated somehow
1
109
Nofix retweeted
9 Sep 2025
Hey @ProtonPrivacy, why are you cancelling journalists and ghosting us. Need help calibrating your moral compass❓ First therapy session is for free 😘 Regarding phrack.org/issues/72/7_md#ar…
58
241
1,287
178,601
Nofix retweeted
31 Aug 2025
🔥HeroCTF v7 is back at the end of November! 🚩You can now register your team on CTFtime 🔗 ctftime.org/event/2869 More information to come soon.

ALT driving ashton kutcher GIF

1
12
26
1,850
Nofix retweeted
10 Jul 2025
🔐 Data encryption in Laravel environments is based on one secret: the APP_KEY. Our ninja @_remsio_ studied the impact of its leakage on the internet during an entire year. synacktiv.com/en/publication…
2
38
90
8,873
Nofix retweeted
I've published my thoughts on part of the anonymization method used in that paper: hackarcana.com/article/anony… TL;DR: yeeeah... I don't think it works well
Anyone has a copy of the zenodo.org/records/15170676 dataset? (that's Discord messages; context: news.ycombinator.com/item?id…) Authors seem to have restricted access, and I wanted to verify sth wrt their anonymization method.
1
10
22
6,580
16 Mar 2025
Ah, yes, "rendezvoused"
1
4
325
9 Mar 2025
I got a new small blog post about oddities I encountered while working on rustbinsign: reproducing builds of old Tokio crate fails ! You can read more about why this happens and how to work around that here: nofix.re/posts/2025-08-03-bu…

5
11
784
Nofix retweeted
22 Nov 2024
After 6 years, I made a blog thingy again. This time about MmScrubMemory. An innocuous looking function that has bitten my ass several times in the last several years. And if you're developing a hypervisor, it might've bitten yours, too. wbenny.github.io/2024-11-21-…

4
27
96
10,040