Comments (13)
Yes the binary crashes once recompiled. Can I send you the assembly by email please? I am currently on my phone. I need to wait before sending you the assembly.
from ddisasm.
Hi @gogo2464
Thanks for opening and issue and showing interest in Ddisasm!
We will investigate this case, but my first guess is that the process is running out of RAM. The binary that you pointed out is ~90MB.
Ddisasm is pretty memory intensive. As a rough estimation, any binary over ~20MB is likely going to require more than 32GB of RAM. We are working on lowering the memory consumption to be able to handle bigger, but that will likely take some time.
from ddisasm.
No problem. I am just setting my computer to use 500GB of swap. If you want I can document on the repo what I did.
Could we just set an option to see percent of adavance on each step?
Thank you very much for your answer.
from ddisasm.
I am just setting my computer to use 500GB of swap
I am curious, did it work?
Could we just set an option to see percent of adavance on each step?
Most of the disassembly work is done by the Datalog code (which is transformed to C++ by souffle) so it is not straightforward to record progress there.
from ddisasm.
"I am curious, did it work?"
Yes :) after 3 days of processing. :) I set up my computer in order to avoid to shutdown automatically.
We might store intermediate calculus into sqlite? What do you think of this idea?
from ddisasm.
@aeflores I can not recompile it.
ddisasm disassemble with these logs:
Building the initial gtirb representation [ 2s]
Processing module: PacketTracer
disassembly load [38m44s] compute
[ 39h3m] transform WARNING: Moving symbol to first block of section: __bss_start
[33m19s]
SCC analysis compute [ 2m19s] transform [ 0ms]
no return analysis load [ 4m29s] compute [44m24s] transform [ 702ms]
function inference load [ 7m41s] compute [ 5m40s] transform [ 1m1s]
Printing assembler [20m24s]
then I did:
I got no error to run it but a segfault and valgrind
==78274== Warning: set address range perms: large range [0x59c97028, 0x7b0b6b1e) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xa777a75e) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0xa777a776) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0x8c2c8b4c) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0x8c2c8b64) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xa3c3be9c) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0xa3c3beb4) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0x96975db9) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0x96975dd1) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0x841f69e1) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0x841f69f9) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xd6ae6274) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0xd6ae628c) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xd32e56cd) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0xd32e56e5) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0x80a1c76c) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0x80a1c784) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xb1b11ac9) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0xb1b11ae1) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0x7d952e67) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0x7d952e7f) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xcb047e39) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0xcb047e51) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xabec034d) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0xabec0365) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0x7b2303e1) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0x7b2303f9) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0x88187765) (undefined)
==78274== Warning: set address range perms: large range [0x59c97028, 0x8818777d) (noaccess)
==78274== Warning: set address range perms: large range [0x59c97040, 0xb729f014) (undefined)
The original binary is around 90MB
from ddisasm.
@aeflores do I open an issue?
from ddisasm.
Hi @gogo2464 I there is no need to open another issue. Can you clarify, did you manage to reassemble but the rewritten binary crashes? or did the reassembly itself crashed?
Do you have a way of sharing Ddisasm's gtirb file or the assembly output with us?
from ddisasm.
@aeflores I sent you an email. Did you received it?
from ddisasm.
I did! Unfortunately, it might take me some time to get to it.
from ddisasm.
@aeflores Ah alright. No problem. Sorry. I will wait.
from ddisasm.
@aeflores should I ask my question on another canal please?
from ddisasm.
As of 2fd73fe this issue should be solved.
from ddisasm.
Related Issues (20)
- How to get instruction boundaries for binaries compiled by icc ? HOT 1
- Several reassembly error cases on Ddisasm HOT 9
- [BINARY] fails disassembly MSVC dll HOT 2
- "Lib.exe: command not found" when reassembling PE binaries HOT 1
- ls binary fails reassembly on Ubuntu 22 HOT 7
- [ls] fails reassembly HOT 6
- `gcc ls.s -o ls-out -l selinux -nostartfiles -O0` does not products exactly the same code signature as the original file HOT 10
- [Question] Any simple way to get function entries? HOT 2
- gnu linker script? HOT 4
- remove fake plt/got in windows PE files HOT 2
- document the usage of pkg-config --libs libselinux on Linux HOT 2
- binary disassembly got warning , when recompile to binary got error HOT 3
- NASHTA fails disassembly HOT 12
- Where can I find the latest release of this extension? When I go to the "Release" section it is empty. HOT 1
- connect ddisasm to proof of useful work HOT 2
- optimize ram HOT 1
- Profiling mode may create inaccurate running time information. HOT 2
- Use PDB files in rewriting process HOT 3
- Incorrect disassembly of binary 'FADD ST(n1) ST(n2)' instructions HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ddisasm.