Local buffer-overflow in W32Dasm 8.93
#######################################################################
                             Luigi Auriemma
Application:  W32Dasm
              (was http://www.expage.com/page/w32dasm)
Versions:     <= 8.93 (8.94???)
Platforms:    Windows
Bug:          buffer-overflow
Exploitation: local
Date:         24 Jan 2005
Author:       Luigi Auriemma
              e-mail: aluigi@xxxxxxxxxxxxx
              web:    http://aluigi.altervista.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
W32Dasm is a cool and famous disassembler/debugger developed by URSoft.
It has tons of functions and, also if it is no longer supported by long
time, it is still widely used by a lot of people.
#######################################################################
======
2) Bug
======
The program uses the wsprintf() function to copy the name of the
imported/exported functions of the analyzed file into a buffer of only
256 bytes, with the possibility for an attacker to execute malicious
code.
#######################################################################
===========
3) The Code
===========
Exploiting the bug is very simple, all you need is to get an executable
and searching for the name of an imported or exported function to
modify.
I have written a very simple proof-of-concept that overwrites the
return address with 0xdeadc0de:
  http://aluigi.altervista.org/poc/w32dasmbof.disasm_me
#######################################################################
======
4) Fix
======
No fix.
This program is no longer supported.
#######################################################################
--- 
Luigi Auriemma
http://aluigi.altervista.org