Main page www.securesize.com  
Main page GeSWall BOWall Resources  
BOWall
 
Buffer Overflow

How to use

At the beginning you should choose working directory (by default %systemroot%\system32), then start searching by pressing "Find DLLs". As result two lists will be generated: 'Vulnerable DLL to protect' and 'DLL to block calls'. The first list corresponds to the protection by first method protection (vulnerable functions monitoring). The second list is for method of preventing of dynamic libraries functions execution.

At this stage you may choose which DLLs should patched by setting check boxes in "Protect DLLs" and "Block DLL calls" tabs, then start the patching by 'Protection/Protect DLLs'. The progress is indicated in "Protecting Result".

Upon completing the patch, appropriate message will be shown. During the patch original DLLs are not changed, but their updated copies are created. Patched DLLs are placed in the same directory and get the following names: new _ [original _ name].

To replace original DLL to patched DLL follow these steps:

1) Make a backup copy original DLL and rename it,

e.g.: ren [original _ name] orig_[original_name]

2) Rename patched DLL: ren new_[original_name] [original_name]

3) Reboot the system

BOWall package contains sample to test protection of the first method:

botest.exe < big _ string >

big _ string - string which causes buffer overflow by a calling MSVCRT.DLL!strcpy.

With input string of up to 15 symbols the local variable frame base pointer isn't rewritten and botest types: "without overflow". With input of a string by the size more than 15 symbols frame base pointer is overwritten. BOWall patch detects overflow and terminates affected process.

 

Note, any DLL can be successfully patched, including KERNEL32.DLL, NTDLL.DLL, etc, but you have to disable Windows File Protection first KB222473

 
© 2003-2008 Andrey Kolishchak
Designed by a.shoshin