Skip to content

PDB import plugin prompting for user input when loading headlessly #7836

@emesare

Description

@emesare

I am attempting to generate WARP files headlessly and am using the example here.

When I run I get the following:

emesare@Masons-MacBook-Pro release % ./warp_headless -o vc9.warp /Users/emesare/Documents/VC/lib                                    
⠁ ======================================== 0/0 (100%) [00:00:00] {u:0|a:0|p:0|d:0}                                                                                                                                                                                                                                                                                                                                                
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠚ >--------------------------------------- 7/521 (1%) [00:00:00] {u:501|a:13|p:0|d:7}                                                                                                                                                                                                                                                                                                                                             
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠴ >--------------------------------------- 46/2546 (2%) [00:00:00] {u:2486|a:14|p:0|d:46}                                                                                                                                                                                                                                                                                                                                         
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠖ =>-------------------------------------- 106/2558 (4%) [00:00:01] {u:2438|a:14|p:0|d:106}                                                                                                                                                                                                                                                                                                                                       
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠐ =>-------------------------------------- 120/2558 (5%) [00:00:02] {u:2424|a:14|p:0|d:120}                                                                                                                                                                                                                                                                                                                                       
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠚ ======>--------------------------------- 572/3431 (17%) [00:00:12] {u:2845|a:13|p:1|d:572}                                                                                                                                                                                                                                                                                                                                      
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠤ ===============================>-------- 6155/7776 (79%) [00:01:13] {u:1607|a:14|p:0|d:6155}                                                                                                                                                                                                                                                                                                                                    
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠐ ================================>------- 6225/7781 (80%) [00:01:14] {u:1542|a:14|p:0|d:6225}                                                                                                                                                                                                                                                                                                                                    
This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?
⠂ =======================================> 8982/9045 (99%) [00:06:23] {u:55|a:8|p:0|d:8982}    

After processing ~9000 files the worker threads finally are all halted waiting for me to provide input, this should not be the default behavior, I understand a headless binary can register an interaction handler, however that should not be required when simply loading a binary.

The code that spawns these prompts is:

match ask.as_str() {
"true" => {},
"ask" => {
if interaction::show_message_box(
"No PDB Information",
"This file does not look like it was compiled with a PDB, so your PDB might not correctly apply to the analysis. Do you want to load it anyway?",
MessageBoxButtonSet::YesNoButtonSet,
binaryninja::interaction::MessageBoxIcon::QuestionIcon
) == MessageBoxButtonResult::NoButton {
return Err(anyhow!("User cancelled missing info load"));
}
}
_ => {
return Err(anyhow!("File not compiled with PDB information"));
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    DebugInfo: PDBRelated to parsing PDB filesEffort: TrivialIssues require < 1 day of workImpact: MediumIssue is impactful with a bad, or no, workaround

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions