
Learn mobile ethical hacking from scratch, mastering how attackers compromise mobile apps and devices and how to defend them, with modules on reverse engineering, network sniffing, and app manipulation.
Explore mobile ethical hacking through a hands-on course, covering device hacking, app vulnerabilities, reverse engineering, server and API security, and iOS/Android fundamentals.
Explore what a virtual machine is and why you need it to run multiple operating systems safely using VirtualBox; learn to spin up Linux or Windows environments and recover instantly.
Install VirtualBox on Windows, download from virtualbox.org, and install the extension pack; resolve runtime requirements with Microsoft Visual C++ Redistributable, then set up NAT network for virtual machines.
Install VirtualBox on macOS, a free virtualization tool, to create virtual machines for Kali Linux and other operating systems, including setting up the extension pack and a NAT network.
Download Kali Linux and understand its role as a free, open-source penetration testing distribution. Explore virtualization options like VirtualBox and VMware, 64-bit vs 32-bit, and course-specific OVA options.
Install Kali Linux from an OVA or 7-Zip file, import into VirtualBox, adjust network and hardware settings, and log in for hands-on security practice.
Troubleshoot Kali Linux installation on Windows by freeing disk space, enabling virtualization in BIOS, disabling Hyper-V, and choosing ISO/OVA or VirtualBox/VMware options across 64/32-bit setups.
Troubleshoot Kali Linux installation on macOS, catering to Intel and M1 Macs, and set up a Kali VM with UTM or VirtualBox using the correct ISO images.
Learn to create and manage snapshots in Virtual Box to save and restore Kali Linux states, enabling safe testing of tools, repositories, and configurations during ethical hacking.
Introduces Kali Linux and Linux basics, guiding you through the desktop, settings, and terminal usage—from adjusting display resolution and keyboard mapping to navigating the root terminal, file system, and workspaces.
Learn to navigate the Kali Linux terminal by using commands like pwd, ls, cd, mkdir, and touch to manage directories and files.
Explore moving and copying files with cp and mv, and deleting items with rm, including -r and -f options. Navigate directories like documents and test to manage notes.txt and folders.
Explore the Linux filesystem in Kali Linux, understanding key folders like bin, sbin, etc, var, www, tmp, home, root, and more, and how binaries, configurations, and services are organized.
Learn to use Linux package managers like apt to search, install, update, and upgrade tools in Kali Linux.
Learn to use nano and cat to view and edit files in Linux, save changes with control o, and understand permissions across root and user folders.
Learn about backdoors in mobile devices and how attackers may gain information and even access cameras.
Explores Android backdoors using Kali Linux, examining how malicious apps could access target devices via APK files and unknown sources, while discussing iOS app store restrictions.
Explore tunnel link services with ngrok to expose a Kali Linux web server to the internet, and learn to install, register, and authenticate ngrok for back-door testing and port forwarding.
Learn to set up an Android backdoor using ngrok tunneling and msfvenom, including deploying a reverse meterpreter connection via a crafted APK.
Explore how to listen for incoming connections with Metasploit's multi/handler and an Android meterpreter reverse payload, using ngrok, to establish a session from a malicious APK.
Explore mobile security testing with Kali Linux and Metasploit's Meterpreter on Android, reviewing session handling, file system navigation, and camera streaming capabilities.
Learn android development fundamentals by mastering Android Studio, then proceed to Java fundamentals, preparing for deeper topics like reverse engineering.
Download and install Android Studio from developer.android.com, an IDE that includes the JDK, then run the setup wizard, accept the license, and install all components for Windows.
learn how to download and install Android Studio on Mac, choose Apple Silicon or Intel chip, and use Android Studio as a free IDE for coding, designing and testing apps.
Create your first Android project in Android Studio with an Empty Views Activity, Java, and a valid package name and minimum SDK. Explore templates and XML UI.
Explore the android studio overview, configure sdk and jdk, adjust appearance and fonts, and understand the project structure, design vs code views, and gradle settings for emulator readiness.
Create a simple Android Studio app interface by placing an image view and a button, configuring drawables in res/drawable, and applying constraints for a consistent layout across screen sizes.
Wire a change button to a method in MainActivity by defining an onClick in XML and implementing public void changeImage(View v); test with logcat.
Learn to change an image in an Android app by declaring an ImageView, obtaining it with findViewById, and calling setImageResource with a drawable from the drawable folder to switch images.
Delve into Java fundamentals and Java 101, then build a simple application to practice core programming concepts in this course.
Explore Java fundamentals, including variables, sets, arrays, and the main method, by writing simple Java code in a no activity Android project and observing output in logcat.
Learn how to define and use variables in Java, including integers, doubles, floats, and longs, with examples in Android Studio and comments and basic arithmetic operations.
Continue exploring variables and data types, including double, float, integer, long, strings, and booleans. Practice double–integer arithmetic, calculate circle circumference with pi, and learn string concatenation with a space.
Explore how variables can change values and how the final keyword makes them constants that cannot be reassigned. See code runs in order, with logs showing each change.
Explore arrays as a data structure to store multiple values in Java, including string and integer arrays, initialization methods, and zero-based index access.
Master array lists in Java, a flexible alternative to arrays, learn to add, insert at indexes, and retrieve elements to handle dynamic data in Android apps.
Learn how a hashset stores unique elements and differs from arrays by preventing duplicates. Use add and size to manage and inspect entries, with James and case sensitivity as examples.
Explore the hash map data structure, storing key and value pairs with K and V, using put and get, and learn string-to-string and string-to-integer examples, plus primitive vs class types.
Learn how statements and operators drive if controls in Java, using booleans and comparisons (>, <, ==, !=, >=) and logical AND and OR to evaluate complex conditions.
Explore if statements, conditions, and else if blocks using examples like X less than Y and X equal to Y, with curly braces and else handling in Android development.
Learn how to replace a long if statement sequence with a switch statement, using case labels, break, and a default to map day numbers to weekday names.
Learn how to use a for loop in Java to iterate over an array from 0 to length-1. Apply an operation of dividing elements by three and multiplying by five.
Demonstrates for loops with lists by iterating over myNumbers, printing each element, and applying simple operations like divide by three and multiply by five, plus standalone loop basics.
Understand the while loop: it runs while a condition holds, prevents infinite loops by incrementing J each iteration, and breaks out when the condition no longer holds.
Explore the Android activity lifecycle and its methods, from onCreate to onStart, onResume, onPause, and onStop, with hands-on logging using logcat.
Learn how classes act as blueprints for objects, defining properties and methods; create a musician class and instantiate objects like James with name, age, and instrument.
Learn how to define and use constructors in Java to initialize object attributes with parameters, using this to distinguish class attributes from parameters, and instantiate objects like Musicians.
Explore how public, private, and protected modifiers control accessibility in Java. See how to use getters and setters in Android development with a Simpsons class example.
Explore how getters and setters control access to private attributes, enabling read access or controlled modification in a class, with practical examples such as getName and setName.
Build a simple calculator interface in Android Studio with two numbers, a result display, and four operation buttons, using edit texts, a text view, and explicit IDs.
Connects Android views with Java code in the main activity by defining onClick methods for sum, deduct, multiply, and divide, and binding edit texts and result text.
Build a calculator app by implementing a sum method that converts edit text inputs to integers with Integer.parseInt, adds them, and updates the result via resultText while handling non-numeric input.
Finalize a safe calculator by enforcing numeric input, switching to a number keyboard, and validating empty fields with input checks and error messages.
Explore Android development basics essential for reverse engineering, covering activities, services, broadcast receivers, and content providers, plus intents, the manifest, and building an APK.
Explore iOS development fundamentals and learn to run Swift code on an online platform to develop iOS apps from Windows, while noting the need for a MacBook.
Explore iOS development fundamentals by learning how to run Swift on Windows and Linux using online playgrounds, understand Xcode basics, and practice variables and constants.
Learn to set up macOS for iOS development by downloading Xcode from the Apple developer site, creating an Apple ID, and using beta or release versions with iOS 13.
Create your first Xcode iOS app by selecting the single view template with Swift and storyboard, and set the product name and bundle identifier.
Explore the Xcode interface, including the left and right panes, and learn core components like ViewController.swift, Main.storyboard, Assets, and signing settings for building iOS apps.
Learn to create and use a macOS simulator to build, run, and test your app, preview a Hello Swift label on iPhone XR, and test its behavior.
Design a simple iOS app interface in Xcode with an image view, a button, and a label, using assets and auto layout constraints.
Connect user interface elements to the view controller by creating outlets and actions, drag-and-drop views from the storyboard, and manage names to avoid breaking code.
Learn how to hook a button to a function, access an image view, and change its image using a UIImage named metallica2, building your first Swift app in Xcode.
Explore and study the course projects on github.com, download the zip if you want, and compare your code with mine while coding along to learn Swift basics.
Learn two fast ways to write and view Swift output: Playgrounds or a macOS command line tool with main.swift. Grasp variables and printing to see results instantly.
Define variables with var and constants with let to store data, follow camel case naming, and use print to observe value changes across code.
Explore strings with dot-accessed methods like append, lowercased, and uppercased, and learn how let and var govern integers, doubles, booleans, and type conversions in Swift.
Predefine variable types in Swift by declaring strings and numbers, and distinguish let versus var while defining, initializing, and assigning. Learn basic type conversion and common errors when mixing types.
Master arrays as efficient collections of values in Swift, covering indexing, count, last, and sorting, and compare string arrays with arrays of any types for flexible data handling.
Explore dictionaries as key-value pairings, map Pulp Fiction to Quentin Tarantino, update values, and compare with arrays and sets for data organization.
Master the while loop in swift for mobile ethical hacking, building a loop that runs while a condition holds, using numbers, booleans, comparison operators, and plus-equals increments.
Explore the for loop and its use with arrays, iterating over elements like banana, apple, and orange, printing values and applying operations such as dividing numbers by five.
Learn if controls and conditional logic, including else and else if, and/or operators, to evaluate numbers and strings in a playground and print results.
Create and call functions to organize code, pass two integers as inputs, and return outputs such as integers or strings; explore void returns and the function’s execution flow.
Learn how optionals prevent crashes by using optional strings, nil versus empty, and safe unwrapping with if let and the double question mark.
Build the worst calculator ever to practice four basic operations in Swift iOS, using a text field for user input and exploring fundamentals while following the instructor's guided hints.
Design a simple calculator app in Swift using Xcode, with text fields, buttons, and a result label, and configure placeholders, keyboard types, and auto layout for four basic operations.
Learn how to wire a calculator user interface in Swift by connecting text fields, a result label, and action buttons for add, subtract, multiply, and divide, with safe input handling.
Learn how to build a safe calculator in Swift by using if let to parse inputs, avoid force unwraps, and master scope from class to function and beyond.
Learn to build a musician class in a macOS command line tool using Swift, define properties, create objects, and implement an initializer to set up attributes and log creation.
Explore five access levels from private to open, focusing on how private restricts access to a class, internal defaults, and file private scope, with practical examples using Swift files.
Explore rooting and jailbreaking to gain administrator privileges on iOS and Android devices, and examine the iOS and Android sections to understand the process.
Explore rooting and jail breaking to understand how to gain admin access on iOS and Android devices, including using Cydia, other installation methods, legality, and warranty implications.
Google your iOS version to find a jailbreak tool. Learn how tools manipulate signatures from bootrom to kernel and install and run a jailbreak on your iPhone or iPad.
Explore jailbreaking iOS devices and using OpenSSH to SSH into your iPad from a Mac, install Cycript and Filza, and prepare for iOS reverse engineering tasks.
Explore popular rooting tools for Android devices, including Kingo Root and FramaRoot, and learn to enable unknown app installations for full root access and administrator capabilities.
Explore Android reverse engineering with hands-on tools such as Jadx, APK tool, and ProGuard. Learn how to work with Dalvik bytecode, signing, decrypting obfuscated apps, and hack a game.
Master Android reverse engineering by extracting Dalvik bytecodes and recovering Java source with jadx, using Apktool, Kali Linux setup, and hands-on app manipulation.
Install jadx and apktool on Kali Linux via apt-get, verify commands with help, and ensure JDK 8 or higher is installed for Android reverse engineering.
Install apktool and jadx on MacBook via manual setup, elevate to root, move tools to /usr/local/bin, and make them executable; brew can simplify jadx installation for Android reverse engineering.
Create a basic Android hello world app in Android Studio, then reverse engineer it using APK tool or JDX to study Dalvik bytecodes.
Decompile an Android app using apktool to inspect the manifest, resources, and Dalvik bytecode, including the MainActivity.smali, to understand the app structure and localization strings.
Unlock Dalvik bytecode basics to understand Android app behavior, then learn to manipulate the apk by editing text views and rebuilding the app.
Learn to decompile and rebuild an Android APK with APK tool, create a key store, and sign the app with Jar Signer to run on emulators or devices.
Explore how to use jadx to decompile an APK and view Java sources, compare with APK tool, and inspect Android manifests, resources, and the main activity for reverse engineering.
De-obfuscate an obfuscated apk with JDX using the -D obf option, compare results to APK tool, and examine Dalvik bytecode and readable code remnants.
Explore the game app code in Java, including the main activity, manifest, and XML layout, and inspect WordModel, ModelPopulator, and category logic to understand reverse engineering and obfuscation with proguard.
Explore Dalvik bytecode analysis and method manipulation to alter a game's score by setting P1 to one and leveraging contains checks and array lists.
Rebuild the app with apktool to create app-release.apk, sign it with a keystore, install on an emulator, and demonstrate manipulating dalvik bytecode to hack the game.
Master using cursor to reverse engineer an android game protected by proguard, using composer for large tasks and chat for code questions, and rename methods while analyzing game activity java.
Explore AI-assisted code comprehension for a mobile word-guessing game, including renaming variables and clarifying logic, and identify vulnerabilities like score manipulation with AI-driven security testing.
Explore iOS reverse engineering with concepts like assembly and hexadecimal, using a MacBook and a jailbroken iOS device for hands-on study.
Practice iOS reverse engineering by bypassing jailbreak detection on macOS with a jailbroken device, using IPA files, Cydia Impactor, and both Objective-C and Swift apps.
Explore assembly basics and its role in iOS reverse engineering, using Hopper Disassembler to disassemble an IPA on a jailbroken device, linking high-level languages to machine language.
Explore the hopper disassembler and hexadecimal concepts, interpret assembly with registers and comments, and visualize code to support iOS reverse engineering and jailbreak indicators.
Convert an ipa to a zip to extract contents, inspect the executable with iHex and Hopper Disassembler, and learn Cycript for easy app manipulation while noting free tool limits.
Discover Cycript, a tool for connecting to jailbroken iOS apps, reading app data, inspecting view controllers, and exploring methods to manipulate app behavior.
Manipulate a mobile app at runtime to bypass jailbreak detection and reveal the flag by routing to the second view controller, using viewController.prototype.isJailbroken and hopper disassembler.
Examine the Swift version of the jailbreaking app, switching from Objective-C, and use Hopper disassembler and Cycript with Swift, highlighting limitations in manipulating Swift view controllers.
Welcome to Mobile Ethical Hacking From Scratch online training!
We are going to start from scratch in this course and aim to learn all the details related to Ethical Hacking for Mobile Applications & Mobile Devices. Without any need of prior knowledge you will understand how hackers attack mobile applications & devices and protect yourself against these attacks. You will build your own hacking lab on your computer so that you can practice all the things that we are going to learn in this course.
Every student who wants to build their own server for API Pentesting section will be given free 25$ - 100$ credits from Digital Ocean.
This course is given by Atil Samancioglu who has more than 250.000 students on Udemy. Atil teaches Cyber Security & Mobile Application Development and he is also Mobile Application Development Instructor in one of the most prestigious universities in Europe.
You can see some of the topics that we are going to cover through the course:
Backdoor for Mobile Devices
Reverse Engineering
Game Hacking
App Manipulation
Network Monitoring
Linux Fundamentals
Firebase Hacking & Firebase Security
Root & JailBreak Operations
Dalvik Bytecode
Cycript
Jadx
Apktool
CTF Practices
Android Mobile Application Fundamentals
iOS Mobile Application Fundamentals
Java Fundamentals
Swift Fundamentals
API Pentesting
Content
This course is ideal for students who are willing to learn mobile device and mobile application penetration testing and ethical hacking. Whether you are a professional developer or just a beginner it does not matter. We are going to start from scratch and aim to learn all the details. At the end of the course you will be able to understand the vulnerabilities in real world and learn how to fix them.
Throughout the course we are not going to focus on pure theory. We are going to practice everything we learn with special apps and challenges specifically created for this course only! We are going to have real time hacking exercise.
Important Notice: You should use all the information in this course in legal boundaries. Please refer to your local cyber security laws and make sure you are on the Ethical Hacking side. All students taking this course must commit to this rule.
This course is eligible for the Codestars Certificate Authority (CCA) certificate. Students can take the official exam via codestarscom, and those who pass the quiz will receive their CCA certificate. (more details in the course!)