profile
viewpoint
Glenn Smith CouleeApps Vector35 Vermont Security, games, game "security." C++/Rust and sometimes web/C#. @RPISEC

CouleeApps/mach_inject_32 6

Inject libraries into 32 processes on macOS Mojave

CouleeApps/MenuBarFilter 4

iOS-like dark menu bar for OSX

CouleeApps/DifViewer 3

Renders .dif files (MB Specification)

CouleeApps/BlazeBall 1

3D game engine, planned on turning into a marble game

CouleeApps/bn_function_view 1

Function dialog with all of the parameters, like I've always wanted (except not pretty)

CouleeApps/ropthing 1

ROP plugin for binja, in attempts to do Cool Stuff TM

CouleeApps/SpotifyOriginalMixer 1

Gets the Original Mix and Extended Mix for songs in trance radio shows

CouleeApps/ArgsGenerator 0

Generates C API functions for Torque 3D that will be used for linking with C#

CouleeApps/assimp 0

Official Open Asset Import Library Repository. Loads 40+ 3D file formats into one unified and clean data structure.

CouleeApps/backtrace-rs 0

Backtraces in Rust

issue openedVector35/binaryninja-api

Default window size is too small for Plugin Manager

The default window size for binja is 800x600, which is apparently small enough that the Plugin Manager cannot fit both its sidebar and content panels. Trying to resize the sidebar will cause the split view to glitch back and forth since neither view has enough space.

created time in 3 days

issue commentVector35/binaryninja-api

LinearView: cannot rename data variable without selecting its token

Considering the change type action supports this, it may be possible to reuse the code for rename.

CouleeApps

comment created time in 6 days

push eventVector35/binaryninja-api

Xusheng

commit sha 0eb7e152c9d7bf34fe0b597d926cdecc68ae32dc

add BNGetAddressRenderedWidth()

view details

Jordan Wiens

commit sha 251982483e5ac70e05b3ade60e4f312061b6e3de

small documentation updates

view details

Xusheng

commit sha 6d378e94ffb2fb87ceb531a97bb9fa4ecf666f50

add m_cursorAscii to linear view

view details

Glenn Smith

commit sha a536e7ccae49fb5141e9a959cff10500599993d4

Use Q_SIGNALS / Q_EMIT macros instead of signals / emit

view details

Brian Potchik

commit sha ba41ea9735bd55328a4e2b6c65fdbdb245b9ccad

Fix 'weak symbol override' warnings.

view details

Brian Potchik

commit sha 0ff1794278a96d0b5c23a0fc0280d1faf5687a94

Add High Level IL Mappings.

view details

Xusheng

commit sha b690e145b3620cac8ea3468fbabb47b645a0e5af

add cycleILView()

view details

Xusheng

commit sha cb26e00fc61263fa1680eb0b725c81b2299bc7bf

update definition for BNGetAddressRenderedWidth()

view details

Brian Potchik

commit sha c893956bdf6a016307ef90400f29adbe060a071a

Fix low_level_il access when MLIL is None.

view details

Brian Potchik

commit sha 20183f5e5b5d55112f64279180bdba2dae564605

Keep instruction address highlight when navigating to related IL views.

view details

Ryan Stortz

commit sha 430bf129d943c287d61fdea6f1e110aa16fd11a4

Documentation fixes and an api fix

view details

Ryan Stortz

commit sha 16019f2a175e3c459e4b99cd220ef86ee7853865

Add a type

view details

Jordan

commit sha a91f113c9597e23e7e4ada8ca1b0115ab2978061

clean up build instructions and flesh out example list

view details

Jordan Wiens

commit sha 9d56b84108d9ff110727e431766ee29669aee0a9

better handling of paths with spaces

view details

Jordan Wiens

commit sha 0e10983e83fbd5980aa4d2aed06057c3676bf402

fix desktop icon creation

view details

Brian Potchik

commit sha aca3edf17f3dba99664c5b3bfc7b7d084d8d21a3

Verify mlil is not None in high level IL mapping API.

view details

Jordan Wiens

commit sha f36ae0b490e1a975af86bd7b1ad6e729b7430929

enable binaryninjaui for python 3.9

view details

Josh Ferrell

commit sha 02003b1956aa818577cd7d92b5d5fc743cd1b6ac

Add proper indentation guides

view details

Peter LaFosse

commit sha 8b7f8358a16609779fb31af4b08bbea85ee46648

Add install option to download_headless script

view details

Peter LaFosse

commit sha 4fe229294f7b5b123a6dae58e0e4ce675531f7b8

stringify filename passed into get_view_of_type (py2/3 compatible fix for using py3 Path object)

view details

push time in 8 days

delete branch Vector35/binaryninja-api

delete branch : test_selection_fix2

delete time in 9 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha f91f427d50fdefc8c351963ff6ea2305016dcc1d

Keep track of mouse position when selecting

view details

Glenn Smith

commit sha 8961012dca58c18afcdf1985b1cb554a5b1ad4c2

Make var name consistent

view details

push time in 9 days

push eventVector35/binaryninja-api

Jordan Wiens

commit sha d57335f3649f34cdf0247f46b7880a7882d82c9c

small documentation update for python dependencies

view details

Rusty Wagner

commit sha 8210d6ed685415cfc545d66166d008377792fb1a

Fix stale references when modifying in place

view details

Jordan Wiens

commit sha 02098f30b88f25953532cb4ae20c6c1161b74603

updating linux troubleshooting documentation

view details

Glenn Smith

commit sha 0de53b97ef6cec57ab4bdfbb9a9e1b6503eecfab

UIContext notifications (eg file open/save)

view details

Brian Potchik

commit sha 95e0884cf4b7f0d956749cd75de95e8c93e124d0

Temporary LinearView selection patch to preserve reasonable behavior during analysis.

view details

Brian Potchik

commit sha d7a69a1e6a9203d399117ff70e3eba8acbfe8d3f

Fix broken parse_possiblevalueset documentation.

view details

Glenn Smith

commit sha 51f675ff93e6b6f00ee935dd2d2f1cb135f2df13

Don't build uinotification plugin on headless build

view details

Glenn Smith

commit sha d77c63efc16070868bf6eb87d274bf846f4440f7

Fix indent in two places

view details

Xusheng

commit sha cbe3ded641a0ce4b50ae447a4426b71f3e0f0119

edit current line in linear view add CanAssemble() to architectures

view details

Brian Potchik

commit sha 84230e606e8de3f7c01aa9006c7f14caf25c5c49

Cleanup load options when choosing to not open specific BinaryView types during open with options.

view details

Rusty Wagner

commit sha 13fdbe08bd92171c6d79b45cf331a3d82c25c10c

Deprecate BNInitCorePlugins/BNInitUserPlugins in favor of a common BNInitPlugins to allow platforms to load customized architecture plugins

view details

Glenn Smith

commit sha f91f427d50fdefc8c351963ff6ea2305016dcc1d

Keep track of mouse position when selecting

view details

Glenn Smith

commit sha 8961012dca58c18afcdf1985b1cb554a5b1ad4c2

Make var name consistent

view details

push time in 9 days

create barnchVector35/binaryninja-api

branch : test_selection_fix2

created branch time in 9 days

push eventCouleeApps/bn_function_view

Glenn Smith

commit sha 0e9532f853c18f3858b97a231217c8c0d121202a

Remove debugger

view details

push time in 10 days

push eventCouleeApps/ropthing

Glenn Smith

commit sha 05df606f1445c880912a00e82d9e4f2d7f51f5ba

Don't check address_size on null arch

view details

push time in 10 days

delete branch Vector35/binaryninja-api

delete branch : test_ui_callbacks

delete time in 10 days

issue openedVector35/binaryninja-api

LinearView: cannot rename data variable without selecting its token

If I have a line in LinearView which declares a data variable, I cannot press N to rename it unless i specifically highlight the variable's name token. It would be much better if I could press N with the whole line selected and rename the variable.

Here's a visual indicator of the difference:

Cannot rename (no token selected): image

Can rename (token selected): image

created time in 10 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha d77c63efc16070868bf6eb87d274bf846f4440f7

Fix indent in two places

view details

push time in 10 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 51f675ff93e6b6f00ee935dd2d2f1cb135f2df13

Don't build uinotification plugin on headless build

view details

push time in 10 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 0de53b97ef6cec57ab4bdfbb9a9e1b6503eecfab

UIContext notifications (eg file open/save)

view details

push time in 10 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 0de53b97ef6cec57ab4bdfbb9a9e1b6503eecfab

UIContext notifications (eg file open/save)

view details

push time in 10 days

issue openedVector35/binaryninja-api

Keybindings View: Support multiple bindings per-action

It would be nice to set multiple keybinds to one action, especially considering many actions default to having multiple bindings. Currently you cannot see any other than the first, so this would clean up that too.

created time in 11 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 9859758e38b04eb92d5f62070b2171cf0de2b9f2

UIContext notifications (eg file open/save)

view details

push time in 11 days

create barnchVector35/binaryninja-api

branch : test_ui_callbacks

created branch time in 11 days

issue commentVector35/binaryninja-api

Text selection inside tokens

The fix I'd expect would be to only activate char selection when there are 2 or more chars in the region.

CouleeApps

comment created time in 14 days

PR closed Vector35/binaryninja-api

Reviewers
Revert the tag api change introduced in 430bf12

Pull the tag change from 430bf12 into #2013 so it can be discussed there.

Currently the dev API is half-wrong or half-fixed (depending on your perspective)

+1 -1

1 comment

1 changed file

withzombies

pr closed time in 15 days

pull request commentVector35/binaryninja-api

Revert the tag api change introduced in 430bf12

Since the other PR was intended, this is unnecessary

withzombies

comment created time in 15 days

push eventVector35/binaryninja-api

Ryan Stortz

commit sha f1ff54227c0bf1cf1e4c559c552cf93c05f97f86

Return tag in all cases

view details

push time in 15 days

PR merged Vector35/binaryninja-api

Return tag in all cases

There's several copies of the create_*_tag function in binaryview.py and function.py:

def create_auto_data_tag(self, addr, type, data, unique=False):
	"""
	``create_auto_data_tag`` creates and adds a Tag object at a data address.

	:param int addr: Address at which to add the tag
	:param TagType type: Tag Type for the Tag that is created
	:param str data: Additional data for the Tag
	:param bool unique: If a tag already exists at this location with this data, don't add another
	:return: The created Tag
	:rtype: Tag
	"""
	if unique:
		tags = self.get_data_tags_at(addr)
		for tag in tags:
			if tag.type == type and tag.data == data:
				return

	tag = self.create_tag(type, data, False)
	core.BNAddAutoDataTag(self.handle, addr, tag.handle)
	return tag

In the unique=True case, it only creates a Tag if it'd be a unique Tag. It returns None otherwise. The docstring says this should return a Tag in all cases, but the docstrings rarely mention if it's meant to be an optional return value or not. As the code is written, this returns an Optional[binaryninja.Tag].

This PR changes it to return a copy of the matching Tag if the tag is not unique and unique=True is specified. This seems to be what's indicated by the docstrings (aka return type is binaryninja.Tag.

However, from an ergonomics standpoint, maybe we do want it to return an Optional[binaryninja.Tag]. When calling the function we could do something like this:

tag1 = bv.create_auto_tag(addr = 1234, type = some_tag_type, data = "zomg", unique=True)
tag2 = bv.create_auto_tag(addr = 1234, type = some_tag_type, data = "zomg", unique=True)
if tag2 is None:
   print("Tag already existed")
   # If i want that tag, I need to search for it in the tag list now

However, maybe we don't care if tags exist already or not? If we're setting unique=True maybe we just want a copy of the reference to the existing tag:

tag1 = bv.create_auto_tag(addr = 1234, type = some_tag_type, data = "zomg", unique=True)
tag2 = bv.create_auto_tag(addr = 1234, type = some_tag_type, data = "zomg", unique=True)
assert(tag1 == tag2)            # true
assert(id(tag1) == id(tag2)) # true 

I think we should go the route specified in the docstrings and in this PR.

+5 -5

0 comment

2 changed files

withzombies

pr closed time in 15 days

PullRequestReviewEvent

issue commentVector35/binaryninja-api

Text selection inside tokens

Implemented in 2.1.2454

CouleeApps

comment created time in 16 days

issue closedVector35/binaryninja-api

Text selection inside tokens

Allow users to select substrings of tokens (and therefore copy substrings). Re: #1973

Proposed design: If selection starts and ends within the same token, select a substring based on which characters were in the region. If selection covers more than one token, fallback to the original selection method of tokens only.

closed time in 16 days

CouleeApps

delete branch Vector35/binaryninja-api

delete branch : test_select_chars

delete time in 16 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 307fe4be9208636e54f90a24f6d0deb56512069d

Per-character text selection

view details

push time in 16 days

push eventVector35/binaryninja-api

Peter LaFosse

commit sha 8b7f8358a16609779fb31af4b08bbea85ee46648

Add install option to download_headless script

view details

Peter LaFosse

commit sha 4fe229294f7b5b123a6dae58e0e4ce675531f7b8

stringify filename passed into get_view_of_type (py2/3 compatible fix for using py3 Path object)

view details

Peter LaFosse

commit sha 80a816ceab3aef0bde19fe84284e073bd66ee422

Remove name setter for Variable object. Variable objects are always copies

view details

Brian Potchik

commit sha e145ab8a16ab72b00278f7967a9df5e4af48556e

Fix unittest saving database during analysis warning.

view details

Rusty Wagner

commit sha b3370836d13effb521cc35a603bcae90d1893f87

Dropping support for Python 2 in unit tests

view details

Xusheng

commit sha 720777f31913ba8c80f24c3460326764a24976a8

fix warning

view details

Glenn Smith

commit sha 307fe4be9208636e54f90a24f6d0deb56512069d

Per-character text selection

view details

push time in 16 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha aea5b903c476f73f5791745c0f502ca6a13055db

Per-character text selection

view details

push time in 16 days

create barnchVector35/binaryninja-api

branch : test_select_chars

created branch time in 16 days

issue openedVector35/binaryninja-api

Text selection inside tokens

Allow users to select substrings of tokens (and therefore copy substrings). Re: #1973

Proposed design: If selection starts and ends within the same token, select the a substring based on which characters were in the region. If selection covers more than one token, fallback to the original selection method of tokens only.

created time in 17 days

delete branch Vector35/binaryninja-api

delete branch : test_hexeditor64

delete time in 18 days

delete branch Vector35/binaryninja-api

delete branch : test_tag_fix

delete time in 18 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 3555a662d8c33722bf14b091d6c6cadb076a65b5

Context open/close notifications

view details

push time in 18 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 90ce03973a5cfed327f23db7b5486f275839f8d4

More UI callbacks

view details

push time in 19 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha 6f33a32bcf5e929c0ddd10f991191ae8c7dda38e

UIContext notifications (eg file open/save)

view details

push time in 22 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha cedd01371be60c732f88e15cca4db2087aa1ea08

DownloadInstanceRef

view details

push time in 24 days

push eventVector35/binaryninja-api

Glenn Smith

commit sha fb2a924590901e7c039e15407d345860664b13cf

More normal ilke

view details

Glenn Smith

commit sha 87a15cba3cff57007fc5932fc5f228f98bc7c2dd

KeyValueStore api

view details

Glenn Smith

commit sha b99f3d00e3ac29ac788a1ebe94369d9d684a5ad7

Remote dhview

view details

push time in a month

push eventCouleeApps/bn_function_view

Glenn Smith

commit sha c8049ccf283815ed5e1059e22a71f4aea8038cca

Oh

view details

push time in a month

create barnchCouleeApps/bn_function_view

branch : master

created branch time in a month

created repositoryCouleeApps/bn_function_view

Function dialog with all of the parameters, like I've always wanted (except not pretty)

created time in a month

push eventCouleeApps/ropthing

Glenn Smith

commit sha 3d35518c7d65b1653f7accccfb1fcd5a1fee1b48

Make loads not immediate, also wait for analysis

view details

push time in a month

create barnchCouleeApps/ropthing

branch : master

created branch time in a month

created repositoryCouleeApps/ropthing

ROP plugin for binja, in attempts to do Cool Stuff TM

created time in a month

delete branch Vector35/binaryninja-api

delete branch : test_more_ui_classes

delete time in a month

push eventVector35/binaryninja-api

Glenn Smith

commit sha a536e7ccae49fb5141e9a959cff10500599993d4

Use Q_SIGNALS / Q_EMIT macros instead of signals / emit

view details

push time in a month

create barnchVector35/binaryninja-api

branch : test_more_ui_classes

created branch time in a month

issue openedVector35/binaryninja-api

Type Parser: Cannot declare pointer to array

Pointers to arrays ane of the less common types, but still valid C.

Test case:

  • bv.parse_types_from_string("char (*test)[10];") Should return a variable of type Type.pointer(bv.arch, Type.array(Type.char(), 10))

created time in a month

push eventVector35/binaryninja-api

Xusheng

commit sha 75d05ea710f80a0ca2fdc53b638952a7a97e7ad8

display as in linear view

view details

Peter LaFosse

commit sha eb0aed7c4b15c37c46b15b5d9e32ceb93f2e1e95

Add support for custom flowgraph edges

view details

Peter LaFosse

commit sha 7bca065af179f88e47d547cbfeff3009bbcd8c22

Fix symbol list perf issue

view details

Jordan Wiens

commit sha 054be043b9b819406a91e3c4c4447015c5d90283

more detailed documentation for core_set_license

view details

Brian Potchik

commit sha 766746a4c82730f266e2ddd0dcb84eb4a09d56ca

Add setting to control logging in headless.

view details

Brian Potchik

commit sha 0fa07f755371447b9d733c6f89bb93f1ece5e7e1

Add 'disable_default_log' method in the Python API.

view details

Jordan Wiens

commit sha c18b89e4cabfc28081a7893ccd4cf8956c9a797f

add support to databuffers, cstr helper, and bv.write for bytearrays

view details

KyleMiles

commit sha fb72d65faa0df025cc5a5aaaeca850b401ab1d93

Fix #1857 and #1959; Fix bytes/bytearray/string handling for databuffers

view details

Jordan Wiens

commit sha 7921fd24f0716c50b8e23fc999994fa5085329cb

fixup broken warning syntax

view details

Brian Potchik

commit sha 8673a71c60bfcc88d60a8762e8e62d6443b528ce

Fix get_next_data_var_after when handling auto data variables shadowed by user data variables.

view details

Brian Potchik

commit sha d5f15cc005c0eed171d8e09356d298060dc5c98c

Fix get_next_data_var_after when handling auto data variables shadowed by user data variables, again.

view details

Josh Ferrell

commit sha d7f0132137609f09d3e69dd129628fd37b814b66

Pass settings handle in save_auto_snapshot

view details

Peter LaFosse

commit sha c2a04aabcb89142a6206d825fc1e954340de05da

Refactor download_headless.py - Support usage as a library - Optionally get license from a environment variable - Quiet output option

view details

Glenn Smith

commit sha 61a81d90d60e85fb9040bc4c2ec05d6166da87d0

Initial database api

view details

push time in a month

push eventCouleeApps/backtrace-rs

Glenn Smith

commit sha 7f8188192265308dbf09a94ba82ab17fa739f7a7

Fix compilation error on i686-apple-darwin targets symbolize::gimli::macho::Object expects syms to be a Vec<(..., u64)> but on i686 it gets initialized with a Vec<(..., u32)>. This just adds a cast to u64 to the syms generator so it typechecks.

view details

push time in a month

pull request commentrust-lang/backtrace-rs

Fix compilation error on i686-apple-darwin targets

Both compile and work but u64::into seems more obvious so I'll update the PR to use that.

CouleeApps

comment created time in a month

PR opened rust-lang/backtrace-rs

Fix compilation error on i686-apple-darwin targets

symbolize::gimli::macho::Object expects syms to be a Vec<(..., u64)> but on i686 it gets initialized with a Vec<(..., u32)>. This just adds a cast to u64 to the syms generator so it typechecks.

+1 -1

0 comment

1 changed file

pr created time in a month

PR closed CouleeApps/backtrace-rs

Fix compilation error on i686-apple-darwin targets

symbolize::gimli::macho::Object expects syms to be a Vec<(..., u64)> but on i686 it gets initialized with a Vec<(..., u32)>. This just adds a cast to u64 to the syms generator so it typechecks.

+1 -1

0 comment

1 changed file

CouleeApps

pr closed time in a month

PR opened CouleeApps/backtrace-rs

Fix compilation error on i686-apple-darwin targets

symbolize::gimli::macho::Object expects syms to be a Vec<(..., u64)> but on i686 it gets initialized with a Vec<(..., u32)>. This just adds a cast to u64 to the syms generator so it typechecks.

+1 -1

0 comment

1 changed file

pr created time in a month

create barnchCouleeApps/backtrace-rs

branch : fix-i686-apple-darwin

created branch time in a month

push eventVector35/binaryninja-api

Glenn Smith

commit sha bf2ded96e828ad91c873b69459300b2bb95e7fc8

Turn Snapshot into a Real Class

view details

push time in a month

issue commentVector35/binaryninja-api

Resource .dlls get a _start symbol that makes no sense.

Seems to be fixed. Resource dlls no longer get any code symbols as there are no segments mapped r-x

gynophage

comment created time in a month

create barnchVector35/binaryninja-api

branch : test_database_api

created branch time in a month

delete branch Vector35/binaryninja-api

delete branch : test_downloadprovider_custom

delete time in a month

push eventVector35/binaryninja-api

Glenn Smith

commit sha 33e31719d37deed58cfe709bf475b80fece8c34a

Custom request types and data transfer for DownloadProvider

view details

push time in a month

push eventVector35/binaryninja-api

Xusheng

commit sha 10315ca50d1679a7f5ca865e500356bd246c4c4e

allow redefining an existing type

view details

Chinmay

commit sha 78ae59ac4998ac66ff104f1ac6ef365b301feb43

Adds tests related to UIDF

view details

Chinmay

commit sha 167ced17956bbb79aee3a6e6ef88079d822427cb

Update API name for ParsePossibleValueSet

view details

Chinmay

commit sha 6b036f75273ff4b8ac1130d7524b320be096c15b

Fix Windows file deletion issue in tests

view details

Brian Potchik

commit sha 4b15ec8bebac3e04e954d4eb216df66cb101c02a

Enable python logging to stderr by default when in headless mode.

view details

Brian Potchik

commit sha 1acc58d472470f96f12ac4dfc78dc221775d18d3

Disable logging during headless unit tests.

view details

Glenn Smith

commit sha 33e31719d37deed58cfe709bf475b80fece8c34a

Custom request types and data transfer for DownloadProvider

view details

push time in a month

issue closedVector35/binaryninja-api

Polyglot functions are not represented in functions list

If two functions start at the same address but have different architectures (in a polyglot payload, for example), they show up twice in the function list as the same name with no way to differentiate between them. It should annotate the function list entries with the architecture so it is easy to tell which is which.

closed time in 2 months

D0ntPanic

issue commentVector35/binaryninja-api

Polyglot functions are not represented in functions list

Behavior of this has since changed, but is now buggy in a different way. Closing this in favor of #1948

D0ntPanic

comment created time in 2 months

push eventVector35/binaryninja-api

Xusheng

commit sha 63c8851d2a2efc9ad2ae811eaeaf719cfbc06ac9

add definition for LinearView::undefineVariable()

view details

Brian Potchik

commit sha 67db6cfda9647c0f384337e9f8f6702c1abb3210

Update unit tests to allow for specifying settings.

view details

Jordan Wiens

commit sha c1b11a0085c780ac3d5e3400a31ad939b376ede3

update snippets from latest plugin

view details

Xusheng

commit sha aa407ca14f6a99c5a953ff564461ec8dac1e0a84

allow redefining an existing type

view details

Brian Potchik

commit sha 299caeb6f532ac5686af6ae290e60e6aac38a9bb

Update Universal loader unit tests with BNDB round trip and open with options tests.

view details

Brian Potchik

commit sha 7feef7452f5d688a8d303a6fd137618d6bbf61c9

Fix universal loader BNDB round trip unit test.

view details

Brian Potchik

commit sha 53c13cfd2637652c2f8bf35922c02117d0682660

Fix universal loader BNDB round trip unit test.

view details

Glenn Smith

commit sha 2a96999a10576af59da64ecbed2720319ce29e80

Fix cmake generator target not copying python files

view details

Brian Potchik

commit sha a2f8486a67844b96ff3e339fc062275790396fe3

Fix universal loader BNDB round trip unit test.

view details

Brian Potchik

commit sha 01ca18b5aa4377a353df040f14f6c2a1490cb0cf

Update unit test generator to generate binary test options.

view details

Xusheng

commit sha 8107ec4778fc4bcb657974438a7c12131d62644a

fix parse_types_from_string()

view details

Xusheng

commit sha b946577b46bbd1c1120b7b346d037eb4750a9d9f

add InferArraySize()

view details

Xusheng

commit sha 62aa529de8a169578c80b14e3969b076f65be205

add definition for LinearView::createFuncWithPlatform()

view details

Chinmay

commit sha 73b649e79d5cd219cb56866abf2ee5e6a64d976a

UI changes for user-informed dataflow

view details

Jordan Wiens

commit sha e43ca43c14f211f03892621678146f4f7894be0e

typoe in the mlil documentation

view details

Glenn Smith

commit sha eb4cb1f16ed9ad097ec082216849e90b0a1338dc

Custom request types and data transfer for DownloadProvider

view details

Glenn Smith

commit sha f042f90069e1efb11401f6ec84d819d06c521d27

Fancier DownloadInstance python api

view details

Glenn Smith

commit sha 2b7e772cff66dd92d98291a58d9041a2ae0f14a3

Custom request responses

view details

Glenn Smith

commit sha c5cd39a44f5e23ff786b0590f000554714a3d14c

Python download provider (probably)

view details

push time in 2 months

issue openedVector35/binaryninja-api

Cannot select first/last byte leftwards on a line in Linear view

macOS 10.15 / BN 2.1.2371-dev

Attempting to select all bytes in one line of the hex dump of Linear view works only when dragging from left to right. When dragging from right to left, the first and last byte are not included.

Dragging left to right: image

Dragging right to left: image

created time in 2 months

delete branch Vector35/binaryninja-api

delete branch : test_fix_cmake_python

delete time in 2 months

push eventVector35/binaryninja-api

Glenn Smith

commit sha 2a96999a10576af59da64ecbed2720319ce29e80

Fix cmake generator target not copying python files

view details

push time in 2 months

push eventVector35/binaryninja-api

Brian Potchik

commit sha 7feef7452f5d688a8d303a6fd137618d6bbf61c9

Fix universal loader BNDB round trip unit test.

view details

Brian Potchik

commit sha 53c13cfd2637652c2f8bf35922c02117d0682660

Fix universal loader BNDB round trip unit test.

view details

Glenn Smith

commit sha 2a96999a10576af59da64ecbed2720319ce29e80

Fix cmake generator target not copying python files

view details

push time in 2 months

create barnchVector35/binaryninja-api

branch : test_fix_cmake_python

created branch time in 2 months

push eventVector35/binaryninja-api

Glenn Smith

commit sha 800f1640eae7e79c6dbc7e2d2be1e6b03b47600b

Fancier DownloadInstance python api

view details

Glenn Smith

commit sha beabd0dedc4a040ffc3935794c797dd765f45a26

Custom request responses

view details

Glenn Smith

commit sha 98e2644cbee144a003d106f957bc39c5c4683d51

Python download provider (probably)

view details

push time in 2 months

issue openedVector35/binaryninja-api

"Open with Options" dialog displays on top of other applications

  1. Start Opening with Options
  2. Pick file (to show dialog)
  3. Tab out to Finder
  4. Notice dialog is still on top

macOS 10.15 / BN 2.1.2364-dev

created time in 2 months

create barnchCouleeApps/timutil

branch : master

created branch time in 2 months

created repositoryCouleeApps/timutil

Simple CLI utility to interact with macOS's input library

created time in 2 months

push eventVector35/binaryninja-api

Kevin Burk

commit sha aa5e9651f1320e40222337e23410e6a2e9642ae9

Persistent setter for variable names.

view details

Kevin Burk

commit sha 3e1eb0eb575458a04c678ad413a2122fad7e0518

Reload default variable name when unset; don't clobber user type.

view details

Glenn Smith

commit sha 3ca46b1097dc20813c9b3ea2d9c9657a09680d06

More efficient analysis update

view details

Jordan Wiens

commit sha 25277f0cea0d6d8057acedd795a890fd00ed178e

update basic_block property documentation on flowgraphnode

view details

Jordan Wiens

commit sha 50b9d45f068c38812ccf0a081836fe21ac8326c6

add download script for headless install bundles for better CI automation

view details

Glenn Smith

commit sha 2be15b6aaff6ba8f31718b5d0e5b72f1edd50111

Don't trigger reanalysis in variable name updates Plugins should trigger the analysis themselves and update their variable objects after

view details

Glenn Smith

commit sha c73b0268d13928ee5ed980db8c4104cf0e0422ce

Better docs on variable.name = None

view details

Rusty Wagner

commit sha a2ea93d70200a7d8f6e948965285b48bffbbbade

Adding rust/curl to open source list

view details

Xusheng

commit sha 03ab2b6b83a3cc6e7723be071bdfac72208ac34d

allow changing the m_filename of FileContext

view details

Xusheng

commit sha b31008fbcd3f38190c44bba8e9f7757b45b40654

make setSelectionOffsets() pure virtual

view details

Glenn Smith

commit sha b4bc34b2d6b09cbb789bc489e2a8b564da25253a

Fix generator target depending on itself

view details

Glenn Smith

commit sha 4321e566154f97b3c87984723e0e0553fe60520e

Custom request types and data transfer for DownloadProvider

view details

push time in 2 months

delete branch Vector35/binaryninja-api

delete branch : test_cmake_xcode

delete time in 2 months

push eventVector35/binaryninja-api

Glenn Smith

commit sha b4bc34b2d6b09cbb789bc489e2a8b564da25253a

Fix generator target depending on itself

view details

push time in 2 months

push eventVector35/binaryninja-api

Jordan Wiens

commit sha d5a13d8d570e53af350f10b8a97368cf6ee7e711

small documentation typo in bv.hlil

view details

Xusheng

commit sha 55c2311a05cc24e66a8d22186716a95cf711eece

remove credit for libgit2

view details

Heran Gao

commit sha ff258fa32fc0911d2dc6b9c0853edb020cca7e60

fix lack of judgement whether c is None in binaryview.get_ascii_string_at()

view details

Chinmay

commit sha 03c47c0a8c0b4d02e1d2307c90c3e36b07ccfe68

Adds documentation for UIDF

view details

Chinmay

commit sha d50efcaed96c505235a3239c18c35986217df873

Incorporates review comments

view details

Rusty Wagner

commit sha acea8a46cde62af24b0bca4d47ec56ad027d8f14

Adding unit test binaries

view details

Josh Ferrell

commit sha d4804f23a48091f03f962d44a7a9c2fd6aeeee81

Documentation for SaveSettings and SaveOption

view details

Josh Ferrell

commit sha 3485769f83dbfce783df886689841db3a1544916

Allow negative indexing of hlil function

view details

Peter LaFosse

commit sha 1bb6a1a3c7a3d54855173f5a760cbb72b4fd5229

Add dot operator type

view details

Josh Ferrell

commit sha 538d936d936f3236337a51739ff71d5aac7e8743

Reverse search in scripting console

view details

Kevin Burk

commit sha aa5e9651f1320e40222337e23410e6a2e9642ae9

Persistent setter for variable names.

view details

Kevin Burk

commit sha 3e1eb0eb575458a04c678ad413a2122fad7e0518

Reload default variable name when unset; don't clobber user type.

view details

Glenn Smith

commit sha 3ca46b1097dc20813c9b3ea2d9c9657a09680d06

More efficient analysis update

view details

Jordan Wiens

commit sha 25277f0cea0d6d8057acedd795a890fd00ed178e

update basic_block property documentation on flowgraphnode

view details

Jordan Wiens

commit sha 50b9d45f068c38812ccf0a081836fe21ac8326c6

add download script for headless install bundles for better CI automation

view details

Glenn Smith

commit sha 2be15b6aaff6ba8f31718b5d0e5b72f1edd50111

Don't trigger reanalysis in variable name updates Plugins should trigger the analysis themselves and update their variable objects after

view details

Glenn Smith

commit sha c73b0268d13928ee5ed980db8c4104cf0e0422ce

Better docs on variable.name = None

view details

Rusty Wagner

commit sha a2ea93d70200a7d8f6e948965285b48bffbbbade

Adding rust/curl to open source list

view details

Xusheng

commit sha 03ab2b6b83a3cc6e7723be071bdfac72208ac34d

allow changing the m_filename of FileContext

view details

Xusheng

commit sha b31008fbcd3f38190c44bba8e9f7757b45b40654

make setSelectionOffsets() pure virtual

view details

push time in 2 months

push eventVector35/binaryninja-api

Glenn Smith

commit sha c73b0268d13928ee5ed980db8c4104cf0e0422ce

Better docs on variable.name = None

view details

push time in 2 months

push eventVector35/binaryninja-api

Glenn Smith

commit sha 2be15b6aaff6ba8f31718b5d0e5b72f1edd50111

Don't trigger reanalysis in variable name updates Plugins should trigger the analysis themselves and update their variable objects after

view details

push time in 2 months

pull request commentVector35/binaryninja-api

Persistent setter for variable names.

Huh looks like that does break, but only after the initial analysis finishes. Actually there shouldn't be any reanalysis done in a setter at all, for performance reasons. Using update_analysis_and_wait would just make the worse. The issue then is that the python Variable objects won't update their name.

xavierholt

comment created time in 2 months

push eventVector35/binaryninja-api

Kevin Burk

commit sha aa5e9651f1320e40222337e23410e6a2e9642ae9

Persistent setter for variable names.

view details

Kevin Burk

commit sha 3e1eb0eb575458a04c678ad413a2122fad7e0518

Reload default variable name when unset; don't clobber user type.

view details

Glenn Smith

commit sha 3ca46b1097dc20813c9b3ea2d9c9657a09680d06

More efficient analysis update

view details

push time in 2 months

PR merged Vector35/binaryninja-api

Persistent setter for variable names.

This is a fix for https://github.com/Vector35/binaryninja-api/issues/1871. Updates to variable names through the Python object's setter are now persisted into the binary as user vars, and setting the name to None or the empty string will restore the default name.

+10 -1

1 comment

1 changed file

xavierholt

pr closed time in 2 months

PullRequestReviewEvent

push eventxavierholt/binaryninja-api

Glenn Smith

commit sha f52f7535c245f33d3c9f569b4a13abc05cf50998

More efficient analysis update

view details

push time in 2 months

Pull request review commentVector35/binaryninja-api

Persistent setter for variable names.

 def name(self):  	@name.setter 	def name(self, value):-		self._name = value+		if self._function is None:+			self._name = value+		elif value:+			self._function.create_user_var(self, self._type, value)+			self._name = value+		else:+			self._function.create_user_var(self, self._type, "")+			self._function.view.update_analysis_and_wait()

A more efficient method would be to reanalyze only the updated function, and not the entire binary. self._function.reanalyze()

xavierholt

comment created time in 2 months

PullRequestReviewEvent

push eventVector35/binaryninja-api

Glenn Smith

commit sha 9042b602e255828304887dd72e44b88a97eb840b

Custom request types and data transfer for DownloadProvider

view details

push time in 2 months

push eventVector35/binaryninja-api

Josh Ferrell

commit sha d4804f23a48091f03f962d44a7a9c2fd6aeeee81

Documentation for SaveSettings and SaveOption

view details

Josh Ferrell

commit sha 3485769f83dbfce783df886689841db3a1544916

Allow negative indexing of hlil function

view details

Peter LaFosse

commit sha 1bb6a1a3c7a3d54855173f5a760cbb72b4fd5229

Add dot operator type

view details

Josh Ferrell

commit sha 538d936d936f3236337a51739ff71d5aac7e8743

Reverse search in scripting console

view details

Glenn Smith

commit sha 7aac53646455b8ac48fb2b41166246f00ae0be47

Custom request types and data transfer for DownloadProvider Support for custom requests in PythonDownloadProvider unordered_map instead of vector<pair>

view details

push time in 2 months

issue commentVector35/binaryninja-api

jump(pop) with dataflow resolved address does not update stack

And for reference, here is what the alternative lifting for ret produces: image

CouleeApps

comment created time in 2 months

issue openedVector35/binaryninja-api

jump(pop) with dataflow resolved address does not update stack

When binja is configured to lift return instructions as jump(pop), dataflow can resolve the address of the pop but does modify the stack. Lifting returns as esp = esp + 4 ; jmp *(esp - 4) resolves correctly.

Current behavior: image

Expected behavior:
After the first ret, the stack is popped and the second ret resolves to the next address pushed onto the stack, resolving an indirect jump, and continuing the chain.

Binary: asmtest.zip Arch hook for x86:

from binaryninja import *


class X86RetHook(ArchitectureHook):

    def __init__(self, base_arch):
        super(X86RetHook, self).__init__(base_arch)

    def get_instruction_info(self, data, addr):
        info = super(X86RetHook, self).get_instruction_info(data, addr)
        branches = info.branches
        # So dataflow doesn't stop at a return
        for b in branches:
            if b.type == BranchType.FunctionReturn:
                b.type = BranchType.UnresolvedBranch
        info.branches = branches
        return info

    def get_instruction_low_level_il(self, data, addr, il: LowLevelILFunction):
        is_ret = data[0] == 0xc3  # ret
        if is_ret:
            # Produces buggy behavior shown above
            il.append(il.jump(il.pop(il.arch.address_size)))

            # Produces correct dataflow
            # aas = il.arch.address_size
            # reg = "esp" if aas == 4 else "rsp"
            # il.append(il.set_reg(aas, reg,
            #                      il.add(aas,
            #                             il.reg(aas, reg),
            #                             il.const(aas, aas))))
            # il.append(il.jump(il.load(aas,
            #                           il.sub(aas,
            #                                  il.reg(aas, reg),
            #                                  il.const(aas, aas)))))
            return 1
        else:
            return super(X86RetHook, self).get_instruction_low_level_il(data, addr, il)


X86RetHook(Architecture['x86']).register()

created time in 2 months

issue openedVector35/binaryninja-api

Hot to cycle ILs in reverse order

Since pressing I cycles hotkeys forward, it would be if pressing Shift I cycled the ILs in the opposite order.

created time in 2 months

issue closedVector35/binaryninja-api

Mach-O header type creation fails for MH_PRELOAD (aka Kaitai: FileType.preload)

When parsing a MH_PRELOAD Mach-O file, Binary Ninja throws the error "Error during Mach-O header type creation!". The XNU header mach-o/loader.h specifies an MH_PRELOAD Mach-O as:

 * The file type MH_PRELOAD is an executable format intended for things that
 * are not executed under the kernel (proms, stand alones, kernels, etc).  The
 * format can be executed under the kernel but may demand paged it and not
 * preload it before execution.

Though poorly documented, the gist of an MH_PRELOAD Mach-O is in the name: it describes only the loading of a binary into memory. This means that the Mach-O header itself does not end up anywhere in the final memory layout, which is a case Binary Ninja's Mach-O parser does not seem to account for.

The loading of one of these mostly works fine, but one consequence of this behavior is that the beginning of the first segment (usually __TEXT) are parsed as a Mach-O header for the "header type creation" step, which fails spectacularly because the header was not actually relocated anywhere in the final memory layout and these bytes are actually supposed to be instructions.

The solution here is probably to either completely omit header type creation for MH_PRELOAD Mach-Os, or create a fake Mach-O header struct segment outside of the existing segments.

closed time in 2 months

Plailect

create barnchVector35/binaryninja-api

branch : test_downloadprovider_custom

created branch time in 2 months

push eventCouleeApps/xontrib-fzf-widgets

David Strobach

commit sha 4ddc776a84b44226ec87b55d9217cfe8d14d295a

Merge pull request #5 from CouleeApps/fix_cursor_position Move cursor to end of text on history insert

view details

Glenn Smith

commit sha 664468b6a3b8d535a8a8874932518987f53befee

Remove --no-sort to allow sorting results

view details

David Strobach

commit sha 208ba26ebe38714c121da0296055aaf34fd581c6

Merge pull request #6 from CouleeApps/sorted_results Remove --no-sort to allow sorting results

view details

David Strobach

commit sha 62aacd796c96b9ac9682b57d165105419c162c8d

Toggle history sorting by Ctrl-R

view details

push time in 2 months

pull request commentlaloch/xontrib-fzf-widgets

Remove --no-sort to allow sorting results

Or rather, when you search it sorts by matches first, time second (which is what i assume you want)

CouleeApps

comment created time in 2 months

pull request commentlaloch/xontrib-fzf-widgets

Remove --no-sort to allow sorting results

For reference, the sorting is still done by time, it's just also sorted when you search.

CouleeApps

comment created time in 2 months

more