HackVlix
HackVlix
  • 22
  • 113 386
Algebraic Foundations I - Groups | Chapter 2: Morphisms of groups
When studying algebraic structures, we are interested in the maps between them that are "compatible" with their structure. In the case of groups, such maps are called homomorphisms, and here we introduce them, their basic properties and many examples. We go on to study the kernel of a group homomorphism, which is the subgroup that is mapped to the neutral element. It is an important tool in studying homomorphisms and groups. In the last part, we discover that the automorphisms of a group (bijective homomorphisms from the group to itself) form a group themselves.
Sections
00:00:00 Greetings
00:00:42 1. Homomorphisms of groups
00:03:30 Definition of homomorphism, isomorphism, endomorphism, automorphism
00:09:22 First properties and examples of homomorphisms
00:39:17 2. The kernel
00:39:28 Definition of the kernel of a homomorphism
00:40:02 Kernel theorem
00:48:36 Cosets of the kernel
01:00:43 Modular arithmetic as an example
01:09:20 3. Automorphism groups
01:16:22 Inner autormorphisms (conjugations)
01:30:46 The center of a group
This video was made using LaTeX Beamer, OmniGraffle, LaTeXit and SlidePilot.
#maths #algebra #groups #grouptheory #subgroups #symmetry #permutations #integers #homomorphism #kernels #automorphism
#modulararithmetic #isomorphism
Переглядів: 33

Відео

Algebraic Foundations I - Groups | Chapter 1: Definition and basic properties of groups
Переглядів 1215 місяців тому
We compare algebraic properties of the integers, the permutations of a finite set, and the symmetries of a circle and those of a triangle. In doing so, we find they have certain properties in common, which lead us to the definition of a "group". Then find some basic properties of groups and study subgroups, which are subsets of groups that are groups in their own right. Sections 00:00:00 Greeti...
Algebraic Foundations of Cryptography - Introduction
Переглядів 1 тис.5 місяців тому
This course will teach the most fundamental algebraic structures on a university level: Groups, rings and fields, and then some others. These structures are fundamental for the understanding of modern cryptography. #algebra #groups #rings #fields #cryptography
COBOL for the sh*ts and giggles - Chapter 5 B-Side: Emulating file streams in COBOL
Переглядів 12111 місяців тому
COBOL does not provide file stream functionality (such as C's fread(...)) by default. Here, we emulate fread in COBOL, albeit with certain limitations. Files for this course: tinyurl.com/46jsvhkp 00:00 Greetings 00:14 File streams 04:31 C's fread(...) as a model 06:44 fread_cob's arguments 12:51 Sharing files between main and subprograms 15:10 Implementing fread_cob 19:34 Calling fread_cob from...
COBOL for the sh*ts and giggles - Chapter 5: File handling
Переглядів 9811 місяців тому
COBOL programs assign internal file names to files in the operating system. To these, we can apply the common file operations such as reading, writing, appending. However, these operations have to be performed on a "per-record" basis, that is, always writing/reading a full pre-determined record for a given file. There are three types of files in COBOL, sequential files (data has to be accessed ...
COBOL for the sh*ts and giggles - Chapter 4 B-Side: Reverse shell in COBOL
Переглядів 145Рік тому
We learn how to write a reverse shell in GnuCOBOL. As COBOL cannot do any networking on its own, this is a good opportunity to learn how to call the C socket API (Unix) from COBOL. Files for this course: tinyurl.com/46jsvhkp 00:00 Greetings 00:25 What is a reverse shell? 05:09 C vs COBOL data types 06:21 socket (for the connection) 10:25 connect (to remote IP:port) 11:13 sockaddr_in struct (in ...
COBOL for the sh*ts and giggles - Chapter 4: Modularization
Переглядів 95Рік тому
COBOL allows modularization in the form of subprograms (encountered already in Chapter 3) that can be linked either statically or dynamically with a main program. We will learn how to do both here for the GnuCOBOL compiler. In addition, COBOL copybooks allow the reuse of source code by copying it into COBOL programs from a text file (similar to C's include statement). Finally, we explore how to...
COBOL for the sh*ts and giggles - Chapter 3 B-Side: Pretty-printing a matrix
Переглядів 201Рік тому
In this addendum to Chapter 3, we use what we learned about COBOL control flow to write a subprogram that displays a matrix of arbitrary dimensions in a nice and readable way on the terminal. Files for this course: tinyurl.com/46jsvhkp Sections 00:00 Greetings 02:33 What it should look like 03:18 Main program 09:04 What the subprogram should do 11:22 What it should do, graphically 13:31 Local v...
COBOL for the sh*ts and giggles - Chapter 3: Control flow
Переглядів 363Рік тому
We're getting to the good stuff: Control flow in COBOL. First, we learn a little about formatting input and output on the terminal. Then we learn about conditional execution and loops. Procedure or function calls in COBOL can be realized either through branching to a section/paragraph in the code, or by linking an external subprogram. Finally, we learn how to use COBOL's built-in sorting and se...
COBOL for the sh*ts and giggles - Chapter 2: Data types
Переглядів 997Рік тому
In the second chapter, we learn how data is defined in COBOL. There are elementary data items that describe either arithmetic variables or strings, and there are complex data structures, we call them records here, that are composed of multiple data items. All of these data structures exist only as singletons. Tables are COBOL's version of arrays, which offer the only option to create multiple (...
COBOL for the sh*ts and giggles - Chapter 1: The structure of COBOL programs
Переглядів 35 тис.Рік тому
We learn about the column layout of COBOL code, the structure of COBOL programs, comprising divisions, sections and paragraph, and about punctuation. Files for this course: tinyurl.com/46jsvhkp Further reading/watching: @RobertElderSoftware COBOL punchcards for tax returns tinyurl.com/mvxuey2h GnuCOBOL Programmer's Guide tinyurl.com/ysxjjtds Sections 00:00 Greetings 00:26 1. Layout of COBOL cod...
COBOL for the sh*ts and giggles - Introduction
Переглядів 35 тис.Рік тому
Some background and history on the charmingly weird COBOL programming language from 1959, and a first COBOL program. Files for this course: tinyurl.com/46jsvhkp Sections 00:00 Greetings 01:52 What is COBOL? 17:06 GnuCOBOL compiler 21:03 Get GnuCOBOL 22:45 Use GnuCOBOL 26:43 Hello World! #COBOL #GnuCOBOL #IBMCOBOL #programming #free #onlinecourses
Basic ideas of cryptography - A non-technical overview
Переглядів 21 тис.2 роки тому
In this video, I want to introduce you to the basic ideas and applications of modern cryptography. The goal is to convey the principles, and I will not go into technical details and use only very little mathematics for illustration purposes. The main applications of cryptography are encryption and authentication, and in this video we will see what the principles of private key cryptography (ali...
Please also subscribe to my Math channel!
Переглядів 5462 роки тому
If like the videos on HackVlix, you are certainly interested in cyber security. So there's a good chance you might be interested in mathematics! I want to recommend you check out my mathematics channel, MathVlix, here on UA-cam at ua-cam.com/channels/a6MSKH6Ypk5VKtezdRkFqA.html (like and subscribe!).
Is this still Cyber Security, or just shameless clickbait?! -- Quokkas in Adelaide
Переглядів 2732 роки тому
Is this still Cyber Security, or just shameless clickbait?! Quokkas in Adelaide
Quick macOS ARM64 bind shell (no explanations)
Переглядів 2262 роки тому
Quick macOS ARM64 bind shell (no explanations)
Quick macOS ARM64 reverse shell (no explanations)
Переглядів 3802 роки тому
Quick macOS ARM64 reverse shell (no explanations)
Shellcode for FreeBSD and Raspberry Pi OS
Переглядів 3442 роки тому
Shellcode for FreeBSD and Raspberry Pi OS
Shellcode for macOS on M1 chips - Part 3: Writing a reverse shell
Переглядів 1,4 тис.2 роки тому
Shellcode for macOS on M1 chips - Part 3: Writing a reverse shell
Shellcode for macOS on M1 chips - Part 2: Writing a bind shell
Переглядів 2,3 тис.2 роки тому
Shellcode for macOS on M1 chips - Part 2: Writing a bind shell
Shellcode for macOS on M1 chips - Part 1: Quick overview of ARM64 assembly language
Переглядів 13 тис.2 роки тому
Shellcode for macOS on M1 chips - Part 1: Quick overview of ARM64 assembly language

КОМЕНТАРІ

  •  2 місяці тому

    Hello! In 46:38 you say that X0 is written into the lower order byte of the stack. Since apple silicon is little-endian, this means that X0 is written into the "first" byte of the two-byte stack alignment? This is a bit confusing to me because the stack grows "downward", so what would be the lower order byte of it, a lower, or higher address?

    • @hackvlix
      @hackvlix 2 місяці тому

      I hope this will clarify your issue: (1) Each stack entry consists of 128 bits, which we can think of as 2 chunks of 64 bits. If the Stack Pointer currently points to address A (top of the stack), then writing something onto the stack will fill up the bytes at addresses A, A+1, A+2, ... , A+15. Just to be clear: In the image in the video I assume that the lower addresses _within_ a stack entry start on the left. (2) The growing of the stack (towards lower addresses) refers to the initial addresses of the stack entries, which by (1) are 128 bits apart. For example, if the current top of the stack is at address A, then pushing something onto the stack will make the Stack Pointer point to address A-16, which is reflected in the parameter #-16! in the STR instruction. (Check: This new stack top includes addresses (A-16), (A-16)+1, ... , (A-16)+15, so that it stops precisely at the address A, which is the beginning address of our previous stack top.) (3) The register X0 is 64 bits (8 bytes) in size, so it will occupy half of a stack entry. The STR instruction as stated in the video will store X0 at the current address A of the Stack Pointer, which points to the lowest address of the current stack top. So the 8 bytes that make up X0 will be written to the bytes at A, A+1, A+2, ... , A+7 on the stack. These are what I call the "lower order bytes" of the stack. Strictly speaking, this does not depend on a little-endian or big-endian convention, since the operations involved do not in any way depend on that. It would be the responsibility of the programmer to make sure the data is stored in the register in the correct manner and the pushed to the stack in the correct order.

    •  2 місяці тому

      @@hackvlix Thank you so much for the very detailed explanation. Now I think I've got it! Thanks!

  • @h4ckdeeznuts789
    @h4ckdeeznuts789 3 місяці тому

    This video/series is the GOAT. Thanks for this gem <3

    • @hackvlix
      @hackvlix 3 місяці тому

      Glad you like it :)

  • @mdrajibkhanmdrajibkhan3574
    @mdrajibkhanmdrajibkhan3574 4 місяці тому

    😊

  • @JacquesMartini
    @JacquesMartini 4 місяці тому

    Cobol, a very verbose language? Made for women? 😂

  • @JacquesMartini
    @JacquesMartini 4 місяці тому

    It does not make sense to read a text in a rather slow way. People can read themself. Audio books are for kids or shallow entertainment.

    • @hackvlix
      @hackvlix 4 місяці тому

      I could put less content on my slides, then what I say would not appear like reading them. Would that be fine? But seriously - upon closer listening you might notice that often I am not just literally reading the slides but also give additional commentary (granted, this might be more noticable in other videos). I believe that it can help many people retain their attention if they are not just reading something, but can aditionally listen to someone explaining it. Sure, this might not be the preferred mode of studying for everyone, e.g. some people might prefer to just read a book by themselves. But there's always the option to simply not watch my videos and get yourself that book. I'm speaking too slowly? Thankfully, UA-cam offers the feature to watch the video on 1.5x or 2x speed. Not interested in a particular part I am explaining? UA-cam allows you to skip over it until something more interesting comes up. The timestamps in box might be helpful here. Don't care for the explanations and just want to see the coding bits? Again, just skip forward, even though I think it is helpful to get something explained in principle first and then see how it is done in practice. Given all these possibilities to customise your learning experience on UA-cam, I prefer to err on the side of completeness by providing rather too much, of which the audience my decide to leave it out, rather than providing too little.

  • @MamtaDaiya-g1b
    @MamtaDaiya-g1b 4 місяці тому

    A

  •  8 місяців тому

    Great tutorial on ARM64, one of the best on UA-cam. Thank you for sharing it with us! However, I have to say, for a reduced instruction set, ARM64 instruction set seems quite confusing to me. Sometimes it makes simple things quite complex. Sometimes it lacks some consistency on its syntax. I mean, it is common to have analogous operations with very different syntax sometimes. In the end, "reduced" does not mean easier nor simpler ¯\_(ツ)_/¯

    • @hackvlix
      @hackvlix 8 місяців тому

      Glad that you like it... and, yes, RISC definitely does not mean reduced complexity for the programmer.

  • @bobanmilisavljevic420
    @bobanmilisavljevic420 8 місяців тому

    🦾🥳

  • @harinho6117
    @harinho6117 11 місяців тому

    Awesome series, really liking it so far.

    • @hackvlix
      @hackvlix 11 місяців тому

      Thanks, glad you like it. 🙂 I hope I get a video on file operations out soon - stay tuned!

  • @che5ari
    @che5ari Рік тому

    Fantastic explanation and very useful material. Thank you.

    • @hackvlix
      @hackvlix Рік тому

      Thanks, glad you like it!

  • @younesmdarhrialaoui643
    @younesmdarhrialaoui643 Рік тому

    What's the name of the instruction set Apple uses on their chip?

    • @hackvlix
      @hackvlix Рік тому

      M1: ARMv8.5-A M2, M3: ARMv8.6-A You can find these in the LLVM source code (search for "apple" or whatever chip you are looking for): github.com/llvm/llvm-project/blob/main/llvm/include/llvm/TargetParser/AArch64TargetParser.h

    • @younesmdarhrialaoui643
      @younesmdarhrialaoui643 Рік тому

      @@hackvlix Thanks. Do you know what are the general purpose registers that can be safely used by the user in ARMv8.5/6-A. I read somewhere that they were X0-X30, but then I read somewhere else that X18 should not be touched, and that X8 serves a specific purpose. which one is true?

    • @hackvlix
      @hackvlix Рік тому

      @@younesmdarhrialaoui643 Some remarks at 6:18 in the video. A nice overview is given in this graphic: documentation-service.arm.com/static/5fbd26f271eff94ef49c7018

    • @younesmdarhrialaoui643
      @younesmdarhrialaoui643 Рік тому

      @@hackvlix Thank you very much, you're amazing. Here is something I don't understand though: They call the X0-X30 general purpose registers meaning they can be used for anything the user wants them to be used for. But the weird thing is that some of these registers shouldn't be touched like X18, or X29 (the frame pointer). If I store a value in X29 and do some math it will have different consequences then if I did it on an "actual" gp register. Can you explain to me this confusion?

    • @hackvlix
      @hackvlix Рік тому

      @@younesmdarhrialaoui643 No, using X29 for some operations will not have different consequences than using any "normal" register. But the problem is that by overwriting X29 you might mess up the stack frame and cause a crash when a program tries to unwind the stack with the overwritten frame pointer, that's why it's better to not use it. As for X18, I do not know what Apple has reserved this for, but it is suggested not to use it.

  • @cultoftranquility9616
    @cultoftranquility9616 Рік тому

    cool stuff :)

    • @hackvlix
      @hackvlix Рік тому

      Glad you like it. 😊

  • @tempsanity
    @tempsanity Рік тому

    Thank you! Would love to see more (total) beginner Assembly for Silicon videos!

  • @diegocastillo6470
    @diegocastillo6470 Рік тому

    Writing assembly and printing "Hello world" is more exciting than any Hello World in any other language. Is it just me?

    • @hackvlix
      @hackvlix Рік тому

      Except for COBOL perhaps... just kidding, it's true, in Assembly, "Hello World" requires you to do some actual work, whereas for higher languages, it usually serves to give a first feel of the new language.

  • @aziatork
    @aziatork Рік тому

    Thanks a lot! Clear and concise..also very good teaching 😁

  • @lorensims4846
    @lorensims4846 Рік тому

    When you said "punctuation" I immediately thought "syntax." In my experience, the compiler will tell you if you put the period in the wrong place or left one out. Think of it like the semicolon in other programming languages.

    • @hackvlix
      @hackvlix Рік тому

      Yes, thankfully it will. With COBOL, it's a bit trial and error finding out where the compiler accepts/demands/rejects a period. Perhaps it also depends on the particular compiler.

    • @hackvlix
      @hackvlix Рік тому

      Though there is a difference between the COBOL period and the semicolon in other languages (because, hey, let's not make it too easy!). The COBOL period is not just a statement terminator, so in some contexts, say IF-THEN-ELSE statements, which COBOL deems "sentences", there may be only one period to for the whole sentence. It's not always helpful for readability if there are a few instructions with several parameters that are not separated by periods.

    • @SMAMZAD-gs5uy
      @SMAMZAD-gs5uy 4 місяці тому

      লিক হাো

  • @lorensims4846
    @lorensims4846 Рік тому

    Thank you very much for such a clear and complete explanation! This is exactly what I've been looking for!

    • @hackvlix
      @hackvlix Рік тому

      Thanks, I'm happy it helps.

  • @Denis-di6hc
    @Denis-di6hc Рік тому

    God level content. Thx

    • @hackvlix
      @hackvlix Рік тому

      Haha, thanks - glad you find it helpful 🤗

  • @Denis-di6hc
    @Denis-di6hc Рік тому

    Amazing content, thx

  • @Catherine-f5v5e
    @Catherine-f5v5e Рік тому

    Extremely cute cybersecurity specialists hard at work! 🐾

  • @enthusiaste
    @enthusiaste Рік тому

    😍

  • @m_o_n_o_s_a_w
    @m_o_n_o_s_a_w Рік тому

    Gold? Too light.

  • @m_o_n_o_s_a_w
    @m_o_n_o_s_a_w Рік тому

    Thank you!!!

  • @ioxmedia
    @ioxmedia Рік тому

    You literally stole your octopus image from the book Other Minds. Peter Godfrey-Smith owns the copyright for that image.

    • @hackvlix
      @hackvlix Рік тому

      Haha, nope. The octopus is from Ernst Haeckel's book "Kunstformen der Natur" (1904). It is not copyrighted.

    • @danx7143
      @danx7143 10 місяців тому

      r/confidentlywrong

  • @thomasseidler8555
    @thomasseidler8555 Рік тому

    Very valuable, thank you very much. Great voice, it makes listening really fun!

    • @hackvlix
      @hackvlix Рік тому

      Thanks, I'm glad you find it helpful. As for the voice... "geez, do I really sound like this?" 😉

  • @ertugrulgacal2490
    @ertugrulgacal2490 Рік тому

    I get the "ld: library not found for -lSystem" error on my m1. Do you have any idea why? (I have xcode installed)

    • @hackvlix
      @hackvlix Рік тому

      Sorry, I don't really know what the issue is. What path do you get when you run xcrun -sdk macosx --show-sdk-path ?

  • @th3unp4ck3r
    @th3unp4ck3r Рік тому

    Great content. You are a great teacher!

    • @hackvlix
      @hackvlix Рік тому

      Thanks! Glad you like it.

  • @matthewg1851
    @matthewg1851 Рік тому

    Where did you learn all of this? This content is amazing

    • @hackvlix
      @hackvlix Рік тому

      Glad you like it. I've had some familiarity with Intel assembly for quite some time, so it's hard to say exactly where I learned it. There are a few differences between Intel and ARM, but they a rather easy to understand if you already know one of the two. As for ARM assembly, I mostly learned it from the book in my first reference, and the link in the second reference contains the details to apply it to macOS. The technical minutiae such as the bitwise encoding of the ARM instructions can be found in the Arm Architecture Reference Manual (third reference above).

  • @oldmiyao2842
    @oldmiyao2842 Рік тому

    Thank you very much for this high-quality videos - einfach genial! ♥️

    • @hackvlix
      @hackvlix Рік тому

      You're welcome. Glad you like it.

  • @Eduardo_C
    @Eduardo_C Рік тому

    Hi, just wanted to add to the many thank you's here. Sincerely, thank you. Im studying CS and taking an Assembly course. The professor has geared the course towards windows and Linux and x86_64 based machines and I have been left on my own to figure out ARM64 architecture. Your video just helped me get my stuff together. I have been trying for a week and my assignment is due tomorrow. THANK YOU SO MUCH!!!

    • @hackvlix
      @hackvlix Рік тому

      Great to hear! 😀 Good luck with your studies!

  • @enthusiaste
    @enthusiaste 2 роки тому

    😍

  • @Tenraiden
    @Tenraiden 2 роки тому

    Thanks! Found this video while looking to program in ARM assembly on my new Mac and this helped a lot!

  • @lucapham-trong6636
    @lucapham-trong6636 2 роки тому

    very clear tutorial. I tried playing around with the return function btw to use it as a jump. If you guess how you are very clever. ``` .text .global _start .align 4 _start: adr x30, _start ret ```

  • @kiyotaka31337
    @kiyotaka31337 2 роки тому

    would like to see more on mac os security :)

    • @hackvlix
      @hackvlix 2 роки тому

      Noted. :) As I said, I have no particular idea what to do there right now.

    • @kiyotaka31337
      @kiyotaka31337 2 роки тому

      @@hackvlix tcc bypass, dylib injection 🙂 might be good

    • @kiyotaka31337
      @kiyotaka31337 2 роки тому

      @@hackvlix Also PAC in m1 I don't have m1 so I have no idea how PAC works. if possible

  • @GlobalYoung7
    @GlobalYoung7 2 роки тому

    thank you 😊

  • @niazmorshed8852
    @niazmorshed8852 2 роки тому

    Lmao sa

  • @lnsmovie
    @lnsmovie 2 роки тому

    Thanx for this vidoe :) Very helpful

  • @LavinOficial
    @LavinOficial 2 роки тому

    tu canal vale oro

    • @hackvlix
      @hackvlix 2 роки тому

      Muchas gracias. Qué bueno que te guste.

  • @brook1598
    @brook1598 2 роки тому

    Hey man, I seem to be getting this issue, any thoughts? error: unknown AArch64 fixup kind! adr x1, helloworld

    • @hackvlix
      @hackvlix 2 роки тому

      Hm, this is a bit puzzling for me. This error occurs when the assembler cannot resolve the address of a label. Just to check - you have used the "as" and "ld" commands as described in the video? Could it be that you put the label "helloworld" in the ".data" section? In that case, the ADR instruction as used here would not find it.

    • @brook1598
      @brook1598 2 роки тому

      @@hackvlix, this seems to have fixed the error for some reason haha adrp x1, helloworld@PAGE add x1, x1, helloworld@PAGEOFF

    • @brook1598
      @brook1598 2 роки тому

      @@hackvlix And yeah, seems I put .text and .data labels in my code, whoops

    • @hackvlix
      @hackvlix 2 роки тому

      ​@@brook1598 For longer code, it is probably better to use the .data segment. The ADRP instruction makes it possible to defer address resolution to the linker if the assembler cannot resolve the address. This is actually an interesting addition to the video.

    • @brook1598
      @brook1598 2 роки тому

      @@hackvlix Ahhh okay interesting, this is my first time learning any assembly and it's been super interesting. Apart from using these awesome videos you've produced here would you say that "Programming with 64-bit ARM Assembly Language" with the additional "Hello Silicon" repo is enough to get me started? Would you recommend any other resources in addition to the ones in the description? I just want to thank you for making these videos, these are super helpful and in a format that is interesting and visually appealing, especially with the examples you give. Keep up the great work!

  • @DushaSmile748
    @DushaSmile748 2 роки тому

    Thank you so much for videos

    • @hackvlix
      @hackvlix 2 роки тому

      Thanks for watching, glad you liked it.

  • @joeybluee
    @joeybluee 2 роки тому

    Thanks very much!

    • @hackvlix
      @hackvlix 2 роки тому

      Glad you like it!

  • @GiangNguyen-mv7mq
    @GiangNguyen-mv7mq 2 роки тому

    So cute!!

  • @EldanSai
    @EldanSai 2 роки тому

    Thanks for the video! I recommend using audacity to remove background noises from the video, it can help improve the overall quality and it's pretty simple to use.

    • @hackvlix
      @hackvlix 2 роки тому

      Thanks! I will try out Audacity.

  • @chrisrockscode1202
    @chrisrockscode1202 2 роки тому

    Thank you so much for doing these videos! I am in a CPU architecture course learning ARM assembly on a raspberry pi, I’ve been really hoping to move what I’ve been learning on the pi, to the M1. I have really been struggling finding resources that have allowed me to make any progress. YOUR VIDEOS ARE EXACTLY WHAT IVE BEEN LOOKING FOR! Immediately subscribed! I can’t wait to see where this channel goes!

    • @hackvlix
      @hackvlix 2 роки тому

      Oh, first comment on the channel ever. 😀 Thanks a lot, I'm glad you liked it.