 Ok, je t'ai redonné Os, puis là, la stream est partie. Looks good. Soit. Merci. Bon matin. Bonjour Maxime. Bon matin, ça va bien ? Très bien et toi ? Ça va bien, oui. J'ai plusieurs micros différents et plusieurs caméras différentes. Est-ce que tu m'entends bien avec celui-là ? Oui, ça va très bien. Ok, super. Alors je vais rester avec ça, je vais continuer mon setup. Merveilleux. Je vois qu'il y a des gens qui sont dans la waiting room, c'est toi qui t'occupe de les faire entrer, qu'on s'éloigne, c'est ça ? Oui. Je peux le faire rentrer maintenant si vous préférez, sinon je vais attendre à l'avant. Ou peut-être attendre un tout petit peu encore, parce que je ne suis pas encore totalement prêt. Merveilleux. Juste valider. On approche de l'heure de départ. Est-ce que je laisse rentrer les gens ? Excusez-moi, Maxime, tu as des petitions, comment c'est ça ? En fait, je demandais à Axel si on était prêt pour laisser rentrer les gens de la salatante. Merveilleux. Donc je vais commencer ça. Tu as eu une intro à faire, ou je partage directement mes slides, Maxime ? C'est à la préférence, je peux faire une introduction, mais on peut commencer aussi tout de suite. D'accord, je vais mettre les slides, vu que j'ai un slide d'intro, comme ça, ce n'est pas vraiment la peine. Merveilleux. Mais je vais commencer pile à l'heure pour que les gens aient bien le temps de joindre et pas de se mettre de commencer direct en tard. Merveilleux. Alors, je vais... Normalement, tu dois voir mes slides qui apparaissent. Maxime, c'est bon pour toi si je commence ? Oui, on peut y aller. OK. OK. Donc, bonsoir, bonsoir, bonsoir, bonsoir, tout le monde. Tout le monde. Et merci d'avoir participé pour ce premier workshop à la Norte Sec, où nous serons réversés, et avec Red Malweb. Donc pour le Smart & Lazy, comme je l'ai dit, parce que nous serons en utilisant des outils advanced qui ont vraiment aidé à aller plus vite en réversant des applications. Donc, Malweb, en fait. Donc, qui suis-je ? Alors que ce n'est peut-être pas le plus important, je travaille tous les jours sur Red Malweb ou IoT Malweb. Réverser ces Malwebs, et voir ce qu'ils font, et détecter à Fortinet. Donc, c'est très en ligne avec mon métier de travail. Vous avez des matériaux de training. Donc, j'ai une copie-paste, c'est-à-dire aussi dans le canal de Discord, afin que vous n'aurez pas de type. Mais, c'est-à-dire que c'est là que vous allez obtenir les matériaux pour ce workshop. Ok, donc, je vais faire les copies-pastes correctement. Il y a une copie-paste, là-bas. Donc, c'est le canal de Discord pour le Nord Sec. Vous allez, juste un souvenir, vous devez avoir d'accesses pour les workshops, vous devez aller dans le workshop et vous devez avoir le lien avec RedMellware. Vous devez être aware si il y a des espaces, mais je ne suis pas très certaine. Je vais vous dire si il y a un problème dans la chute. Ok, donc, nous devons retourner à ces deux différents sites. Mais, dans ces deux, vous devez trouver deux différents sites. Vous pouvez partager. C'est la chrétine, je vais prendre le credit. Vous devez voir que ce petit lien est dans le Manga, et vous devez avoir une petite chute. Et là, avec la sample, nous allons analyser, et l'autre, c'est la PDF, qui est l'exercice de cette workshop. Ok, alors, vous dîtes. l'analyse d'un passe-garde, l'analyse d'un passe-garde est infecté, ce n'est pas difficile à trouver dans l'analyse, et cela contient une active et une réelle malheur. Donc, s'il vous plaît, s'il vous plaît, s'il vous plaît, cela signifie que l'un des plus stupides éros, mais commune éros, est d'essayer d'aller avec l'USB, votre smartphone sur votre laptop, et ensuite, vous vous mettez à l'installer sur l'AMulata, et vous installez sur votre smartphone. Donc, vous êtes à l'aise. Je vous recommande que, dans l'ensemble du travail, si vous avez un smartphone Android, vous n'aurez pas de plug-in sur votre laptop. Ok, donc, de cette façon, vous êtes un peu plus sûrs. Si vous avez quelque chose que vous avez faimé, ce n'est pas comme ça, vous vous pliez sur votre smartphone de cette façon. Ok, donc, oui. Vous en avez des. C'est assez petit, donc ce n'est pas long d'essayer. Et ensuite, quand vous ouvrez ça, je peux vous montrer ce que ça vous ressemble à. Je vais aller dans la vraie vectorie correcte. Vous avez, en fait, une vraie vectorie, dans laquelle il y a juste un sample, celui que nous allons travailler sur durant cet entire workshop. Et ici, vous avez des solutions pour certaines des questions que je vais poser dans les exercices. Bien sûr, ce sont des spoilers. Je ne regarde pas dans l'advance. Mais après, si vous avez besoin d'eux, ou si vous avez besoin d'un, ou ce ou cette exercice, vous avez la solution. Ok, le manuel. Le manuel ressemble à ce que c'est. C'est assez grand. Ok, ce genre de, c'est-à-dire, 27 pages. Les premières pages sont beaucoup en train d'établir votre environnement du travail. Il y a un peu de l'information sur l'adb, la signature, ce genre de choses. Et puis, la partie la plus importante est la lave. C'est là où nous avons les différents exercices que nous allons travailler sur. Ok. Et puis, l'épendix est très bien installé sur les tools. Ok. Donc, si vous avez un problème et vous ne savez pas ou vous ne savez pas comment installer ce ou cet outil, ce sera dans cette partie. Ok. Et bien sûr, pour les exercices que nous avons dans cet outil, certains outils sont un peu difficiles à installer. Donc, vous avez assez de probablement à regarder dans la partie l'épendix précisément pour voir comment installer ce ou cet outil. Ok. Mais nous avons un temps, c'est trois heures et ça ne devrait pas être un peu de racheter. Et je pense que nous devons probablement pouvoir remplir tout par les trois heures. Je vais retourner aux slides. Le channel Discord. Bien, si vous reconnaissez, vous allez tomber si il y a quelque chose d'autre. Mais basicalement, vous avez un service Discord qui est pour NorthSec. Donc, vous devez rejoindre ça, bien sûr. Et puis, basicalement, vous devez avoir accès à cette section de workshop. Vous devez envoyer quelque chose à l'épendix pour avoir le rôle correspondant. Et puis, si ça va bien, vous devez avoir accès à la section de malware Android. Et c'est là qu'on va discuter pendant les exercices. Ok, je vais parler un peu au début, puis vous devez présenter le premier exercice. Et puis vous devez un peu pour quelques minutes sur votre propre. Vous travaillez sur les exercices. Et si vous avez des problèmes, ne vous devez jusqu'à la fin jusqu'à la solution. Vous me demandez directement sur le discord, soit direct message ou sur la chaîne de malware Android. Vous me dites que je suis faite à ce point ou quelque chose comme ça. Et je vous ai aidé. Ok, c'est ce que c'est pour. Maintenant, préparez votre environnement de travail. Donc, si vous n'avez pas fait ça encore, s'il vous plaît, vous devez mettre sur le studio Android parce que c'est un peu un peu plus grand. C'est le moyen recommandé d'installer vos emulators de Android. Ok. Si vous savez ou si vous avez déjà un emulator de Android qui travaille d'une certaine façon, c'est parfaitement bien. Ok. Pas de problème avec ça. Je vous recommande que vous portez le prochain emulator de 8664. C'est ce que vous utilisez sur votre laptop, bien sûr. Android 8, si possible, ou greater. Ok. Alors, nous ne serons pas utilisés beaucoup de nouvelles features ou des choses comme ça, mais ce n'est pas quelque chose d'incompréhensible et ce n'est pas quelque chose vraiment totalement comme la plus récente. Mais la partie plus importante est que votre emulator ne devrait pas avoir Google Play dans ça. Ok. Google API est OK, mais pas Google Play parce que certains des tools qu'on va utiliser là-bas ne travaillent si Google Play n'est pas installé. Alors, la autre chose que vous devez installer c'est le JETX. C'est un compiler pour Android. Si vous avez un autre compiler ou un compiler qui est bien aussi, vous pouvez l'utiliser. Ce n'est pas vraiment quel outil vous utilisez. Si vous avez, je ne sais pas, un compiler JET pour exemple, vous pouvez l'utiliser si vous voulez l'utiliser Android et vous savez comment l'utiliser. C'est parfaitement bien aussi. Ok. Donc, whatever. Ceci pour le workshop est bien parce que ce n'est pas très grand pour l'utiliser. Donc, vous pouvez facilement l'utiliser. Ok. Donc, la plus grande partie va être installer l'Adroid Emulator parce que le sample ménage qu'on va travailler et qu'on va l'utiliser dans l'Emulator bien sûr, pas sur un smartphone réel. Alors, bien, j'ai fait un special slide sur ça sur l'environnement virtuel parce que j'ai fait ce workshop avec des collègues et des choses comme ça et ça toujours termine les problèmes que nous avons après parce que l'environnement virtuel. Ok. Et surtout quand vous essayez de piloter l'environnement virtuel sur les autres. Donc, l'Adroid Emulator si possible comme possible je vais juste vérifier je vois que j'ai deux choses là chat Oh, oui, c'est bien c'est bien très bien Ok. Si donc, ne pilotez pas sur l'environnement virtuel parce que si vous mettez l'Adroid Emulator dans l'Emulator c'est basically l'Emulator et puis l'Emulator et puis votre hôpital Ok. Vous êtes vous s'entendez sur votre machine à chaque étape, bien sûr, à la nourriture à chaque étape et aussi avoir potentie de communication en-delà de là-bas. Donc, si vous ne pouvez pas faire d'une autre façon faire de cette façon, bien sûr. Ok. Si vous n'avez vraiment pas d'autres solutions mais vous êtes préparés à dealer avec ces problèmes après. Ok. D'ailleurs, s'il vous plaît, installez l'Emulator directement sur votre hôpital et nous serons utilisés dans l'excalibur aussi, la même chose, installez-le directement sur votre hôpital si possible. Ok. Donc, c'est vraiment pour l'exercice après. Donc, nous serons travaillés sur les packers sur très bien. Je vais peut-être poursuivre un petit peu et vous montrer le manuel. Donc, le manuel est dans ici. Ok. Donc, nous allons dans la section de l'exercice et la première chose est qu'on va installer l'excalibur. Donc, je vais mettre ce petit peu plus grand dans ici. Donc, bien, allez-y. Dépendez le manuel. Allez-y à la première la x01. C'est un collier qui est très bien installé. L'excalibur. Fais-le les étapes qui sont dans ici. L'excalibur est un dynamique et il y a un catalogue guide là-bas. Et je peux probablement montrer ça. Non, c'est pas ici. C'est dans ici. Ok. Donc, c'est l'excalibur install pour l'excalibur. Donc, note J.S. Frida et le Java. Ceux-là sont pas très difficiles d'installer. Ceux-là peuvent être un peu plus échiers, dépendant de votre système et de ce qu'ils soient avec Node.js. Ok. Fais-le l'excalibur install dans là-bas. Et quand vous vous êtes là-bas, il y a beaucoup d'informations en cas qu'il y arrive. En ce moment, à ce point, nous serons prêts pour travailler avec l'excalibur. Ok. Donc, c'est ceci. Vous voulez qu'il y ait une fois qu'il y ait cette étape, raise vos mains quelque part sur le discord ou sur le zoom ici. Donc, je sais que vous êtes prêts. En même temps, je pense que nous allons juste arrêter de parler ici. Et piquez-moi sur le discord quand vous avez un problème. Ok. Avec l'installation de l'excalibur ou de l'excalibur de votre matériel workshop ou quelque chose d'autre. Ok. Donc, je vais vous voir en peut-être quelque chose de 10 minutes ou d'autres. Ok. Donc, quelqu'un m'a demandé comment être sûr de ne pas aller à Google Play. Donc, je vais réveiller mon écran pour vous montrer comment ne pas le voir. Donc, ici, quand vous vous avez ouvert l'institut d'Android Studio, vous vous configurez et vous commencez A.V.D. Manager. Là. Ok. Et ensuite, dans l'A.V.D. Manager, ce sont tous les emulators que j'ai personnellement et cela vous montre si vous avez Google APIs ou Google Play. Donc, pour exemple, celui-ci a Google Play, celui-ci n'a rien. celui-ci a et ceux-ci ont Google APIs. Et donc, quand vous créez une nouvelle chose, on ne peut pas vraiment parler de la définition de la téléphone. Je l'ai cliqué sur la prochaine. Donc, c'est là que vous pouvez choisir vos images et voir que tous ces ont Google Play. Donc, si vous vous mettez x86 ici, vous avez quelques qui ne sont pas Google Play. Google APIs, pour exemple, ici, rien, Google APIs, rien, rien. Ok? Donc, cela devrait répondre votre question à l'arrivée. Je vais commencer à partager. Je vais partager l'image après-midi. Donc, je vais partager encore mon écran et parler un petit peu des packers. Donc, pourquoi sommes-nous installés des calibres? Nous installons des calibres parce qu'on va réverser un Android Malware qui s'appelle Alien et qui est installé. Donc, probablement, beaucoup de vous connaissent déjà ce que le packer est, juste en cas de ceux qui ne l'ont pas. C'est une explication visuelle de l'explication visuelle d'ici. Nos autorités veulent faire les vies de l'ingénieur reverse un peu plus difficile et pour le faire ou juste pour l'interlectualité. Ils ne l'ont pas directement et ils incluent les salauds malloraux dans les app simplement de cette façon. Mais les packages, c'est un rapide, c'est comme si je vous envoie un gif et je ne vous dis directement sur l'itemtre. Je le mets dans la boxe et dans la boxe, je mets un bon papier autour de ça et vous en avez et vous avez à l'enviendre jusqu'à l'actualité. Donc, c'est tout le même mais ce n'est pas un gif, c'est un malheur, bien sûr. Donc, ce que vous avez c'est le packer. Le packer c'est le papier sur le gif avec un code. Et dans la boxe, vous ressentez qu'il y a quelque chose c'est l'impact de la date. Mais vous ne pouvez pas l'accesser, vous ne pouvez pas l'utiliser à ce stage. Vous ne savez même pas exactement ce que c'est. Ok. Le code de l'impact est allé en fait pour vous aider à décrypter cette date. Donc, ça peut être une décryption. Ça peut être une de l'opération dans la boxe. Ça peut être différents algorithmes. Ça peut être un AES et ça peut être un algoritme ou quelque chose. Et ça va mettre l'impact de la date dans quelque chose qui est un executable. Donc, sur Android, l'executable ou l'executable sur des décs. Ok. Donc, ça va tourner dans le packer et ça va tourner la date de l'impact dans un décs. Là. Ok. Et ensuite, le code de l'impact est allé en fait pour charger les décs. Donc, c'est le payload qui est inclus dans ici et dans les décs qui se tournent. Ok. C'est les parts bleues c'est le gifte. Ok. C'est le gifte que vous voulez vraiment. Donc, c'est comment ça se tourne. Et pour charger ce gifte c'est usually une classe qui est connue dans les décs classes d'Odda dans l'API d'Android. Il y a aussi des classes d'inheritage dans les décs. Et ensuite, ça va faire un peu de réflexion et charger la classe que vous avez dans les décs comme charger cette classe et charger cette méthode de cette classe invoque ça, roulez et les choses comme ça. Et c'est comment ça marche. Ok. Donc, c'est en fait assez difficile quand vous voulez réverser l'API d'Android. Et pour être honnête, ce gifte n'a pas vraiment helped avec ça. Ok. Ça va vous aider assez bien dans certaines situations où vous voulez imprimer une application et nous allons utiliser ça pour ça. Et le texte calibre est un tool d'open source. Je ne suis pas l'auteur de tout ça. Ok, c'est un autre gars français. En fait, je suis français aussi, mais il est français aussi. Et son tool est d'open source. Et c'est basé sur Frida. Frida, vous m'avez entendu ça. C'est un framework pour vous aider à couper dynamiquement des autres parts de la code. Donc, ça peut être pour Android, mais ça peut être aussi d'autres plateformes. Donc, vous write hooks. Donc, en fait, en fait, en fait, exécuter le code de l'application, votre hook se termine en between et on va faire quelque chose un peu différent que ce que vous espérez. Et vous, spécoutez, ce que vous voulez passer àodynamicer ce ou ce fonction. OK. Et vous write le hook. Frida est absolument fabuleuse. C'est vraiment incroyable. Ça fonctionne très bien et c'est Just kind of have to click on this or that button and it will do the job in your place. Okay, so that is what it is for. And I stopped sharing again. Again, feel free to post on Discord and any question you have on the setup of the work environment. Do tell me also how much of you have reached up to that screen here. Okay, when I'll have sufficient amounts of you who have reached this point, we will continue to the next steps. Okay, so far we only have two penguins, two people who have reached the point where you see that dexcalibus green. If you have any more, if any more of you have already finished, just click there so that I know if I can quickly move on or not. Otherwise, I'll be waiting a little bit because if you don't have dexcalibur, you can't go on for the rest of the exercise. If something is wrong again, feel free to ask on Discord, share me ever logs or whatever, but so that I can help you out there. Okay, cheers. Okay, so for those of you who are still struggling with dexcalibur, well, if you're on Windows, you have to use my Docker container. If you're not on Windows and you're still struggling with this or that issue and you really don't know what is happening, you can also use my Docker container there. For dexcalibur, you can actually do docker pool, and that's, I'm going to write that, it's not in there, it is probably, oops. In here, docker pool, and I put that. And this will retrieve an environment where dexcalibur is already installed, and then, well, you can use that. Then when you have downloaded it, you need to run the container and the line is in here in the training manual. I'm going to copy that as well on Discord. I think there's maybe typo, yeah, it looks a bit of that way. Okay, so this is another way to do it. Please continue to click on the penguin once you have reached the milestone, right, with that nice screen. Remember, we are still looking for that screen over there, okay, and you've got the nice penguin over there that you should click on. Okay, and I'm going to have a look at your questions that I see in there. Okay, let's say we continue at, well, it'll be 10 o'clock, your time, okay. So at 10 o'clock, we continue the exercise with, hopefully, for everybody working dexcalibur. If anything is wrong, still, I'm still on Discord, so yeah. Do DM, any issue you might have or ask. Okay, so let's go on a little bit with the exercise and try to do something with dexcalibur, okay. I'm going to share my screen and we'll work a little bit more on the next exercise. So the first exercise is about installing dexcalibur. Don't worry, this is the most difficult tool to install for the entire workshop. So the other tools are much easier, easier to install, so you probably won't have as much issues in the future. So normally, and if this is okay, you probably have gone up to the screen, something which looks like this. On your dexcalibur, I'm going actually to run mine so that you should see how it works. So now let me do the job. So I have an emulator which is running over here. I have dexcalibur that I have got to set. I've got to have Frida and Frida. I've installed it in a Python virtual environment, so I'm going to enable that. There we go. I have that. I'm going to check the version of Frida 14 to 18. Okay, this is the one I have. And in my emulator, ADB shell. We go there. Go in local TMP. You've got to be root, okay, to run this Frida server. Okay, so be sure to be root. If that doesn't work, you'll have maybe to run before that ADB root into different separate words. And then, of course, you've got to execute it. If it doesn't have the executable rights, you've got to do a CH mode for that. I'm going to run that. Okay, so there it's okay on this side. Then, well, I told you that we are going to analyze one sample. The sample is in here. I have to install it on the emulator. It's just installing it. It's not executing it for now. Okay, so ADB install ADN APK. And it tells me success, which is great. And probably if, yeah, if I go and see in my emulator, you see this new flash player icon. I don't see it yet, okay, but that's the malicious application in there. Okay, so it's just installed to prepare to use it, to use the Excalibur. Now, I run the Excalibur, which is already installed. I know that's the most complicated set. I run that. So it is going to be on this part. Let me go over here. And you get to the screen where you basically have all your, or your open projects. So I explained in the appendix how to create a project. But basically, you've got to do a new project, enter things in there. Then it's a bit buggy. You've got to stop the Excalibur and start again. But basically when we get open, we get up to here, it's good. I have mine, which is over here, alien, and I click on open. And there it's a little bit long, okay. Maybe it depends on your laptop. On mine, it takes kind of a few seconds or up to a minute. And here, while you just can have a look at the console, if everything happens, you'll see it over there. There's something which is a little bit strange is that actually, Excalibur messages, sometimes you see a message in red. And it's not always a never or an issue. Okay, so don't be bothered too much about the colors. The first time I saw something I read, I thought, oh, something is wrong. Well, no, as long as it continues, sometimes it's just like a warning or something like that. So you've got to wait and here it doesn't tell you very much because the progress bar is just like this, okay. So as I told you, we still have to wait. Oh yeah, okay. So you saw some red messages in there. I can't have the money longer, but if you see those, don't be bothered about it. And now we see this. Now this, to be honest, is, well, it shows the various namespaces of the package. I asked the author, well, oh, what do you mean with this kind of first page? Is there something we should know, understand or do with that? And he kind of laughed and told me, yeah, well, maybe it was useful in the past, but it's no longer exactly that useful now. Okay. And now we will be mostly interested in this tab, static analysis and hook, okay. If we go and hook, we will see a list of hooks, which are in there and which are predefined. And I'm going to stop there because otherwise I'm going to do the rest of the exercise and it's actually for you to experiment for that. So you've got up to this. And now the goal there is that we find the unpacked payload for alien. As I told you previously, the packed payload is loaded with using a class which is named dexclassloader, okay. So what we want in here is to put a hook, a specific hook for dexclassloader, so that we see whenever it is called what are the arguments which are provided to it, because one of these arguments is the file, well, the name, the file name, sorry, of the dex which is provided, okay. So it will be the file name of the unpacked dex. So this is going to be interesting. So here you're going to follow this exercise there to create the dexclassloader hook if you haven't got one yet. Okay, so this is in case you haven't got it if you've already got one. Well, continue in there and I'm not going to answer those questions there, but hook, see what happens and try and find the unpacked payload using dexcalibre. Okay, see you, see on discord for your questions and everything, yeah. Okay, we're going to solve this exercise live and I usually have participants do that, not the same all the time. For now Alex is going to share his screen shortly when he gets the rights to do so and well, I'll help him live to work out and do this exercise. Usually it works out better. I think that Alex has to leave soon so we'll do it right now whenever he's ready and gets the rights. Alex, you should be able to request streaming. Okay, can you hear me? Yes, perfect. So let's try to share my screen here. Yeah, perfect, we see your screen. So perfect, the zoom bars on top now. I can't, okay, I can move it. So I have dexcalibre running. I have the Android emulator running. Fine. I have the dexcalibre running on the console and I think when I go to static analysis and search for the, what was the name, class. Dexclassloader. Okay, I just saw with your screenshots that the malware is already running. So you'll have to stop it first and to reinstall it. Sorry, to uninstall it. So you go in your shell and do ADB shell, yeah, fine, ADB shell. And do PM, well PM list packages because it's got a very long and strange name. And it's the one with a very strange name. Yeah, we see it in the middle. Okay. So PM un install, fine. And we have removed the package name. Yeah. Perfect. You can get out of your shell and reinstall alien.apk. That's just to restart in the clean thing because if it's already started, well you can miss the hooks and it won't be working. Let me switch. So it was. It's in lab, exactly. And yeah, fine. Perfect. Okay. So now go back indeed to your browser. Go to the hook section and dashboard. And in here you've got to look, well you actually already have the hook that we are looking for. It is the, yeah, that one. Next class load in it. It's just as able all to be this one. Oh yeah. Yeah. Okay. You can do that. And now you've got to enable it. Perfect. Now. So you only have that hook which is enabled. That's fine. I've never done it like that. Most of the time I leave the other hooks, but it doesn't matter. We are going just to check that you still have Frida, which is running on your emulator. So does this here does not work. Yeah. Dexcalibur says it is running, but to be honest, sometimes Dexcalibur is wrong. So I'd like you to go in the shell and check that your Frida server is still running. Should I have to go on the shell on the device or can I do it from the... Yes, on the device. Okay. So ADB shell. And then PS. Yeah, you can do PS and Grip for Frida. Frida server. Yeah, you've got to put, I think, put options to see the other... Oh, you've got to be a root, by the way. PS minus U. It's always different here on... Yeah, it's different on... Nah, dammit. Let me check what you've got to type. Big A. Yeah. Okay. And in here, you've got to check that Frida server is still running. Nothing was named Frida running. No, okay. So go in the directory where you have Frida. Ah, where has that been installed by Dexcalibur? Data local TMP. Data... Because that's a writable directory. That's why we put it in there, okay? TMP. Okay, Frida server. Yeah. Close it and do Frida server minus, minus version or something like that just to check the version of the file before we execute it. Okay, it's 14 to 11. It's a little bit old, but it will work. Let's go there. It depends on which version you have on your host. So I just, it's a new emulator just enrolled it with the Dexcalibur some minutes ago. Okay. And now go back to Shell on your host. Okay. And on your host where you have Frida, just type Frida and minus, minus version. I'm just checking here that we have the same version. Yeah, fine. So this, this is good. Okay. It's not the most recent version, but you've got the same version on both sides. So it works fine. Okay. So now we go back to Frida. And I think you can hit the button runs phone. Okay. And maybe wait a little bit, but normally it should be working. And this is where I pay it before. Can you show the screen of your emulator meanwhile? Okay. It looks just as if it. So it is running. We see that flash player is running because it is actually asking you to, to give some more, some more rights to the application. Okay. But we didn't get the hook. We should have. We should have had something in here and Dexcalibur listing it. So we are going to stop this. So we're going to uninstall again. The application. Okay. So, is it actually still here? No, of course not. Yes, perfect. It's, I think it begins with MSQQ. Yes. It's just below. It's PM. Yes. Yeah. Okay. That's good. Okay. Okay. Okay. So go to the hooks. Here you went in the hook log, but in the dashboards. Okay. And now enable everything. Oh, okay. So. So. Of course. Yeah. Good. Now you can go back to Dexcalibur. Let me start Frida again. Yes. If you stopped it. Yes, of course. It was the same show. Okay. Okay. So go to the hooks. Okay. And. Yeah, you can run spawn now. Oh, okay. Okay. So, um, probably, we didn't exactly hook the right one. It didn't go exactly on, in that one so you didn't get the hook. So now you just have to wait a little bit. We don't exactly have the information we want, but it's soon going to come to appear. il est bientôt allé à l'hôpital. Donc, scroll down a little bit. Ok, non, c'est toujours pas showing, c'est toujours pas... Non, scroll down. Vous pouvez encore scroll down. Vous avez plus là-bas? Non. Ouais, scroll down. Ah. Scroll down. Ouais, c'est en APK, mais ce n'est pas exactement celui que nous voulons, mais c'est plutôt bon. Je voulais vous montrer le texte class, ce type de loading. Go down. Peut-être que vous pouvez faire un search sur JSON. Vous avez ça? Non. C'est étrange, ok. J'ai déjà vu ça sur quelqu'un d'autre, c'est host. Je n'ai pas de problème, mais ça ne marche pas. Il n'y a pas de problème, mais ça ne marche pas. En tout cas, vous pouvez... Vous avez vu le ring.apk, là-bas. Donc, ce que j'ai suggéré, c'est que vous pouvez récover celui-là. Alors, j'ai ouvert un nouveau shell. Donc, oui, vous devez faire un pool ADB, mais en fait, vous devez faire un pool ADB shell et simplement couper ce file dans la carte SD, ou quelque chose comme ça. Donc... Oui, vous allez dans data user 0 msqq. Ah, vous devez être root. Ok, c'est un app APK. Et en fait, vous avez rien dans le file, mais votre file est dans AppDynamicOps dex. Vous devez trouver un dex dans le file. Ah, sorry. DynamicOp, c'est ça? Oui. Donc, cliquez sur le file GESK.json et vous devez faire votre carte SD. Donc, cp. C'est ça. Bon, c'est bon. C'est bon. Et maintenant, vous devez faire le pool ADB sur ça. Et maintenant, vous devez faire un file JSON. Oui, c'est un dex. Ok? Ok, c'est bon. Donc, vous devez faire ça. Je vais vous montrer exactement comment vous pouvez obtenir ce file. Et ensuite, nous pouvons continuer pour le prochain exercice. Donc, dans mon cas, je vais vous partager mon dex. Merci. Donc, maintenant, je vais vous partager mon dex. Donc, ici, vous voyez, il y a plein de des manières différentes pour mettre le dex. C'est ici. Le dex est sur. Donc, il y a un dex. Et effectivement, vous pouvez exprimer ça. Tout est ok. Mon emulator. Non, mon emulator n'est pas ok. Donc, le local TMP Frida Sava l'a launché. Je pense que j'ai l'application. Je n'ai pas launché ça. Et Frida est en train. Donc, je suis prête normalement. Et je suis pas prête. Et donc, je suis prête. Donc, je suis prête. Et je suis prête. Et alors, je suis prête. Et donc, j'ai pas un dex. Je suis prête. Mais je suis prête. Et c'est bon. Je suis prête. Alex, et je vais attendre un petit peu. Il y a un peu de hook pour la prochaine fois. Et ici c'est le hook que je suis en train de regarder. Dexclassloader.init, donc c'est quand nous allons mettre un classe dynamique. Et l'un des arguments pour cette classe est le nom du file de Dex toLoad. Et là c'est le premier argument. Et ici on va regarder. Et vous savez que si vous voulez prendre la file unpack, vous devez juste aller et prendre ce file JSON. Ce file JSON n'est pas un file JSON, c'est un Dex. Et ensuite, si vous avez ce Dex, ce que je peux faire en ce moment c'est faire la même adb shell. A-D-B-Shell, zoom, d-e-t-t, no, I've got the path in there, gonna do the same again, copy that to some place where I can access from the outside, exit, exit, A-D-B pool, sd-cord, and it tells me it's a dex. Notice that strange thing, if you are in the emulator and you do file on the JSON, it tells you it's data, it doesn't see it's a dex in the emulator, okay? So that's something which might be a little bit tricky. And now I'm going to launch JADX, for instance, on that file, so in my case I'm using my docker container of my own, so you'll have that directly on your hosts most of the time. There we go. Oh, silly, I forgot to copy the file to a shared directory, I'm copying it here. And now I can launch JADX, and the file is going to be in a directory named workshop, in my case, that's the folder in which I share between the host and the docker container. So, it's on the other screen, sorry. There we go. We have that dex which is being decompiled, and I can't remember exactly where we've got to go, but it's basically in those parts. Yeah, it's over here. So this is going to be the next step. Okay, so of course you can ask me questions up to now on Discord for that. I'm just checking if there were any other questions in the exercise, but I think we're done. I think we are. Okay, if you haven't been able to retrieve, that's a JSON file, it is in the solutions in the directory in there. TMP lab. So in the solutions directory x02, it's in here. Okay, so you can grab it from there and continue the rest of the exercises. Okay. And now, we are going to work no longer on unpacking, but on obfuscation, because, well, you'll see that in that unpacked text file, lots of strings are obfuscated. So here we're going to learn how to de obfuscate them or there's plenty of ways to de obfuscate strings, you can do that statically and things like that. Here we're going to use another tool that I found quite useful, which is called house. Okay, so house is going to help you do part of the work for you, and help you de obfuscate the strings. So this is exercise x03 in there. Okay, so let's head on for the for the rest. And if you are jumping in the session or whatever, feel free to send me a dark message so that you can catch up for where we are here or if you have any issues up to your don't don't be shy about it just ask. I forgot to say just one thing. Usually I don't want once the application is running, and I'm going to share my screen. Again, when the application is running you see here. The application is kind of trying to run in my emulator. I don't like to leave that for too long time because you can always forget it in there so well, you can uninstall it in my case. I'm going to do PM list packages as we did with Alex. Okay, in my case I just create a small make file, and I'm going to do make un install, which is just a shortcut to un install the app. Okay, so make sure, at least at the end of the workshop to to clean up your emulators so that you don't have any malware which is remaining on your emulator. So that surprises afterwards to you. And that's all folks. Okay guys, well if we had forgotten to mute so you heard my clicks and everything. Doesn't matter. Fortunately, I didn't see, I didn't say anything bad. So it's good. We are now going to to solve the next few questions. So let me share a little shortly my screen for that one. So, here we go. You see the questions there so it's finding the obfuscated strings in the unpacked text that we got in the previous exercise. First spot, the obfuscated strings. I know that some of you managed to to get those, then confirm that it's not just a 64 encoding because that's kind of a little bit simple right. And name what is the method that is used to obfuscate or de obfuscate the strings. So, I could do it myself of course, but usually it works a far better when I ask a participant to do it so I'm going to ask one of you to do it for me. So if there is a volunteer, of course, please show up in the in the chat. Of course, as usual, don't be afraid. The JADX version, which is working on your host, but then if you don't know how to answer the questions, this is perfectly fine. We are going to do it together and the benefit is that at the end, you will have learned and understood how to do it. Let me ask Albert Siegowitz, please. Are you online and can you share your screen please and your microphone as well. And if you have issues with sharing screens, Maxim will probably give you the right soon. You should be good to share if you are here. Albert, if you are here, it looks that you are like you are muted. So if you are speaking, we don't hear you at all. Okay, let's try then next on the list is Anna-Lina Marx, please. And meanwhile, of course, if there's somebody else to be a little bit before I get to your name, it's just a simple, right. Okay, so Anna has issues with her setup. Yahanim Ayasso, please. I'm sorry about the pronunciation of names though. Dominique Bastien, Dominique. I think I've frightened them out like that. Hugo, I think, is an organizer. I'm not going to bother him. Isabelle M. Isabelle, yeah, please. Yahanim Ayasso, issues with your setup. Oh, too bad. Jeff Norris. So it's quite simple, just unmute. And then you will get rights to share your screen. I'm sorry to bother you all, but I found out that it really works out so much better when it's one of the participants who shows how to do it. So there is a help there than just me doing it. When I do it, like, people are just sitting down and, yeah, not that much learning. By the way, I saw on Discord that Colonel Voight found the solution there. So Colonel Voight, if you are ready, I don't know to which name you caressed on, but if you are ready to share your screen, that would be great as well. Because it looks like Jeff isn't there. Kevin Bouteau. At least women have the courage to say that their setup is not working. Just saying, okay. Marcos Gomez. Oh, I can hear somebody, but it's very, very, very difficult. Mathieu. Gosh, I'm speaking to ghosts. How horrible. Nancy. Nicolas. Nicholas. Now, anybody here? Nicolas, your setup won't work or whatever. We just need, we don't need the Excalibur to work, right? It's just JetX to work there. Okay, it looks like Ash Yahanim is willing to try. Thank you very much. Maxime, can you give him the right to share his screen? You can see in the chat. You should be able to. Hi, can you hear me? Yes, we can. Thank you very much. So this is perfect. Okay, so we are in JetX. Now you have to head to the right package. Yeah, I think it's, yeah, it's. I think it's in MGC, then QL, then OYG something. Yeah. In this one. Yeah, can you open that one? Yeah. And I think it's in A, for instance. And then we, yeah, we can see the decompile. So do you see any obfuscated strings? Yes, perfect. I have this one. There are plenty obfuscated strings. Yeah. So there are some which are not obfuscated that we can see in the middle, but there are plenty of obfuscated ones. As you can see, if you're a bit used to that, you can see that they look like base 64 encoding. Now when it finishes with two equals. Yes. This is very much like base 64. Can you open a terminal and copy one of those strings in your terminal and we'll try to decode that with base 64, or we can do that online depending what you prefer. Let's do it online. I'll just see you. Yeah, sure. Yeah, with Cyber Chef, what would you find? Good idea. So if I copy like the first one. Yes, exactly. And you see the output. Well, it's a string, it does, it does decrypt, but that's still kind of meaningless. Okay. So we've got a little bit more to do. We've got to get X again. So, um, the method that's the obfuscated. Well, we see that that string is put in a string, string A, B, C, et cetera. The method that's the obfuscated. Well, it has to be inside that B. Not this one. Go back to your class A. Okay. Yeah. Double click on the method B. Public string B. Yes. Over here double click on B so that it goes there. Yeah, it can't follow us. It can't follow. Okay. Let me tell you which one it is then in, in mine. Um, so actually it goes below in the same, in the same class, but go below all that code, that static code kind of. Yeah. Exactly. And you've got that method B. Okay. And we see that it is doing some base 64 decoding. That's the ends over there base 64 decodes stuff. And there's some more in there. Okay. Well, if you can follow that, but maybe you can't stare, but if you can follow C or a new E, you will see that it's a handmade, a handmade algorithm that de obfuscates the strings. All right. Maybe I can follow C. I think I can follow now. Yeah. Yes. Well done. So this is the, the algorithm to, to de obfuscate the strings. Okay. So it's totally handmade. It's not like anything, nothing, nothing, anything, you may have a. Let me scroll up. Well, no, no, Or, or anything there, but that's the way it's. De obfuscating the springs. So now, you've just answered those. Those first three questions and we are going to continue. Everybody to the, the rest of the exercise. Which is. Okay. et vous write a standalone script that decrypts all the obfuscated strings, okay? This is the static way to do it. If you are used to programming in Java, it works fine and sometimes it's very efficient. If you don't want to do that because you find the algorithm a bit complicated and or you're a bit lazy, okay? We said that this workshop was for Android, reverse engineer, smart and lazy. Well, then you can use house and that's what I'm suggesting people to do in this exercise, in the remaining of this exercise is to install house and use it to have house do this work for you. Okay, thank you very much for sharing your screen and solving this exercise. Thank you very much and everybody let's continue to the remaining of this exercise now. Welcome. So I'm going to share how to install house at least for now. So let me share my screen again and there we go. So this is again exercise X03, step number two use house and I'm just going to show you how basically to install house. So house in my case, well in your case as well I guess you basically have just to do a get clone and to create a virtual Python environment and then you enable so that environment. This is so Python environment and in case you need to know that it's just basically to have kind of to isolate your installation of various Python packages so that you don't have conflicts in between some of those. So that way you know that what you're installing for house is just for house and you can't have something else which is kind of conflicting into there. So first I created my virtual environment in a directory called house v and it's in bin activate. There we go. Then I'm saying and yeah we always have to check this again so X03 it's in here check that we have version of Frida in my case 4218 as we saw previously if you have something which is older it's okay as long as you have the same version on the emulator and in my emulator that's what I am running 4218. Okay then what I well you've got to install the malware so you've got to do that if you haven't done so already what is this? This is jet X so I'm going to go in the lab X01 the sample is here adb install alien.apk if it's already installed and you do it again it's going to complain until it already exists b certain that you haven't clicked you haven't launched the application because if you have it's working with hooks the same way that's what the Excalibur is which means that if you run it and you hook after everything has run well you don't get into the hooks okay it's dynamic analyzes so it's too late so you've got to first set the hooks and after that run the application okay so if you have already run it there is basically the easiest way is just to uninstall and reinstall then the other thing I like to do because house unfortunately is