I am using radare2 to analyze libpng_amd64.so.1.6.34, commands are as follows:
r2 = r2pipe.open(binary_file)
r2.cmd('aaa')
funcs = r2.cmdj('aflj')
len(funcs) is 461, but the number of functions got by IDA is 526, besides the numbers of strings, imports, exports... are also different.
I checked the result of radare2 and found some issuses, for example, the function png_write_row
is followed by png_write_rows
. Radare2 can not identity the second function png_write_rows
and consider all code of those two functions to png_write_row
. IDA works correctly.
Why they are different? and Why radare2 can not identity functions correctly? how can I use it to get correct results?