Flag: Tornado! Hurricane!

 Forums >>  Brainstorms - General  >>  Error in logic for generating CFG of functions in Paimei

Topic created on: August 17, 2010 09:45 CDT by tosanjay .

While working with Paimei, I observed that I was not able to generate control flow graph (CFG) of function properly (for a particular executable). The CFG was broken. This forced me to analyse source code of the Paimei. As a result, I found that logic to create CFG (of basic blocks as nodes) is erroneous (in function.py module) of pida. Anybody has observed it before? For example, if the assembly has code of following type:
--
stmt1: ......
stmt2: ......
........
stmt4: jnz stmt9 <----
.......
stmt6: jnz stmt10 <----
....
stmt8: mov eax, ebx
stmt9: jmp stmt2   <----------imp
stmt10: mov eac, [ebp+8]
......
stmt18: jnz stmt9 <----
.......
stmt6: jnz stmt10 <----
....
........
In the above code, Paimei will create a basic block with stmt9 as node (which is correct), but also creates an edge to node stmt10, which is wrong. Also, Paimei will not create an edge from BB stmt9 to stmt2 (which, otherwise should be the case).
I have modified the algorithm (given in function.py) to create nodes and edges of CFG and it seems to be working fine. I am curious if others have observed anything like this.
thanks

  jduck     August 17, 2010 15:19.02 CDT
Are you planning to contribute your changes back to the community?

  tosanjay     August 19, 2010 07:05.14 CDT
Yes, why not. that is why I posted here and asked others if they had faced this issue. I have sent a mail to Pedram to get his opinion, but so far no reply from him. If he responds, I can be sure about this problem/solution and things can go ahead.

Note: Registration is required to post to the forums.

There are 28,224 total registered users.


Recently Created Topics
Reverse Engineering ...
Jan/23
Career: DoD Agency I...
Jan/22
"Disappearing&q...
Jan/17
Career: Software Sec...
Jan/11
Where is the call st...
Jan/07
IDA Pro 6.1 Breakpoi...
Jan/01
How to create data s...
Dec/30
can i search all mod...
Dec/23
IDA symbol table exp...
Dec/20
An anti-attach trick
Dec/17


Recent Forum Posts
Reverse Engineering ...
NirIzr
"Disappearing&q...
NirIzr
Reverse Engineering ...
charlie
"Disappearing&q...
charlie
An anti-attach trick
Bass
An anti-attach trick
waleeda...
An anti-attach trick
Bass
An anti-attach trick
waleeda...
An anti-attach trick
Bass
Looking for value in...
NirIzr


Recent Blog Entries
cmathieu
Feb/07
Hacker Carnival

waleedassar
Feb/06
OllyDbg v1.10 And Hardware ...

waleedassar
Jan/31
Yet Another Anti-Debug Trick

RolfRolles
Jan/22
Finding Bugs in VMs with a ...

waleedassar
Jan/13
An OllyDbg Bug Disables Sof...

More ...


Recent Blog Comments
waleedassar on:
Feb/07
OllyDbg v1.10 And Hardware ...

NirIzr on:
Feb/07
OllyDbg v1.10 And Hardware ...

NirIzr on:
Feb/05
Yet Another Anti-Debug Trick

trolotou on:
Feb/05
Doudoune Moncler -Pennies F...

waleedassar on:
Feb/01
Yet Another Anti-Debug Trick

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit