set of code or instructions into a binary file to get an insight of its behaviour during execution. If we are instrumenting an application, not only can we get information about what is happening but also modify the flow when needed. Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
binaries whom code isn’t accessible as long as they run in a controlled system. - Source instrumentation: Add instrumentation code to source code, not feasible without access to it. Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
* Intel PIN: https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instr umentation-tool Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
by NowSecure and created by @oleavr (thanks!). - Not limited to desktop Operative Systems: It’s possible to instrument Android and iOS applications. - It can instrument applications on ARM. - Development is blazingly fast. - Bindings on the most popular languages, including Python, Java and NodeJS. Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
tasks. - Debugging applications without source code access. - Reverse engineering on desktop and mobile platforms. - Instrumentate applications in different architectures. Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
code are Javascript and TypeScript. It’s encouraged to operate with TypeScript for non-quick&dirty scripts. TypeScript allows for autocompletion and type-checking. Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
couple of things… - Frida bindings, we can install them via python-pip - A text editor - An application to debug ;) Frida API docs: https://frida.re/docs/javascript-api/ Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
of APIs or binary’s functions. NativeFunction( NativePointer, Return-type, argTypes[, abi]) Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
- Windows x64: win64 - UNIX x86: sysv, unix64 - UNIX ARM: sysv, vfp Application Binary Interface (ABI): Defines how data structures are accessed in machine code. On the contrary, an API defines this access via source Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
It returns the absolute address of the exportName passed as argument. Some examples: Module.findExportByName(null, “SLEEP”) Module.getExportByName(“KERNEL32.DLL”, “SLEEP”) Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
a plain text editor for Windows, it’s present in all Windows versions. - We can inspect what files it tries to open and/or create in the background. - We know for a fact that KERNEL32!CreateFileW is called for opening and/or creating files. Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8
DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); Questions? Feel free to ask via QR or http://slides.app.goo.gl/VNjg8