The candidate should have a strong interest and demonstrated experience with Windows development and thrive in a fast-paced environment with often-changing priorities and a demanding customer. Primary focus will be on researching proof of concept techniques, reverse engineering vulnerabilities and prototyping mobile activities. The candidate will work closely to identify requirements and translate those requirements into the required product. The team works in a collaborative and agile environment. The Software Engineer will be involved in all aspects of the software development lifecycle: assisting with architecture, design and development, user experience, documentation, unit testing, delivery, and maintenance. The candidate must be a self-starter with experience to work without direction.
Technical Skills Required:
- Perform open source research to identify potential vulnerabilities in mobile and desktop platforms and thoroughly document research.
- Analyze network communications to determine feasibility.
- Develop proof of concept code using appropriate languages (C/C++, Java, Python, etc.) to exercise identified mobile and/or desktop vulnerabilities to determine feasibility of productization.
- Productize proof of concept code for integration into supported platforms by developing complex applications and libraries written in appropriate language.
- Create and test plans for developed code.
- Develop appropriate support code to integrate capabilities into customer frameworks, data flows, and data repositories.
- Working knowledge of C/C++, Java, Python, Assembly, etc.
- Experience with code execution in non-traditional manners using shell code and injected code
- Experience with manual loading and execution techniques
- Experience with HEAP internals, HEAP overflow, use after free and spray concepts
- Experience with some of the following:
- ARM/ X86/ other assembly language
- Windows Interprocess Communication (Win IPC)
- Windows Management Implementation (WMI)
- Driver Programming
- Debug tools for crash analysis WINdbg
- Reverse engineering and software analysis tools toolsets such as IDAPro
- Debug tools for crash analysis gdb or equivalent
- Experience with designing software tools and subsystems to support software reuse and domain analyses and manage their implementation
- Experience with code O&M and working with inherited code
- TS/SCI with Polygraph required
Minimum Experience Required:
This position is contingent and does not yet have a LCAT assigned to it. We are researching candidates with this experience for our future position.