
Senior Reverse Engineer
AnaVation
- Lorton, VA
- Permanent
- Full-time
- Experience using industry standard RE tools (IDA Pro, Ghidra, JEB, Hopper) to determine how closed-source software functions
- Experience developing, debugging and/or reverse engineering code for popular mobile programming languages (i.e., Java, Objective-C, Swift, etc.)
- Experience with mobile device forensic analysis to include mobile device reverse engineering
- Experience determining how files are structured and identifying standard methods for encoding data
- Comfortable viewing, analyzing, and understanding raw binary data
- Ability to write programs in a variety of languages, such as C, C++, C#, Python and Java
- Understanding of how operating systems function, such as the separation between kernel and user space
- Knowledge of common mobile architectures and their associated instructions, including x86, ARM, and ARM64
- Experience working on multiple OS platforms, including Linux, Mac, Windows, Android, and iOS
- Experience with iOS and Android mobile development languages, including Java, Objective-C, or Swift
- Possession of exceptional interpersonal skills, including ability to: work alongside others, teach co-workers and clients/customers, and learn new technical trades and become a resident expert within a team
- Previous experience working in an agile development in Agile development teams for the development of software tools, including the ability to manage workloads through issue tracking software
- BA or BS degree with a preference in the areas of Computer Science, Electrical Engineering, Computer Engineer, or related discipline.
- Experience in identifying and exploiting vulnerabilities, such as memory corruption through stack overflows, heap overflows, integer overflows, and logical flaws
- Experience with mitigation to deter exploitation, such as ASLR, code signing, non-executable memory protections, and sandboxing
- Experience with methods to bypass exploit mitigation and detection techniques
- Experience with writing and running data fuzzers
- Expertise in analyzing results to identify vulnerabilities
- Understanding of how symmetrical and asymmetrical encryption functions and is implemented in various code flows
- Experience with relational database management systems (i.e., SQL and SQLite)
- Ability to analyze and decode data packets over a networked connection, and experience with network analysis tools (e.g., Wireshark)
- Knowledge of how IP/Serial based protocols work and how to reverse their format including checksums, MACs, encoding formats, HTTP, XML, etc.