Senior Android Mobile Software Reverse Engineer
- The primary focus of this position will be on researching proof of concept techniques and reverse engineering vulnerabilities. The team works in a collaborative and agile environment with often-changing priorities and demands. The candidate should have a strong interest and demonstrated Android low-level Mobile Device development experience. The candidate must be a self-starter with the ability to take initiative in the work.
- Individual(s) assigned to this category shall have an understanding of how UIS code works and how analysts use UIS. Knowledge of XML structure, XML parsers, SQL and Perl is required. Development skills in Java threading/thread pooling, RMI, character set encoding, swing, JDBC, JMS, J2EE, Enterprise Java Beans, Web Logic, Servlets, and JSP are required.
Technical Skills Required:
- Working knowledge of various programming languages, Java, C/C++, Assembly, Python, Shell, etc.
- Experience with code execution in non-traditional manners using shell code and injected code
- Experience with manual loading and execution techniques
- Experience with network browser internals, HEAP internals, HEAP overflow, use after free and spray concepts
- Experience with some of the following:
- ARM/ X86/ other Android processors
- Android kernel, drivers, and JNI exposure; APKs for Android
- Reverse engineering and software analysis tools toolsets (eg. IDAPro)
- Debug tools for crash analysis
- Native debugging
- Web platform software (mobile software and mobile hardware)
- Experience with vulnerability research
Minimum Experience Required:
- Candidates shall have 12+ years of general experience in computer science, computer engineering, mathematics, or a related discipline, including at least 5 years of experience in software intensive projects and programs for government or industry customers. (Note: A bachelor’s degree in computer science, engineering, mathematics, or a related discipline, may be substituted for 4 years of general experience. A master’s degree in computer science, engineering, mathematics, or a related discipline, may be substituted for an additional two years of general experience.)
- Additionally, at least 4 years of the experience must have been as a software engineer supporting software architecture development, requirement analysis, process execution and evaluation, selection and evaluation of COTS/GOTS tools, and integration (with both new and existing systems).
- TS/SCI with Polygraph Required