Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
aleclm
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
12 ms
·
1.
▲
QEMU Dev Starter guide, Part 1 [video]
(youtube.com)
2 points
by
aleclm
6mo ago
|
0 comments
2.
▲
Build Windows 11 QEMU VM images deterministically with Nix
(github.com)
1 points
by
aleclm
7mo ago
|
0 comments
3.
▲
Deobfuscation with Rev.ng [video]
(youtube.com)
1 points
by
aleclm
2y ago
|
0 comments
4.
▲
An introduction to LLVM IR [video]
(youtube.com)
2 points
by
aleclm
2y ago
|
0 comments
5.
▲
Italy blocked from using Paragon's Graphite spyware over misuse allegations
(theguardian.com)
1 points
by
aleclm
2y ago
|
0 comments
6.
▲
by
aleclm
2y ago
Yes. Roadmap item: https://rev.ng/roadmap#feature-798 Design pad: https://pad.rev.ng/s/eDHi2PUoP#
7.
▲
by
aleclm
2y ago
> should SLL decompile to x << y or x << (y % 32)? I think this a bit of a misguided question. The hardware has a precise semantic defined, usually. QEMU's << behaves similarly to C (undefined behavior for rhs >
8.
▲
by
aleclm
2y ago
Thanks! It has been working very well. Two regrets: 1. Not rebasing our fork of QEMU for years has put us in a bad spot. But just today a member of our team managed to lift stuff with the latest QEMU. And he has also been able to lift Qualc
9.
▲
by
aleclm
2y ago
I 120% agree with what you're saying, but emitting valid C is kinda part of what you're asking, in design terms. Our goal is: omit all the casts that can be omitted without changing the semantics according to C. In fact, we have a
10.
▲
by
aleclm
2y ago
> `source ./environment` is what's written on the announcement page at the top of this thread. './revng' doesn't appear anywhere on it. You're right, but after that there's a link to the docs where
11.
▲
by
aleclm
2y ago
Can you open an issue on GitHub and attach the binary? I don't think it should be too hard to load that.
12.
▲
by
aleclm
2y ago
In IDA you basically have only detection of stack frame layout (in a quite confusing fashion) and "create struct out of this pointer", which is something you have to do manually and its intraprocedural. Imagine this being done aut
13.
▲
by
aleclm
3y ago
I think most of your concerns about messing with the environment are sensible only under the assumption that you actually do `source environment`. In truth, we suggest to do that only so you use the GCC we distribute for the demo binary. Th
14.
▲
by
aleclm
3y ago
Languages with a rich standard library and generating a lot of code for you usually need some love to get rid/represent idiomatically common patterns and to detect common data structures. We haven't looked into it yet, but the aut
15.
▲
by
aleclm
3y ago
Sure, in those cases we emit calls to C functions. The only thing we need to know is what registers are taken as input, what registers are output and what registers are preserved. In QEMU parlance, these are helper functions, and they have
16.
▲
by
aleclm
3y ago
Students shouldn't pay a dime. They are poor. Our view is: the engine is 100% open source. The UI is available for free in the cloud for anyone experimenting, which we define as "I'm OK with leaving the project public".
17.
▲
by
aleclm
3y ago
That's unlikely, since we use QEMU as a lifter, which sometimes supports new instructions before they hit silicon. However, I think we'll emit a call to some `noreturn` function. Basically we emit a call to `abort`.
18.
▲
by
aleclm
3y ago
Short answer: if you want to execute a program (maybe with some instrumentation, for fuzzing purposes) it's much easier to adopt a dynamic approach (i.e., emulation or virtualization). With static binary translation you can get better
19.
▲
by
aleclm
3y ago
That's our goal. We used to use QtCreator as a basis for the UI, terrible idea. Then we switched to VSCode, which happens to be able to run in the browser. So we added some magic kubernetes sauce and voilà, you got the cloud decompiler
20.
▲
by
aleclm
3y ago
> Decompilation is often the least important (and least reliable) part of IDA/Ghidra This is something all people using decompilers say and sort of shows how low is trust towards decompilers. Expectations have always been rather low
21.
▲
by
aleclm
3y ago
For scripting, our approach is to give you access to the project file (just a YAML file), and you can make changes from any scripting language you want. Everything the user can customize is in there, all the rest is deterministically produc
22.
▲
by
aleclm
3y ago
In the past we were thinking to do something like this by hand. For instance, we detect induction variables, we could rename them into `i`. However, nowadays, it seems pretty obvious that the right way to do this things is using LLMs. This
23.
▲
by
aleclm
3y ago
About the book, here's the full story: I was getting into compilers, but I was really struggling with the theory, the most famous books weren't doing it for me, and I felt really down. Then I find this book, which seems very dense
24.
▲
by
aleclm
3y ago
The CTO mostly works on the backend of the decompiler, revng-c, which we just released: https://github.com/revng/revng-c/commits/develop/ Eventually we'll merge the two repos. Also, I develop stuff
25.
▲
The rev.ng decompiler goes open source and start of the UI closed beta
(rev.ng)
2 points
by
aleclm
3y ago
|
0 comments
26.
▲
Discussion on (not) using gotos in decompilation
(twitter.com)
1 points
by
aleclm
3y ago
|
0 comments
27.
▲
by
aleclm
3y ago
I was writing a response to the paper (which compares with rev.ng), but never managed to complete it. I wanted to make a thread on Twitter about it, but it was getting longer and longer, more like a blog post. If you're really interest
28.
▲
by
aleclm
3y ago
> architectural registers are always updated In tiny code, the guest registers (global TCG variables) are stored in the host's registers until you either call an helper which can access the CPU state or you return (`git grep la_glob
29.
▲
by
aleclm
3y ago
I see your position, but I've to say that in 8 years of rev.ng we revised many many design choices we initially made, but not using LLVM was not one of them, so I can't agree. Rolling your own IR is not hard, in fact, it's v
30.
▲
by
aleclm
3y ago
I had some ideas about binary diffing, but it's a difficult topic and I'm too much of a noob in ML to get to something working in a decent time frame. I think something ABI-, compiler- and architecture-agnostic would be super cool
More ›