rizinorg / cutter

Free and Open Source Reverse Engineering Platform powered by rizin
https://cutter.re
GNU General Public License v3.0
15.59k stars 1.14k forks source link

Problem Empty disassembly #3275

Closed maskelihileci closed 6 months ago

maskelihileci commented 8 months ago

Environment information

Describe the bug

My friend, after analyzing the large files, we cannot see anything in the disassembly , the disassembly is empty as in the picture. This error only occurs when large files are analyzed.

Expected behavior

The Disassembly section should not be empty, regardless of whether the file is large or small.

Screenshots

image

Additional context

There are two things I would like to add: When I save the project with an empty disassembly section and close the application, it continues to run in the background with full power consumption. When I kill the application and load the saved project, the empty disassembly section appears and the problem disappears.

XVilka commented 8 months ago

@maskelihileci could you please retry with the latest version or share the file? You can grab the latest dev build from here: https://github.com/rizinorg/cutter/actions/runs/7354662953/artifacts/1138965087

maskelihileci commented 8 months ago

The same problem persists, this time the decompiler works properly. There is no need to upload any files. If there is an application on your computer that is larger than 50MB in size, the same problem will occur.

image

wargio commented 8 months ago

this is the latest dev?

maskelihileci commented 8 months ago

bu en son geliştirici mi?

https://github.com/rizinorg/cutter/issues/3275#issuecomment-1871924287

I downloaded this resource.

wargio commented 8 months ago

Try the latest https://github.com/rizinorg/cutter/actions/runs/7354662953/artifacts/1138965087

maskelihileci commented 8 months ago

Try the latest https://github.com/rizinorg/cutter/actions/runs/7354662953/artifacts/1138965087

I already tried that.

wargio commented 8 months ago

you still have the same issue?

maskelihileci commented 8 months ago

you still have the same issue?

yes

ghost commented 8 months ago

Same here, opened a 50MB executable but Cutter refuses to disassemble Edit: Latest dev build fixed my problem

wargio commented 8 months ago

always on windows?

wargio commented 8 months ago

@stever9487 Please try https://github.com/rizinorg/cutter/pull/3280

XVilka commented 8 months ago

You can try this version on Windows: https://github.com/rizinorg/cutter/actions/runs/7438987036/artifacts/1152599763

XVilka commented 8 months ago

Nevermind, I can confirm the bug. Curiously, both decompiler and graph work, but not disassembly...

Rot127 commented 6 months ago

@maskelihileci I cannot reproduce the issue.

My steps were:

Windows build info:

Edition Windows 10 Pro
Version 22H2
OS build    19045.3758

Can you maybe check with this binary again, to see if it works for you?

Rot127 commented 6 months ago

So I tried the binary @XVilka used (https://github.com/yt-dlp/FFmpeg-Builds) and still cannot reproduce the issue.

But had some similar behavior. In my case the list of function names was not loaded directly. It took ~5min until it was there. Until than it looked like your disassembler box, a simple grey background. Similar for other things. E.g. couldn't select another function during this time. Although, the whole time the GUI was responsive.

Also that Cutter is a zombie process after closing, was just a problem of enormous resource use in my case. After waiting for ~5-7min it was gone.

The Windows VM in use here had 2 cores with 1.1GHz + 4GB memory. Rizin used roughly 3GB mem at its peak.

Can you please open your file again and let it sit for 5-10min after the aaa analysis? Just so we can make sure it is not a performance issue? Also please check the process manager during this time. If the used memory increases, it is an indicator that something is still done in the background.

@XVilka If you find time, please try this as well.

XVilka commented 6 months ago

Just waited and it still the same - decompiler and graph tabs work, while disassembly is empty:

image

wargio commented 6 months ago

probably caused by the recent changes on the api

XVilka commented 6 months ago

I wonder if it's because of the core->block changes in librz/core/disasm.c

XVilka commented 6 months ago

It is not specific to Windows - if you open that file either on macOS or Linux build it happens too.

XVilka commented 6 months ago

Cutter uses rz_core_print_disasm(), maybe some recent changes in how it works.

Rot127 commented 6 months ago

@XVilka I couldn't reproduce it under Linux as well.

Rot127 commented 6 months ago

Can you guys check what your Qt version your Cutter uses?

In Cutter under Help -> About Cutter. Cutter uses a different mutex for Qt version < 5.14.0. Might be some deadlock issue.

maskelihileci commented 6 months ago

Tested and the problem has been fixed, thank you for your effort.