prosch88 / UFADE

Extract files from Apple devices on Windows, Linux and MacOS. Mostly a wrapper for pymobiledevice3. Creates iTunes-style backups and "advanced logical backups"
GNU General Public License v3.0
147 stars 10 forks source link

Stucking after acquisition #6

Open Fabiobsc110 opened 4 weeks ago

Fabiobsc110 commented 4 weeks ago

HI I have a problem in the GUI version of UFADE for windows. It recognizes the phone without problems, acquires the device, but does not finalize the task. Once it reaches 100% it does not proceed with the operations. The application responds but it is as if it is unable to close the generated tar (in the destination folder I correctly see the tar_temp folder). Any ideas? Thanks

prosch88 commented 4 weeks ago

Do you use the compiled version? Or did you clone the repository? Do you get some output in the terminal?

prosch88 commented 4 weeks ago

Also:

Fabiobsc110 commented 4 weeks ago

Thanks for the reply. I used the compiled version. the terminal doesn't appear when I run the exe. Is there a way to recall it?

iPhone XR Logical + Backup

prosch88 commented 4 weeks ago

Just checked the Windows version but I can't reproduce the issue. Make sure to use a reliable cable connection. If you clone the repository, you can run UFADE from the terminal and get an error output.

Fabiobsc110 commented 4 weeks ago

I will try and then update you. Thanks you for your checks

jensstigaard commented 3 weeks ago

I have experienced the same issue as described by the original author. I use the Win executable version 0.9.4. I am attempting to acquire a Apple iPhone 12 running iOS 18.0.1. UFED style Logical acquisition. The phase that the application is stuck in during acquisition, is in "Performing Extraction of Shared App-Files". The application shows the process is 100%, but never proceeds from there. As far as I can see, the issue is possibly related to the method shared_app_files (https://github.com/prosch88/UFADE/blob/main/ufade_gui.py#L1351) As I see in the .tar_tmp dir, some directories are created, and I am not sure whether files are actually put here during acquisition for further processing.

Perhaps the logging should be extended somehow, for actually giving some feedback on how much is processed.

prosch88 commented 3 weeks ago

Extended logging is planned. For now, are you able to clone the repository to provide some output? Most likely the problem occurs when trying to put the files in the zip.

prosch88 commented 3 weeks ago

Does the issue occur with the "regular" advanced extraction too?

DRCRecoveryData commented 1 week ago

Tested on Iphone 11 Pro IOS 18.0.1:

prosch88 commented 1 week ago

What's the output for Capacity and Used?

DRCRecoveryData commented 1 week ago

Disk Use: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ Capacity: 64.00 GB Used: 62.39 GB Free: 1.61 GB

Ah i mean the bar look like not have % and Capacity and Used still show normal

prosch88 commented 1 week ago

Your disk is almost full (at least pmd3 is reporting this). The output is correct. The disk usage output in the device menu may differ.

DRCRecoveryData commented 1 week ago

Your disk is almost full (at least pmd3 is reporting this). The output is correct. The disk usage output in the device menu may differ.

Does the gui can be full screen when click maximum button?

I have an checkm8 ramdisk files list to boot into ramdisk and extract via ssh can you add to full filesystem part?

prosch88 commented 1 week ago

Scaling to fullscreen isn't activated. You may change this if you want: "self.resizable(False, False) to (True, True)" But this will mess with the button layout and most likely break some functions.

So how big is your ramdisk collection? Adding this to the repo would make the tool incredibly big. A submodule may be possible. It's possible to add this but not easily done for all supported platforms. You need a way to enter pwndfu. Ipwndfu could be added for linux and macos. On Windows libusbk could be used. Also ipwndfu does not work reliable for all checkm8 devices. I prefer to implement functions that work kind of reliable on all platforms. There is a lot that can go wrong, you see? ;)

DRCRecoveryData commented 1 week ago

Scaling to fullscreen isn't activated. You may change this if you want: "self.resizable(False, False) to (True, True)" But this will mess with the button layout and most likely break some functions.

So how big is your ramdisk collection? Adding this to the repo would make the tool incredibly big. A submodule may be possible. It's possible to add this but not easily done for all supported platforms. You need a way to enter pwndfu. Ipwndfu could be added for linux and macos. On Windows libusbk could be used. Also ipwndfu does not work reliable for all checkm8 devices. I prefer to implement functions that work kind of reliable on all platforms. There is a lot that can go wrong, you see? ;)

yes, how can i contact you before release them ? ^^

DRCRecoveryData commented 1 week ago

After fixing size by:

class MyApp(ctk.CTk):
    def __init__(self):
        super().__init__()

        self.stop_event = threading.Event()

        # Define Window to Maximize
        self.title("Universal Forensic Apple Device Extractor 0.9.4")
        self.state('zoomed')  # Maximizes the window on Windows
        self.resizable(True, True)

        if platform.uname().system == "Darwin":
            self.iconpath = ImageTk.PhotoImage(file=os.path.join(os.path.dirname(__file__), "assets", "ufade.icns"))
        else:
            self.iconpath = ImageTk.PhotoImage(file=os.path.join(os.path.dirname(__file__), "assets", "ufade.png"))
        self.wm_iconbitmap()
        self.iconphoto(False, self.iconpath)

        # Font
        self.stfont = ctk.CTkFont("default")
        self.stfont.configure(size=14)

        # Create Frames with grid configuration to make them responsive
        self.left_frame = ctk.CTkFrame(self, width=340, corner_radius=0, fg_color="#2c353e", bg_color="#2c353e")
        self.left_frame.grid(row=0, column=0, sticky="nswe")
        self.grid_columnconfigure(0, weight=1)
        self.grid_rowconfigure(0, weight=1)

        self.right_frame = ctk.CTkFrame(self, fg_color="#212121")
        self.right_frame.grid(row=0, column=1, sticky="nswe")
        self.grid_columnconfigure(1, weight=3)

        # Widgets (left Frame)
        if platform.uname().system == 'Windows':
            self.info_text = ctk.CTkTextbox(self.left_frame, fg_color="#2c353e", corner_radius=0, font=("Consolas", 14), activate_scrollbars=False)
        elif platform.uname().system == 'Darwin':
            self.info_text = ctk.CTkTextbox(self.left_frame, fg_color="#2c353e", corner_radius=0, font=("Menlo", 14), activate_scrollbars=False)
        else:
            self.info_text = ctk.CTkTextbox(self.left_frame, fg_color="#2c353e", corner_radius=0, font=("monospace", 14), activate_scrollbars=False)
        if lockdown is not None:
            self.info_text.configure(text_color="#abb3bd")
        else:
            self.info_text.configure(text_color="#4d5760")
        self.info_text.insert("0.0", device)
        self.info_text.configure(state="disabled")
        self.info_text.pack(fill="both", expand=True, padx=10, pady=10)

        # Initialize menu
        self.menu_var = StringVar(value="MainMenu")

        # Placeholder for dynamic frame
        self.dynamic_frame = ctk.CTkFrame(self.right_frame, corner_radius=0, bg_color="#212121")
        self.dynamic_frame.pack(fill="both", expand=True, padx=0, pady=0)
        self.current_menu = None

        # Show Main Menu
        if lockdown is not None:
            if ispaired:
                self.show_cwd()
            else:
                self.show_notpaired()
        else:
            self.show_nodevice()
2024-10-29_141122 2024-10-29_141152
prosch88 commented 1 week ago

Use it this way if you like. I'm keeping the size as it is.

DRCRecoveryData commented 1 week ago

Use it this way if you like. I'm keeping the size as it is.

I have test that screenshoot is stuck when taking some screenshoot in roll page up in Messenger app can you check this issue on ios 17 and ios 18?

prosch88 commented 1 week ago

Are you able to start the flow again after it got stuck? The flow is depending on the design of the app, the usage of gifs and so on.