 main menuhome
forums Show me new threads!
bookmarks
view blogs
vault you must be level 2 to upload files to your vault
downloads you must be logged on, and level 1, to access downloads
Rootkit Collection
A news back-end to implement RootKit news into your website is here or more advanced version here.
An XML/RSS feed that includes both NEWS and BLOGS for RootKit is here: XML/RSS.
Beta feed for replied posts here. feedback to admins not forums, we know about times being off...
|
ROOTKIT
Because the OS isn't enough!
|
Wednesday September 08th |
| | Featured Article: Nostalgia: n00bk1t, an advanced ring3 rootkit in C by jeffosz | HVM- going into details By: Dr.EXEPart 1 This is my first article so I expect you not to be rigorous. Of course all of us experience lots of problems and maybe stuck in something when we try to get deeper into anything new. So that’s why I write this article. We’ll try to understand the AMD Pasifica’s some ‘hidden’ details (at least there were hidden for me).I’ll give you the part of text from AMD’s manual, which they thing must help you to write correct code. 1. Updating RIP after every VMEXIT. I’ll show the part of text written in AMD’s manual which they must provide to understand that RIP must be updated: “Loading Guest State. After saving host state, VMRUN loads the following guest state from the VMCB: • CS, rIP—Guest begins execution at this address. The hidden state of the CS segment register is also loaded from the VMCB….” So this means that you must add to the current RIP size of opcode. e.g. “ _emit 0×0f //VMRUN _emit 0×01 _emit 0xd8 … switch (hVMCB->exitcode) { }… hVMCB->rip += opcode; ” 2. Writing CLGI before VMRUN, and STGI after (this step is recommended by XEN and other hypervisors).I haven’t seen anything about this in AMD’s manual. 3.Checking for erratum #170, this means that you must force TLB flushing on VMEXIT’s. You can check like this: “ GetCpuId (0×00000001, &eax, &ebx, &ecx, &edx); baseFamily = (eax & 0xf00) >> 8; extFamily = (eax & 0xff00000) >> 20; baseModel = (eax & 0xf0) >> 4; extModel = (eax & 0xf0000) >> 16; stepping = eax & 0xf; …. if (baseFamily >= 0xf) model = baseModel + (extModel = 1))); if (Erratum170) DbgPrint ((“Buggy CPU: Erratum #170 – must use TLB FLUSHING on VMEXITs!\n”)); …. ” There wasn’t any information concerning with this question. 4. After VMEXIT global CPU registers remain constant, this means that register value used in Guest mode will be same for Hypervisor code. So if you don’t want to change anything, better save them and restore after. 5. This is an addition to the 4-th detail, There is one important exception, while in hypervisor the global rAX register value always contains the physical address of the VMCB structure. And the Guest’s rAX is loaded and saved into VMCB.rAX field. This detail was hidden in this text “Loading Guest State. After saving host state, VMRUN loads the following guest state from the VMCB: …… • RFLAGS, RAX. ……. “ 6. Handling exceptions. This detail is well explained in AMD’s manual , but I write about I because it’s very important. So, you must handle certain exceptions in you want to intercept certain instruction. For additional information look up in AMD’s manual. Maybe I am not right and all these information was explained in the manual, however I hope this article will help you. I also hope this article will be continued, but everything depends on your and my curiosity and researches.
|
| |
ROOTKITS, Subverting the Windows Kernel
By: Greg Hoglund and Jamie Butler
Rootkits are powerful tools to compromise computer systems without detection. Get the original and best book on the subject here.
|
active for last 5 minutes
registered users:80359
There are currently 0 registered users and 22 guests browsing the website.
Welcome our latest registered user: ALAalusia34
| Aug 24, 04:27 |
| Aug 16, 04:49 |
| Aug 13, 16:44 |
| Aug 09, 15:25 |
| Aug 05, 15:52 |
| Best Screenshots / Analog |
| the most active news users |
based on the number of news posts for last 30 days
|