Exception handling with null check in java
Your business logic is getting muddled with your error-checking logic. I would recommend extracting your "null-to-Exception" conversions into different methods, so they don't appear here.

Ideally, PEParser.parse() and PE.getSignature() would not return null values, and would instead throw an exception directly if they encountered an issue. If you have the option to change these methods, I would do so. Otherwise, I would recommend wrapping them in methods that will convert null return values to exceptions, like so:

PE GetPEFromPath(String path)
{
    PE pe = PEParser.parse(path);
    if (pe == null)
    {
        throw new IOException();
    }
    return pe;
}

PESignature GetSignatureFromPE(PE pe)
{
    PESignature ps = pe.getSignature();
    if (ps == null || !ps.isValid())
    {
        throw new IOException();
    }
    return ps;
}


These methods should return a valid object, or throw an exception - no other options. This way, we can write our business logic in a try block with no null-check interruptions, and if something fails, we will move gracefully to the catch block.

Now, we can transform your given code snippet into something more readable:

//not an elf file. try PE parser
try
{
    PE pe = GetPEFromPath(path);
    PESignature ps = GetSignatureFromPE(pe);
}
catch (IOException e)
{
    Toast.makeText(this, "The file seems that it is neither an Elf file or PE file!", 3).show();
    throw e;
}