通过QEMU模拟的ASA运行ASDM 之前大家也曾经尝试过使用ASDM来连接QEMU运行的ASA,但大体都是ASDM不支持该版本,主要原因就是因为ASDM在检测QEMU模拟ASA时,不能得到其硬件版本(5505,5510,5520,etc),其实ASDM检查QEMU模拟的ASA的时候利用的就是HTTPS协议,介绍一个软件Fiddler,一个HTTP debugging proxy,其2.0版本支持https协议,并且这个工具可以截获本机发送的HTTP或者HTTPS流量进行重写,那么我们就有机会将ASDM与QEMU模拟的ASA中间的HTTPS流量进行重写,将硬件版本号写进HTTPS,骗取ASDM来识别.
1.需要的软件
   QEMU模拟的ASA(论坛已经有了)
   Fiddler ([url=http://www.fiddler2.com/dl/Fiddler2BetaSetup.exe]http://www.fiddler2.com/dl/Fiddler2BetaSetup.exe[/url])
   ASDM(QEMU模拟的FLASH中需包含它)
   JAVA(最新版本)
2.Howto
  >首先,安装JAVA,Fiddler.
  >运行并启动QEMU模拟的ASA(基本配置端口IP,http enable,username ,导入ASDM文件到ASA,等等)
  >然后运行fiddler,注意定义下图几个地方:
  点击Tools->Fiddler option->Https
  [attach]7815[/attach]
勾选Decrypt HTTPS traffic
>点击Rules->Customize rules
搜索找到函数[code]  static function OnBeforeRequest(oSession: Session)[/code]在该函数中加入一条if语句[code] if ((oSession.url.EndsWith("/admin/asdm_handler")) || (oSession.url.EndsWith("/admin/pdm.sgz")))
         {
                 oSession.bBufferResponse = false;
                }[/code]搜索找到函数[code]  static function OnBeforeResponse(oSession: Session)[/code]在该函数中加入一条if语句[code]  if (oSession.url.Contains("/show+version"))
      {
           oSession.utilDecodeResponse();
           oSession.utilReplaceInResponse('Hardware:   ,','Hardware:   ASA5520,');
      }
  [/code]注意('Hardware:   ,','Hardware:   ASA5520,'); 中的空格保留(3个空格,请完全复制)
点击文件->保存(如果语法正确将听到提示声音,并无任何提示框,假如语法错误或者将会提出提示框)
>点击 开始->控制面板->JAVA->常规->网络设置
  使用代理服务器,地址为localhost 端口为8888(fiddler的服务端口)
  点击高级,对所有协议使用同一个代理服务器
>运行ASDM
  [attach]7816[/attach]
  [attach]7817[/attach]
成功登陆到ASDM以后注意取消JAVA代理服务器设置.
备注:所需文件看附件, 说明看33楼
[url=http://netemu.cn/bbs/thread-9955-2-1.html]http://netemu.cn/bbs/thread-9955-2-1.html[/url] 33楼
高速下载请至FTP [url]ftp://down.netemu.cn[/url]
username:down password:netemu.cn
目录:/down/NetEmu.cn 专用/qemu/Qemu_asa_asdm/asa802_asdm.7z