Skip to content

basic block missing #29

@GoogleCodeExporter

Description

@GoogleCodeExporter
What steps will reproduce the problem?
1.  Disassemble attachmen in IDA and goto .text:100019A8   
2.  Notice the destination of this instruction isnt created as a basic block?  
jz      short loc_100019BD
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?
Latest pyew from source via hg clone.  Operating system on windows 7.

Please provide any additional information below.
Here is the toy script/harness I used to analyze basic blocks for the given 
program.

from pyew import *

def main(f):
    pyew = CPyew(plugins=True, batch=True)
    pyew.loadFile(f)
    print "Total basic blocks %d" % len(pyew.basic_blocks)
    for bb in pyew.basic_blocks:
      print "[*]", hex(pyew.getVirtualAddressFromOffset(bb))
if __name__ == "__main__":
    if len(sys.argv) == 1:
        print "Usage:", sys.argv[0], "<program file>"
    else:
        main(sys.argv[1])

When I output stdout to a text file I noticed that 100019BD  is not included in 
the basic blocks set.  It 'should' be as it is a code block has 1 direction in 
and 1 direction out.  I tried to look and debug the code in X86Analyzer within  
   def createFunction(self, addr):
 but couldn't figure out why the analysis code wasn't following the destination of the jump?  

Going to continue poking and update here accordingly.


Original issue reported on code.google.com by bar...@gmail.com on 20 Nov 2014 at 9:40

Attachments:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions