frida/frida.git
7 years agoAdd missing space to log message
Christoph Egger [Tue, 17 Feb 2015 13:27:32 +0000 (14:27 +0100)]
Add missing space to log message

7 years agoSwitch again BasicBlockWidget base -- to QGraphicsTextItem
Christoph Egger [Tue, 17 Feb 2015 13:25:47 +0000 (14:25 +0100)]
Switch again BasicBlockWidget base -- to QGraphicsTextItem

That one seems to be the final word here -- we'll see. Anyway it has
proper TextDocument / TextCursor support, can render HTML and is a
GraphicsItem so no playing to get scrollbars away -- it doesn't have
any.

7 years agoAdd some hotkeys
Christoph Egger [Mon, 16 Feb 2015 12:17:29 +0000 (13:17 +0100)]
Add some hotkeys

7 years agoRenaming functions
Christoph Egger [Mon, 16 Feb 2015 12:16:03 +0000 (13:16 +0100)]
Renaming functions

It's now possible to arbitrarily rename functions. Currently only the
name displayed in the sidebar is updated.

7 years agoFix width of basic blocks
Christoph Egger [Fri, 6 Feb 2015 15:13:22 +0000 (16:13 +0100)]
Fix width of basic blocks

7 years agoAdd test Framework
Christoph Egger [Fri, 6 Feb 2015 14:59:12 +0000 (15:59 +0100)]
Add test Framework

7 years agoClean up .gitignore -- we should build out-of-tree anyway
Christoph Egger [Fri, 6 Feb 2015 14:58:16 +0000 (15:58 +0100)]
Clean up .gitignore -- we should build out-of-tree anyway

7 years agoMake link to local functions clickable
Christoph Egger [Thu, 29 Jan 2015 22:08:56 +0000 (23:08 +0100)]
Make link to local functions clickable

call instructions now have a clickable target address that gets you to
the corresponding function iff this function is local to the object.

It still does just nothing on functions that are linked in from shared
objects or functionsthat were not created (shouldn't happen right now)

This also adds yet another map to the MainWindow with key/value pairs
that are not quite semantically nice but made implementation easy. We
need to think about how which objects are referenced from ithin the
mainwindow some tim in the future.

7 years agoProperly implement plane selection
Christoph Egger [Thu, 22 Jan 2015 18:54:23 +0000 (19:54 +0100)]
Properly implement plane selection

Does no longer rely on proper indexes (corresponding index in the listWidget and
in the stackedWidget) but actually remebers which plane belongs to which
list entry

7 years agoCleanup includes
Christoph Egger [Thu, 22 Jan 2015 18:54:14 +0000 (19:54 +0100)]
Cleanup includes

7 years agoAllow addition of new functions
Christoph Egger [Thu, 22 Jan 2015 18:53:27 +0000 (19:53 +0100)]
Allow addition of new functions

The ListWidget now displays a ContextMenu where the user can add a new
function by typing the address

7 years agoFix layout of basicblock with just one instruction
Christoph Egger [Thu, 22 Jan 2015 18:50:09 +0000 (19:50 +0100)]
Fix layout of basicblock with just one instruction

7 years agoAdd dynamically linked symbols
Christoph Egger [Wed, 21 Jan 2015 16:19:47 +0000 (17:19 +0100)]
Add dynamically linked symbols

7 years agoMarke BUG as fixed
Christoph Egger [Wed, 21 Jan 2015 12:20:30 +0000 (13:20 +0100)]
Marke BUG as fixed

Relevant commit: 9252262693432b33dbe4ffc60d79bbdc6fbb5f66

7 years agoGet entry address from llvm
Christoph Egger [Wed, 21 Jan 2015 12:19:18 +0000 (13:19 +0100)]
Get entry address from llvm

Replace magic offset + endianess-correction with proper LLVM functions
now that we have the full typed ELF Object available

7 years agoCreate ObjectFile only once and store it with full type
Christoph Egger [Wed, 21 Jan 2015 12:17:12 +0000 (13:17 +0100)]
Create ObjectFile only once and store it with full type

ObjectFiles was created twice, once to check the type it has and then
again to store and use it in the disassembler. We now create it only
once and store it with full type information for additional use

7 years agoCleanup <iostream> in main()
Christoph Egger [Wed, 21 Jan 2015 12:09:12 +0000 (13:09 +0100)]
Cleanup <iostream> in main()

7 years agoFix startup if no binary is specified on the commandline
Christoph Egger [Tue, 20 Jan 2015 15:34:37 +0000 (16:34 +0100)]
Fix startup if no binary is specified on the commandline

7 years agoMove back to QTableWidget so we get proper programmatic access to rows/cells
Christoph Egger [Thu, 15 Jan 2015 16:39:05 +0000 (17:39 +0100)]
Move back to QTableWidget so we get proper programmatic access to rows/cells

7 years agoMake function/jump targets clickable
Christoph Egger [Wed, 14 Jan 2015 17:00:28 +0000 (18:00 +0100)]
Make function/jump targets clickable

7 years agoimplement entryAddress()
Christoph Egger [Wed, 14 Jan 2015 16:51:01 +0000 (17:51 +0100)]
implement entryAddress()

at least silences warning and is not (really) more work than eliminating
the function

7 years agoMake LLVMDisassembler a template class
Christoph Egger [Wed, 14 Jan 2015 16:35:51 +0000 (17:35 +0100)]
Make LLVMDisassembler a template class

7 years agoLogging improvements
Christoph Egger [Sat, 10 Jan 2015 16:45:14 +0000 (17:45 +0100)]
Logging improvements

7 years agoAlso add blocks to function when splitting
Christoph Egger [Sat, 10 Jan 2015 16:44:50 +0000 (17:44 +0100)]
Also add blocks to function when splitting

7 years agoAdd logging infrastructure for mainwindow
Christoph Egger [Sat, 10 Jan 2015 16:44:12 +0000 (17:44 +0100)]
Add logging infrastructure for mainwindow

7 years agoMake name accessible in BasicBlockWidgets
Christoph Egger [Sat, 10 Jan 2015 16:43:23 +0000 (17:43 +0100)]
Make name accessible in BasicBlockWidgets

7 years agoFix layout if functions include blocks before entry
Christoph Egger [Sat, 10 Jan 2015 16:43:04 +0000 (17:43 +0100)]
Fix layout if functions include blocks before entry

If a function contained a block with a lower address than it's entry a
integer overflow occured resulting in bad layout. Handled now
correctly.

7 years agoformating improvements
Christoph Egger [Thu, 8 Jan 2015 17:45:43 +0000 (18:45 +0100)]
formating improvements

7 years agoremove more madness from llvm-config flags
Christoph Egger [Thu, 8 Jan 2015 17:44:54 +0000 (18:44 +0100)]
remove more madness from llvm-config flags

7 years agoMore bugs
Christoph Egger [Thu, 8 Jan 2015 17:43:41 +0000 (18:43 +0100)]
More bugs

7 years agoSplit blocks before finishing function
Christoph Egger [Thu, 8 Jan 2015 17:42:04 +0000 (18:42 +0100)]
Split blocks before finishing function

7 years agoProperly color text part of basic block widgets
Christoph Egger [Thu, 8 Jan 2015 17:40:21 +0000 (18:40 +0100)]
Properly color text part of basic block widgets

If the text was smaller than the minimum, rendering was ugly

7 years agoBUGS file
Christoph Egger [Wed, 7 Jan 2015 20:44:04 +0000 (21:44 +0100)]
BUGS file

7 years agoUse QGraphicsProxyWidget
Christoph Egger [Wed, 7 Jan 2015 20:41:22 +0000 (21:41 +0100)]
Use QGraphicsProxyWidget

This way the qlabel widget can be accessed properly (clicking and stuff)

7 years agoRemove debug output left in unintentionally
Christoph Egger [Wed, 7 Jan 2015 20:38:37 +0000 (21:38 +0100)]
Remove debug output left in unintentionally

7 years agoWhitespace cleanup
Christoph Egger [Tue, 6 Jan 2015 21:26:57 +0000 (22:26 +0100)]
Whitespace cleanup

7 years agoAdd in an Information Manager
Christoph Egger [Tue, 6 Jan 2015 21:23:25 +0000 (22:23 +0100)]
Add in an Information Manager

Now individual functions are added to the GUI via signals. This is the
way it was alwasys supposed to work. Now Information flow is cleaner,
we can add support to save things and we can properly tag things as
functions and rerun the disassembler.

Also includes some whitespace cleanup for technical reasons

7 years agoCleanup sourcetree
Christoph Egger [Mon, 5 Jan 2015 16:19:13 +0000 (17:19 +0100)]
Cleanup sourcetree

7 years agoConsistently use include-guards
Christoph Egger [Sat, 3 Jan 2015 17:51:56 +0000 (18:51 +0100)]
Consistently use include-guards

7 years agoAdd some simple samples for screenshots and similar stuff
Christoph Egger [Sat, 3 Jan 2015 10:43:34 +0000 (11:43 +0100)]
Add some simple samples for screenshots and similar stuff

7 years agochange QT signals to QT_NO_KEYWORDS
Christoph Egger [Sat, 3 Jan 2015 10:38:00 +0000 (11:38 +0100)]
change QT signals to QT_NO_KEYWORDS

making room for bost::signal as core messaging infrastructure (it's
more flexible than Qt's signals).

7 years agoConsistent coloring
Christoph Egger [Thu, 18 Dec 2014 12:25:14 +0000 (13:25 +0100)]
Consistent coloring

7 years agoQTableWidget -> QLabel + HTML
Christoph Egger [Thu, 18 Dec 2014 12:19:51 +0000 (13:19 +0100)]
QTableWidget -> QLabel + HTML

7 years agoSpace table widget appropriately for Qt < 5.3
Christoph Egger [Thu, 18 Dec 2014 11:57:42 +0000 (12:57 +0100)]
Space table widget appropriately for Qt < 5.3

Works this way at least with 5.2 from Ubuntu 14.04

Note: this is a backup commit before replacing the whole thing by QLabel
      + HTML just in case we want to get back to this implementation one
      day

7 years agoOnly disassemble the text segment
Christoph Egger [Thu, 18 Dec 2014 11:21:33 +0000 (12:21 +0100)]
Only disassemble the text segment

7 years agoSplit disassemble()
Christoph Egger [Fri, 12 Dec 2014 23:40:37 +0000 (00:40 +0100)]
Split disassemble()

disassemble() still does take care of initial disassembling of the
binary. However parts needed to (interactively) start disassembling
further parts are now separated.

7 years agoUpdate TODO with all kinds of fancy ideas on what might be done
Christoph Egger [Mon, 8 Dec 2014 16:15:07 +0000 (17:15 +0100)]
Update TODO with all kinds of fancy ideas on what might be done

7 years agoproperly include std::array
Christoph Egger [Sun, 7 Dec 2014 16:59:09 +0000 (17:59 +0100)]
properly include std::array

7 years agoFallbacks if we do not have symbols
Christoph Egger [Sun, 7 Dec 2014 16:54:04 +0000 (17:54 +0100)]
Fallbacks if we do not have symbols

try to use the ELF entry address or start of .text

7 years agoCorrectly handle the case where we do not have Instruction Analysis
Christoph Egger [Sun, 7 Dec 2014 16:52:34 +0000 (17:52 +0100)]
Correctly handle the case where we do not have Instruction Analysis

7 years agoAdd support for backward edges
Christoph Egger [Thu, 4 Dec 2014 18:56:15 +0000 (19:56 +0100)]
Add support for backward edges

7 years agoAdd horizontal space between BasicBlockWidgets
Christoph Egger [Sat, 29 Nov 2014 00:22:34 +0000 (01:22 +0100)]
Add horizontal space between BasicBlockWidgets

7 years agoHorizontally distribute BasicBlockWidgets
Christoph Egger [Fri, 28 Nov 2014 23:19:58 +0000 (00:19 +0100)]
Horizontally distribute BasicBlockWidgets

We still need to add a bit of space between them but the currently
used QT API doesn't trivially allow that

7 years agoAdd CFGScene QGraphicsScene taking care of BasicBlock stuff
Christoph Egger [Fri, 28 Nov 2014 21:52:02 +0000 (22:52 +0100)]
Add CFGScene QGraphicsScene taking care of BasicBlock stuff

Rearranges BasicBlocks to look nicely and draws the arrows. There is
lots of stuff left here like backwards edges that are just ignored for
now.

7 years agoChange BasicBlockWidget and assume upperLeft is (0, 0) in local coordinates
Christoph Egger [Fri, 28 Nov 2014 21:50:23 +0000 (22:50 +0100)]
Change BasicBlockWidget and assume upperLeft is (0, 0) in local coordinates

7 years agountabify
Christoph Egger [Thu, 27 Nov 2014 12:19:59 +0000 (13:19 +0100)]
untabify

7 years agoFix widget setup for scripting
Christoph Egger [Thu, 27 Nov 2014 12:18:03 +0000 (13:18 +0100)]
Fix widget setup for scripting

7 years agoProperly handle errors in sceme
Christoph Egger [Thu, 27 Nov 2014 12:16:05 +0000 (13:16 +0100)]
Properly handle errors in sceme

Catch exceptions, no longer exit on them and print the content on the
console

7 years agoClean up LLVM Linking and use LLVM.so
Christoph Egger [Wed, 26 Nov 2014 19:32:54 +0000 (20:32 +0100)]
Clean up LLVM Linking and use LLVM.so

LLVM.so prevents segfaults when running with an llvmized graphics
driver as it avoids linking against LLVM multiple times (and using
incompatible versions).

7 years agoAdd guile scripting
Christoph Egger [Wed, 26 Nov 2014 19:28:59 +0000 (20:28 +0100)]
Add guile scripting

7 years agoRemove -O2 from llvmflags. it's none of libllvm's business
Christoph Egger [Wed, 19 Nov 2014 15:48:55 +0000 (16:48 +0100)]
Remove -O2 from llvmflags. it's none of libllvm's business

7 years agoMake commandline parser optional to build against cip qt 5.1
Christoph Egger [Wed, 19 Nov 2014 15:46:36 +0000 (16:46 +0100)]
Make commandline parser optional to build against cip qt 5.1

7 years agoForward-port to LLVM 3.5 release
Christoph Egger [Wed, 19 Nov 2014 15:46:18 +0000 (16:46 +0100)]
Forward-port to LLVM 3.5 release

8 years agoDistinguish single edges from double edges
Christoph Egger [Tue, 3 Jun 2014 17:19:51 +0000 (19:19 +0200)]
Distinguish single edges from double edges

8 years agoDraw edges between BasicBlockWidgets while handling loops
Christoph Egger [Tue, 3 Jun 2014 17:05:30 +0000 (19:05 +0200)]
Draw edges between BasicBlockWidgets while handling loops

8 years agoInclude absolute branch address
Christoph Egger [Tue, 3 Jun 2014 17:04:37 +0000 (19:04 +0200)]
Include absolute branch address

8 years agoproperly preserve edges
Christoph Egger [Tue, 3 Jun 2014 17:03:19 +0000 (19:03 +0200)]
properly preserve edges

The address behind the basic block is always another basic block. This
does not imply we should split this block.

8 years agoAlways add following blocks even if it is already created
Christoph Egger [Tue, 3 Jun 2014 17:02:17 +0000 (19:02 +0200)]
Always add following blocks even if it is already created

If the jump target already existed it was not even registered

8 years agoAdd more logging output
Christoph Egger [Tue, 3 Jun 2014 14:51:07 +0000 (16:51 +0200)]
Add more logging output

8 years agoremove old garbage
Christoph Egger [Tue, 3 Jun 2014 14:50:44 +0000 (16:50 +0200)]
remove old garbage

8 years agoName Blocks according to start *and* end address
Christoph Egger [Tue, 3 Jun 2014 14:49:46 +0000 (16:49 +0200)]
Name Blocks according to start *and* end address

8 years agoUse first row as reference instead of second
Christoph Egger [Tue, 3 Jun 2014 14:48:35 +0000 (16:48 +0200)]
Use first row as reference instead of second

Now blocks with only exactly one instruction are printed properly

8 years agoClean up disassemble() function
Christoph Egger [Tue, 3 Jun 2014 13:25:42 +0000 (15:25 +0200)]
Clean up disassemble() function

8 years agoMove stuff for BasicBlockWidget out of the header file
Christoph Egger [Tue, 3 Jun 2014 13:25:14 +0000 (15:25 +0200)]
Move stuff for BasicBlockWidget out of the header file

8 years agoSplit BasicBlocks if there are backward jumps
Christoph Egger [Tue, 3 Jun 2014 13:24:57 +0000 (15:24 +0200)]
Split BasicBlocks if there are backward jumps

8 years agoRemove grid
Christoph Egger [Tue, 3 Jun 2014 12:15:17 +0000 (14:15 +0200)]
Remove grid

8 years agoMove to table widget -- looks nicer and matches better
Christoph Egger [Tue, 3 Jun 2014 11:57:23 +0000 (13:57 +0200)]
Move to table widget -- looks nicer and matches better

8 years agoFix height of BasicBlockWidgets
Christoph Egger [Sat, 31 May 2014 10:25:44 +0000 (12:25 +0200)]
Fix height of BasicBlockWidgets

8 years agoresize widgets to fit content
Christoph Egger [Tue, 27 May 2014 15:24:27 +0000 (17:24 +0200)]
resize widgets to fit content

8 years agoSome documentation
Christoph Egger [Tue, 27 May 2014 15:01:50 +0000 (17:01 +0200)]
Some documentation

8 years agoFill BasicBlockWidgets with actual assembly instructions
Christoph Egger [Tue, 27 May 2014 14:58:36 +0000 (16:58 +0200)]
Fill BasicBlockWidgets with actual assembly instructions

8 years agoplace BasicBlockWidgets on the canvas
Christoph Egger [Tue, 27 May 2014 14:17:48 +0000 (16:17 +0200)]
place BasicBlockWidgets on the canvas

We'll later layout things properly properly using force based
layouting. However we still want BasicBlocks loosely sorted by Address
and consistent behaviour for taken/not taken jumps

8 years agoProperly create and export BasicBlock linking
Christoph Egger [Tue, 27 May 2014 14:17:13 +0000 (16:17 +0200)]
Properly create and export BasicBlock linking

8 years agoSome hints on which packages to install
Christoph Egger [Tue, 27 May 2014 13:24:42 +0000 (15:24 +0200)]
Some hints on which packages to install

8 years agoPass function instead of name
Christoph Egger [Tue, 27 May 2014 13:20:08 +0000 (15:20 +0200)]
Pass function instead of name

8 years agoFail if llvm can not be found
Christoph Egger [Tue, 27 May 2014 13:19:53 +0000 (15:19 +0200)]
Fail if llvm can not be found

8 years agoRemove old API
Christoph Egger [Tue, 27 May 2014 12:41:20 +0000 (14:41 +0200)]
Remove old API

8 years agoClean up git output
Christoph Egger [Tue, 27 May 2014 12:40:03 +0000 (14:40 +0200)]
Clean up git output

8 years agoDisplay entries for all functions
Christoph Egger [Tue, 27 May 2014 12:37:01 +0000 (14:37 +0200)]
Display entries for all functions

8 years agoFixup magit madness
Christoph Egger [Tue, 27 May 2014 12:36:24 +0000 (14:36 +0200)]
Fixup magit madness

8 years agoAvoid memory leak
Christoph Egger [Tue, 27 May 2014 12:35:18 +0000 (14:35 +0200)]
Avoid memory leak

8 years agoAdd interface to iterate over functions
Christoph Egger [Tue, 27 May 2014 12:34:51 +0000 (14:34 +0200)]
Add interface to iterate over functions

8 years agoExplicitely use llvm-config-3.5 as older versions won't work anyway
Christoph Egger [Tue, 27 May 2014 11:23:23 +0000 (13:23 +0200)]
Explicitely use llvm-config-3.5 as older versions won't work anyway

8 years agoUse target addresses for basic block linking
Christoph Egger [Tue, 27 May 2014 11:21:36 +0000 (13:21 +0200)]
Use target addresses for basic block linking

8 years agoDowngrade outputs to 'DEBUG'
Christoph Egger [Tue, 27 May 2014 11:20:52 +0000 (13:20 +0200)]
Downgrade outputs to 'DEBUG'

8 years agoRemove old leftovers
Christoph Egger [Tue, 27 May 2014 11:20:13 +0000 (13:20 +0200)]
Remove old leftovers

8 years agoRecursive disassembler
Christoph Egger [Mon, 26 May 2014 13:23:23 +0000 (15:23 +0200)]
Recursive disassembler

Disassemblers properly recursive. Doesn't yet really build the
neccessary data structure. Also doesn't handle jump targets in the
middle of preexisting basic blocks properly.

8 years agoAlso handle case with no filename provided
Christoph Egger [Fri, 23 May 2014 16:33:45 +0000 (18:33 +0200)]
Also handle case with no filename provided

8 years agoChange window title to FRIDA
Christoph Egger [Fri, 23 May 2014 16:33:16 +0000 (18:33 +0200)]
Change window title to FRIDA

8 years agoAllow opening of binary via comman argument
Christoph Egger [Fri, 23 May 2014 16:20:38 +0000 (18:20 +0200)]
Allow opening of binary via comman argument