Splicer Kit

Splicer Kit

DVP 730 Fiber Fusion Splicer Optical Cable Tool Kit DVP 730 Fiber Fusion Splicer Optical Cable Tool Kit Paypal US $4,200.00 54m
KLEIN TOOLS 46039SEN Telco Cable Splicer Kit 46039 NEW KLEIN TOOLS 46039SEN Telco Cable Splicer Kit 46039 NEW Paypal US $35.21 8h 26m
New FSM 60R Fusion Splicer Kit New FSM 60R Fusion Splicer Kit Paypal US $17,900.00 1d 2h 36m
Sumitomo Type 39 Splicer Kit Brand New Sumitomo Type 39 Splicer Kit Brand New Paypal US $7,500.00 1d 5h 44m
Fujikura FSM 40S Fusion Splicer Kit USED Fujikura FSM 40S Fusion Splicer Kit USED Paypal US $4,500.00 1d 17h 44m
Fitel S121M Fusion Splicer Kit One fiber to 4 ribbon Fitel S121M Fusion Splicer Kit One fiber to 4 ribbon Paypal US $3,845.00 2d 1h 11m
BN UP B606 Cable Splicer Kit Snips Cable Knife Pouch BN UP B606 Cable Splicer Kit Snips Cable Knife Pouch US $25.99 2d 2h 10m
Fitel S178A Fusion Splicer Kit Brand New Fitel S178A Fusion Splicer Kit Brand New Paypal US $8,500.00 2d 5h 15m
Klein 46037 Cable Splicers Kit Klein 46037 Cable Splicers Kit Paypal US $49.14 2d 6h 6m
Fujikura FSM 18R KIT Fusion Splicer w Cleaver battery charge cord USA Fujikura FSM 18R KIT Fusion Splicer w Cleaver battery charge cord USA Paypal US $9,995.00 2d 20h 58m
Sumitomo QUANTUM KIT 2R Fusion Splicer Sumitomo QUANTUM KIT 2R Fusion Splicer Paypal US $16,384.00 3d 3h 43m
Sumitomo QUANTUM KIT 2 Fusion Splicer USA model Sumitomo QUANTUM KIT 2 Fusion Splicer USA model Paypal US $16,184.00 3d 3h 44m
Sumitomo QUANTUM Fusion Splicer KIT 1 USA model Sumitomo QUANTUM Fusion Splicer KIT 1 USA model Paypal US $15,284.00 3d 3h 44m
Sumitomo Type 61 Fusion Splicer Kit Sumitomo Type 61 Fusion Splicer Kit Paypal US $3,195.00 3d 5h 18m
ALCOA FUJIKURA FSM 30R KIT RIBBON FIBER ARC FUSION SPLICER SM MM DS NZ DS OPTIC ALCOA FUJIKURA FSM 30R KIT RIBBON FIBER ARC FUSION SPLICER SM MM DS NZ DS OPTIC US $5,850.00 3d 6h 21m
Cable Splicers Kit Klein 46037 Cable Splicers Kit Klein 46037 Paypal US $34.00 3d 7h 47m
Klein Tools 46039 Cable Splicer Kit w Free Fall Snips Klein Tools 46039 Cable Splicer Kit w Free Fall Snips Paypal US $35.22 3d 8h 28m
RARE UNIVEX FILM SPLICING KIT FOR 8mm MOVIE FILM SPLICER W BOTTLES BOX RARE UNIVEX FILM SPLICING KIT FOR 8mm MOVIE FILM SPLICER W BOTTLES BOX Paypal 0 Bid US $9.99 3d 22h 57m
Sumitomo Type 25EM Kit 2R Ribbon Fusion Splicer USA Sumitomo Type 25EM Kit 2R Ribbon Fusion Splicer USA Paypal US $9,945.00 4d 22h 9m
Sumitomo Type 25ES Kit 2 Fusion Splicer USA Model Sumitomo Type 25ES Kit 2 Fusion Splicer USA Model Paypal US $7,395.00 4d 22h 11m
Sumitomo Type 25EU KIt 2 Fusion Splicer USA Sumitomo Type 25EU KIt 2 Fusion Splicer USA Paypal US $5,695.00 4d 22h 14m
Sumitomo Type 66 Kit 2 Fusion Splicer USA Model Sumitomo Type 66 Kit 2 Fusion Splicer USA Model Paypal US $17,795.00 4d 22h 20m
Sumitomo Type 65 Mass Fiber Fusion Splicer Kit In Case Sumitomo Type 65 Mass Fiber Fusion Splicer Kit In Case Paypal US $6,995.00 5d 6h 16m
Sumitomo Type 36 Fusion Splicer Kit In Case Sumitomo Type 36 Fusion Splicer Kit In Case Paypal US $3,795.00 5d 6h 16m
Sumitomo Type 25ES Splicer Kit Brand New Sumitomo Type 25ES Splicer Kit Brand New Paypal US $6,200.00 5d 11h 9m
Sumitomo Type 66 Ribbon KIT Fusion Splicer USA Model Sumitomo Type 66 Ribbon KIT Fusion Splicer USA Model Paypal US $17,095.00 5d 20h 14m
Sumitomo Type 39 Kit 1 Fusion Splicer USA Model Sumitomo Type 39 Kit 1 Fusion Splicer USA Model Paypal US $14,850.00 5d 20h 14m
INNO IFS 10 FiberMaster SM MM Core Alignment Fusion Splicer Kit w Fiber Cleaver INNO IFS 10 FiberMaster SM MM Core Alignment Fusion Splicer Kit w Fiber Cleaver Paypal US $9,990.00 6d 1h 49m
iLsinTech Keyman S1 Fusion Splicer kit Brand New iLsinTech Keyman S1 Fusion Splicer kit Brand New Paypal US $6,300.00 7d 10h 19m
Fujikura FSM 50R Fusion Splicer Kit USED Fujikura FSM 50R Fusion Splicer Kit USED Paypal US $9,900.00 7d 15h 17m
Fujikura FSM 30PF Fusion Splicer Kit USED Fujikura FSM 30PF Fusion Splicer Kit USED Paypal US $2,500.00 7d 15h 53m
Fitel S123C Basic Kit Fusion Splicer US Model with 1 year warranty Fitel S123C Basic Kit Fusion Splicer US Model with 1 year warranty Paypal US $6,970.00 8d 2h 52m
Fitel S123C Value Kit Fusion Splicer US Model with 1 year warranty Fitel S123C Value Kit Fusion Splicer US Model with 1 year warranty Paypal US $7,180.00 8d 3h 26m
Fitel S123C Extended Kit Fusion Splicer US Model with 1 year warranty Fitel S123C Extended Kit Fusion Splicer US Model with 1 year warranty Paypal US $7,890.00 8d 4h
Fitel S123M4 Kit 4 Ribbon Fusion Splicer Kit Fitel S123M4 Kit 4 Ribbon Fusion Splicer Kit Paypal US $9,760.00 8d 4h 46m
Fitel S123M12 KIT Hand Held Fusion Splicer Kit Fitel S123M12 KIT Hand Held Fusion Splicer Kit Paypal US $17,255.00 8d 5h
Fitel S153A BK 10 Splicer Basic Kit Fitel S153A BK 10 Splicer Basic Kit Paypal US $9,100.00 8d 5h 12m
Fujikura FSM 60S Fusion Splicer Kit Band New Fujikura FSM 60S Fusion Splicer Kit Band New Paypal US $8,900.00 8d 8h 7m
Keyence 96M0179 FIBER SPLICER MOUNTING KIT Keyence 96M0179 FIBER SPLICER MOUNTING KIT Paypal US $16.99 8d 12h 3m
SPECIAL SELLING FREE SHIPPINGOrienTek T35 Digital Fusion Splicer Kit SPECIAL SELLING FREE SHIPPINGOrienTek T35 Digital Fusion Splicer Kit Paypal US $3,399.00 8d 15h 26m
FSM 60S Fujikura Fusion Splicer KIT w cleaver battery cord FSM 60S Fujikura Fusion Splicer KIT w cleaver battery cord Paypal US $15,995.00 8d 22h
FSM 60R12 Fujikura Fusion Splicer KIT USA Model FSM 60R12 Fujikura Fusion Splicer KIT USA Model Paypal US $17,995.00 8d 22h 4m
Fitel S153A BK 250 Splicer Basic Kit Fitel S153A BK 250 Splicer Basic Kit Paypal US $9,100.00 9d 4h
Fitel S153A BK 900 Splicer Basic Kit Fitel S153A BK 900 Splicer Basic Kit Paypal US $9,100.00 9d 4h 8m
Fitel S153A VK 10 Splicer Value Kit Fitel S153A VK 10 Splicer Value Kit Paypal US $9,315.00 9d 4h 16m
Fitel S153A VK 250 Splicer Value Kit Fitel S153A VK 250 Splicer Value Kit Paypal US $9,315.00 9d 4h 22m
Sumitomo Type 61 Fusion Splicer Kit Sumitomo Type 61 Fusion Splicer Kit Paypal US $3,195.00 9d 4h 42m
Fitel S123C Extended Kit Fusion Splicer USA Model Fitel S123C Extended Kit Fusion Splicer USA Model Paypal US $7,895.00 9d 20h 12m
Fitel S123C Basic Kit Fusion Splicer USA Model Fitel S123C Basic Kit Fusion Splicer USA Model Paypal US $6,975.00 9d 20h 12m
Fitel S123C Value Kit Fusion Splicer USA Model Fitel S123C Value Kit Fusion Splicer USA Model Paypal US $7,185.00 9d 20h 13m
Fitel S153A VK 900 Splicer Value Kit Fitel S153A VK 900 Splicer Value Kit Paypal US $9,315.00 10d 1h 59m
Fitel S153A EX 10 Splicer Extended Kit Fitel S153A EX 10 Splicer Extended Kit Paypal US $9,465.00 10d 2h 6m
Fitel S153A EX 900 Splicer Extended Kit Fitel S153A EX 900 Splicer Extended Kit Paypal US $9,850.00 10d 2h 12m
Sumitomo Type 25ES Kit 3 Fusion Splicer USA Model Sumitomo Type 25ES Kit 3 Fusion Splicer USA Model Paypal US $7,995.00 11d 1h 47m
FSM 60S Fujikura Fusion Splicer KIT w cleaver FSM 60S Fujikura Fusion Splicer KIT w cleaver Paypal US $15,795.00 12d 9h 19m
Sumitomo Type 39 KIT 2 Fusion Splicer USA Model Sumitomo Type 39 KIT 2 Fusion Splicer USA Model Paypal US $15,495.00 12d 12h 33m
Sumitomo Type 39FH Kit 2 Fusion Splicer USA Model Sumitomo Type 39FH Kit 2 Fusion Splicer USA Model Paypal US $15,495.00 12d 12h 34m
Sumitomo Type 63 Fusion Splicer Kit Sumitomo Type 63 Fusion Splicer Kit Paypal US $4,695.00 13d 5h 46m
Sumitomo Type 45s Fusion Splicer Kit Sumitomo Type 45s Fusion Splicer Kit Paypal US $5,545.00 13d 6h 8m
Ericsson FSU975FA Fusion Splicer Recoater ER2000 Kit Ericsson FSU975FA Fusion Splicer Recoater ER2000 Kit Paypal US $4,995.00 13d 7h 31m
Sumitomo Type 39 Fusion Splicer Kit Brand New free shipping Sumitomo Type 39 Fusion Splicer Kit Brand New free shipping Paypal US $7,790.00 13d 16h 3m
Fujikura FSM 60S Fusion Splicer Kit Band New free shipping Fujikura FSM 60S Fusion Splicer Kit Band New free shipping Paypal US $9,630.00 13d 16h 6m
EZ FIT 3 16 Hose Repair Kit 2 Hose Clamps 1 Splicer EZ FIT 3 16 Hose Repair Kit 2 Hose Clamps 1 Splicer Paypal US $10.00 14d 11h 55m
Sumitomo Type 39 Fusion Splicer Kit Brand New Sumitomo Type 39 Fusion Splicer Kit Brand New Paypal US $8,600.00 14d 12h 5m
Extra Splicing Tabs for Kinyo or 1 2 Splicer Kits Extra Splicing Tabs for Kinyo or 1 2 Splicer Kits Paypal US $4.95 14d 15h 55m
FITEL ELECTRODE KIT S182A FUSION SPLICER FITEL ELECTRODE KIT S182A FUSION SPLICER US $75.00 16d 1h 21m
MASTERCRAFT 253005 BOAT MUFFLER HOSE and SPLICER KIT MASTERCRAFT 253005 BOAT MUFFLER HOSE and SPLICER KIT Paypal US $77.95 16d 6h 23m
Fujikura FSM 60S Fusion Splicer NEW Full Kit 1 Year Warranty Fujikura FSM 60S Fusion Splicer NEW Full Kit 1 Year Warranty Paypal US $9,300.00 17d 21h 53m
Keyence 96M0179 Fiber Splicer and Mounting Kit NEW Keyence 96M0179 Fiber Splicer and Mounting Kit NEW Paypal US $10.00 17d 22h 39m
New FSM 60S Fusion Splicer Kit Genuine New FSM 60S Fusion Splicer Kit Genuine Paypal US $15,900.00 19d 5h 14m
Sumitomo Type 39 Fusion Splicer Kit Sumitomo Type 39 Fusion Splicer Kit Paypal US $14,900.00 19d 5h 16m
Sumitomo Type 39 Fusion Splicer NEW Full Kit 1 Year Warranty Sumitomo Type 39 Fusion Splicer NEW Full Kit 1 Year Warranty Paypal US $7,400.00 19d 22h 21m
KLEIN TOOLS 46037 Telco Cable Splicer Kit NEW KLEIN TOOLS 46037 Telco Cable Splicer Kit NEW Paypal US $34.98 20d 4h 39m
Sumitomo Type 61 Ribbon Mass Fusion Splicer Kit Extra Sumitomo Type 61 Ribbon Mass Fusion Splicer Kit Extra Paypal US $2,990.00 20d 13h 48m
FREE SHIPPING OrienTek T35 Core Alignment Fusion Splicer Kit w Fiber Cleaver FREE SHIPPING OrienTek T35 Core Alignment Fusion Splicer Kit w Fiber Cleaver Paypal US $3,400.00 20d 18h 58m
OrienTek T35 Core Alignment Fiber Fusion Splicer Kit w Fiber Cleaver OrienTek T35 Core Alignment Fiber Fusion Splicer Kit w Fiber Cleaver Paypal US $3,400.00 20d 20h 14m
DVP 730 Core Alignment Fusion Splicer Kit w Fiber Cleaver Free Shipping By DHL DVP 730 Core Alignment Fusion Splicer Kit w Fiber Cleaver Free Shipping By DHL Paypal US $3,550.00 20d 20h 45m
JILONG KL 300T PAS Technology Fusion Splicer Kit w Fiber CleaverFREE SHIPPING JILONG KL 300T PAS Technology Fusion Splicer Kit w Fiber CleaverFREE SHIPPING Paypal US $4,550.00 20d 21h 11m
Sumitomo Type 25EU KIT 1 Fusion Splicer USA Model Sumitomo Type 25EU KIT 1 Fusion Splicer USA Model Paypal US $4,875.00 21d 5h 48m
Ericsson FSU995 PM Splicer Full Kit with Cleaver Heater Fiber holders Manual Ericsson FSU995 PM Splicer Full Kit with Cleaver Heater Fiber holders Manual Paypal US $19,995.00 22d 12h 26m
KLEIN TOOLS 46037 Cable Splicers Kit KLEIN TOOLS 46037 Cable Splicers Kit Paypal US $36.62 22d 14h 1m
FITEL S178A Fusion Splicer New Full KIT1 Year Warranty FITEL S178A Fusion Splicer New Full KIT1 Year Warranty Paypal US $8,700.00 22d 17h 54m
NEW KEYENCE 96M0179 FIBER SPLICER MOUNTING KIT NEW KEYENCE 96M0179 FIBER SPLICER MOUNTING KIT Paypal US $7.00 23d 4h 21m
Corning OptiSplice One Kit W Corning OV MiniOS 400 OM 600 Splicer Kit MINT Corning OptiSplice One Kit W Corning OV MiniOS 400 OM 600 Splicer Kit MINT Paypal US $16,999.95 23d 20h 8m
INNOTEK BOUNDARY KIT 500FT18GA WIRE2 SPLICER 50 FLAGS INNOTEK BOUNDARY KIT 500FT18GA WIRE2 SPLICER 50 FLAGS Paypal US $46.99 23d 21h 9m
18 piece Heater Hose Splicer Assortment Kit 18 piece Heater Hose Splicer Assortment Kit Paypal US $11.95 24d 3h 45m
KEYENCE 96M0179 FIBER SPLICER MOUNTING KIT for SENSOR NEW KEYENCE 96M0179 FIBER SPLICER MOUNTING KIT for SENSOR NEW Paypal US $18.00 24d 8h 51m
Free ShippingJilong KL 300T Digital Fusion Splicer Kit w Fiber Cleaver Free ShippingJilong KL 300T Digital Fusion Splicer Kit w Fiber Cleaver Paypal US $4,726.00 24d 13h 30m
Fitel Furukawa S174H Fiber Optic Fusion Splicer Kit Fitel Furukawa S174H Fiber Optic Fusion Splicer Kit US $4,999.99 27d 2h 16m
Klein Tools 409 46037 94051 Cable Splicer Kit Klein Tools 409 46037 94051 Cable Splicer Kit Paypal US $53.02 28d 7h 33m
Cable Splicers Kit Cable Splicers Kit Paypal US $15.95 29d 2h 45m
Klein Tools 46037 cable splicer kit NEW Klein Tools 46037 cable splicer kit NEW Paypal US $35.00 29d 4h 47m


Bishock 2 tips...............?

Any tips on how to beat the game on hard I set it hard so it would be more challenging and last longer but them F*cking splincers(or whatever there called) man wipe me out I use about 4 medic kits when there about10 splicers and they take a beating to kill especially big sisters:|

any tips would be nice. Cheers;)

I beat it on Hard and it wasn't that hard for me. The drill is your friend! I fully upgraded the drill as soon as possible. The final upgrade for the drill allows you to reflect projectiles back at the enemy while you are drilling. When you drill an enemy, they become temporarily stunned (the stun is significantly shorter on big daddies and big sisters). This is an easy way to knock off a big chunk of their health. You can then either finish them off by drilling them again, melee them down quickly, or shooting them down. The drill becomes a very powerful weapon once you get the charge ability. With damage increases from research I was able to kill enemies in 1 hit with the charge (with the exception of brute splicers, big daddies, big sisters, and security turrets). If you run out of drill fuel, go for headshots. A headshot does nearly double the normal damage and even more if you purchase the tonic that increases the damage done by headshots. You also need to conserve as much ammo as possible (that's why I melee splicers) so that you have enough money to buy health, eve, or even ammo. Out of all the plasmids available, I used the Hypnosis and the Telekinesis ones the most. Hypnosis lets you sit back and watch splicers kill each other which is nice and I used Telekinesis since there are so many explosive barrels lying around on each level.

Remember to purchase health upgrade in EACH level to help you out. As you progress through the game, buy up the armor tonic (research the brute splicers for the upgraded version) and the tonic that reduces fire damage (for big sisters and houdini splicers). It is important that you research whenever you can since the bonuses are essential for beating the game on Hard mode.

Simple Antirootkit

1. SST: references
2. Algorithm
3. Memory mapped files
4. Implementation
5. Demonstration
6. How to build

Written by:
Victor Milokum, Development Leader of Network Security Team.

http://www.apriorit.com

1. SST: references

This article is a logical continuation to the article "Driver to Hide Processes and Files" http://www.codeproject.com/KB/system/hide-driver.aspx by Ivan Romananko. You can find all necessary information about System Service Table (SST) and its hooking in it.

In this article I would like to present how to write your own unhooker that will restore original SST hooked by drivers like Ivan's one.

2. Algorithm

My goal is to write a simple driver for SST hooking detection and removing purposes.

This means that our driver should not use various Zw-functions and SST table because I suppose that SST table is corrupted by unknown rootkits.

I do not care about filter drivers and function code splicers for now, but maybe I will come back to them in future.

The simplest way to detect and remove hooks is to compare SST that is placed in memory with the initial SST from ntoskernel.exe file.

So the goal is:

  1. to find ntoskernel module in memory;
  2. to find the section of ntoskernel where SST is placed and to calculate relative offset of SST in the section;
  3. to find this section in the ntoskernel.exe file;
  4. to calculate real address of SST in the file;
  5. to read values from the file and to compare them with SST.

But before the implementation I would like to present some additional information.

3. Memory mapped files in kernel mode

"A memory-mapped file is a segment of virtual memory which has been assigned a direct byte-for-byte correlation with some portion of a file or file-like resource". (c) Wiki

Yeah, we want to parse the PE file and memory mapped files are very useful for this task.

And it is easy enough to use mapped files API from the kernel mode, because it is very similar to Win32 API. Instead of CreateFileMapping and MapViewOfSection functions in kernel mode driver should access

NTSTATUS ZwCreateSection( OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtection, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL );

and

NTSTATUS ZwMapViewOfSection( IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Win32Protect );

functions.

But if we use these functions we will break our own rule not to use SST. Also, it is good for antirootkit to use extremely low level functions in the hope of being invisible to the possible rootkits.

With regard to this we can use undocumented functions of Memory Manager (Mm), of course at our own risk:

NTSTATUS
MmCreateSection ( OUT PVOID *SectionObject, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize, IN ULONG SectionPageProtection, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL, IN PFILE_OBJECT File OPTIONAL ); NTSTATUS
MmMapViewOfSection( IN PVOID SectionToMap, IN PEPROCESS Process, IN OUT PVOID *CapturedBase, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset, IN OUT PSIZE_T CapturedViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect ); NTSTATUS
MmUnmapViewOfSection( IN PEPROCESS Process, IN PVOID BaseAddress ); NTSTATUS drv_MapAllFileEx(HANDLE hFile OPTIONAL, drv_MappedFile * pMappedFile, LARGE_INTEGER * pFileSize, ULONG Protect)
{ NTSTATUS status = STATUS_SUCCESS; PVOID section = 0; PCHAR pData=0; LARGE_INTEGER offset; offset.QuadPart = 0; // check zero results if (!pFileSize->QuadPart) goto calc_exit; status = MmCreateSection (&section, SECTION_MAP_READ, 0, // OBJECT ATTRIBUTES pFileSize, // MAXIMUM SIZE Protect, 0x8000000, hFile, 0 ); if (status!= STATUS_SUCCESS) goto calc_exit; status = MmMapViewOfSection(section, PsGetCurrentProcess(), (PVOID*)&pData, 0, 0, &offset, &pFileSize->LowPart, ViewUnmap, 0, Protect); if (status!= STATUS_SUCCESS) goto calc_exit; calc_exit: if (NT_SUCCESS(status)) { pMappedFile->fileSize.QuadPart = pFileSize->QuadPart; pMappedFile->pData = pData; pMappedFile->section = section; } else { if (pData) MmUnmapViewOfSection(PsGetCurrentProcess(), pData); if (section) { ObMakeTemporaryObject(section); ObDereferenceObject(section); } } return status;
}

This example demonstrates an alternative approach to the usage of mapped files through MmCreateSection/MmMapViewOfSection functions.

The presented approach is pretty good because it doesn't utilize Zw* functions and even handles at all, but it has one restriction. If you start this sample from DriverEntry it will work fine, but if you start it from the IRP_MJ_DEVICE_CONTROL handler you will see that MmCreateSection function fails with STATUS_ACCESS_DENIED. Why?

The answer is: Zw* functions do one good thing - they set previous mode to KernelMode and this allows to utilize kernel mode pointers and handles as parameters for them (for more information see Nt vs. Zw - Clearing Confusion On The Native API article - http://www.osronline.com/article.cfm?id=257)

So, the presented above function can be called only from DriverEntry or from the system thread.

4. Algorithm implementation

I designed the following structure to save all ntoskernel parsing results:

#define IMAGE_SIZEOF_SHORT_NAME 8
typedef struct _Drv_VirginityContext
{ drv_MappedFile m_mapped; HANDLE m_hFile; UCHAR m_SectionName[IMAGE_SIZEOF_SHORT_NAME+1]; ULONG m_sstOffsetInSection; char * m_mappedSST; ULONG m_imageBase; char * m_pSectionStart; char * m_pMappedSectionStart; char * m_pLoadedNtAddress;
}Drv_VirginityContext;

And I implemented the chosen algorithm as follows:

static NTSTATUS ResolveSST(Drv_VirginityContext * pContext, SYSTEM_MODULE * pNtOsInfo)
{ PIMAGE_SECTION_HEADER pSection = 0; PIMAGE_SECTION_HEADER pMappedSection = 0; NTSTATUS status = 0; PNTPROC pStartSST = KeServiceDescriptorTable->ntoskrnl.ServiceTable; char * pSectionStart = 0; char * pMappedSectionStart = 0; // Drv_ResolveSectionAddress function detects // to which section pStartSST belongs // pSection will contain the section of ntoskernel.exe that contains SST pContext->m_pLoadedNtAddress = (char*)pNtOsInfo->pAddress; status = Drv_ResolveSectionAddress(pNtOsInfo->pAddress, pStartSST, &pSection); if (!NT_SUCCESS(status)) goto clean; // save section name to context memcpy(pContext->m_SectionName, pSection->Name, IMAGE_SIZEOF_SHORT_NAME); // calculate m_sstOffsetInSection - offset of SST in section pSectionStart = (char *)pNtOsInfo->pAddress + pSection->VirtualAddress; pContext->m_sstOffsetInSection = (char*)pStartSST - pSectionStart; // find section in mapped file - on disk! status = Drv_FindSection(pContext->m_mapped.pData, pSection->Name, &pMappedSection); if (!NT_SUCCESS(status)) goto clean; pMappedSectionStart = (char *)pContext->m_mapped.pData + pMappedSection->PointerToRawData; pContext->m_mappedSST = pMappedSectionStart + pContext->m_sstOffsetInSection; { // don´t forget to save ImageBase PIMAGE_DOS_HEADER dosHeader = (PIMAGE_DOS_HEADER)pContext->m_mapped.pData; PIMAGE_NT_HEADERS pNTHeader = (PIMAGE_NT_HEADERS)((char*)dosHeader + dosHeader->e_lfanew); pContext->m_imageBase = pNTHeader->OptionalHeader.ImageBase; } pContext->m_pSectionStart = pSectionStart; pContext->m_pMappedSectionStart = pMappedSectionStart;
clean: return status;
}

And here is the function that returns real value of SST:

void Drv_GetRealSSTValue(Drv_VirginityContext * pContext, long index, void ** ppValue)
{ char * pSST = pContext->m_mappedSST; ULONG * pValue = ((ULONG *) pSST) + index; // now pValue points to the mapped SST entry // but entry contains offset from the beginning of ntoskernel file, // so correct it *ppValue = (void*)(*pValue + (ULONG)pContext->m_pLoadedNtAddress – pContext->m_imageBase);
}

After that it is quite simple to implement main functionality:

virtual NTSTATUS ExecuteReal()
{ CAutoVirginity initer; NT_CHECK(initer.Init(&m_virginityContext)); // now we are ready to scan :)  for(int i = 0, sstSize = Drv_GetSizeOfNtosSST(); i < sstSize; ++i) { void ** pCurrentHandler = Drv_GetNtosSSTEntry(i); void * pRealHandler = 0; Drv_GetRealSSTValue(&m_virginityContext, i, &pRealHandler); if (pRealHandler != *pCurrentHandler) { // oops, we found the difference! // unhook this entry Drv_HookSST(pCurrentHandler, pRealHandler); } } return NT_OK;
}

This tiny cycle completely removes all SST hooks and brings SST to its initial state.

6. Demonstration

For testing purposes I developed simple console utility named unhooker.exe. This utility can be started without parameters; in this case it shows information about its abilities:

  1. "stat" command shows statistics about SST hooking;
  2. "unhook" command cleans SST;

This sample demonstrates how to use utility to detect and erase hooks:

Have fun!

6. How to build

Build steps are the same as in the "Hide Driver" article. They are:

  1. Install Windows Driver Developer Kit 2003 - http://www.microsoft.com/whdc/devtools/ddk/default.mspx
  2. Set global environment variable "BASEDIR" to path of installed DDK. Go here: Computer -> Properties -> Advanced -> Environment variables ->System Variables -> New

And set it like this: BASEDIR -> c:winddk3790
(You have to restart your computer after this.)

If you choose Visual Studio 2003, then you can simply open UnhookerMain.sln and build all.

Downloads (solution and sources)

About the Author

Apriorit is worldwide provider of professional consulting and software development services.

Company operates in the advanced IT fields like Virtualization, Corporate Security, Driver Development.

www.apriorit.com

3M™ Scotchcast™ Inline Resin Splice Kit 82-A1 - Training

Splicer Kit