Category Archives: 软件配置管理

软件配置管理技术

Mantis-如何导出自定义字段的值

0
Digg me

大家在使用mantis提供的通用report报表的时候,有时候就会使用自定义字段的功能,使得表单的功能更符合实际,可是使用自定义字段,却有害怕在数据导出的时候会出现这些字段值得丢失,这让人感觉比较矛盾。没关系,以下篇章说明如何导出自定义字段的值,这会让你觉得使用起来会很简单。 1. 首先当然是根据你的需要自定义字段。 在菜单[ 管理 ]à[ 自定义字段管理 ] 进入自定义字段管理页面,新增所需的新字段,可选择其字段类型,默认值以及一些条件等等,点击确认就OK。 2. 进入[ 管理 ]à[ 项目管理 ],将所需的自定义字段添加到该项目里。 3. 这时候需要进入正题了,默认情况下,自定义字段是不会被导出的,据说是在Mantis1.1版本会增加这样的修改。现在我们要做的就是: 打开Mantis目录下的Core目录里面的custom_function_api.php,找个合适的地方(可添至原来代码最后)将以下的代码添加到里面就OK了。 # ----------------------------------------------------------------------------------------------- function custom_function_override_get_columns_to_view( $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) { $t_columns = array(); if ( $p_columns_target == COLUMNS_TARGET_CSV_PAGE ) { $t_columns[] = 'id'; // localized: 'id', $t_columns[] = 'project_id'; // 'email_project' $t_columns[] = 'reporter_id'; // 'reporter' $t_columns[] = 'handler_id'; // 'assigned_to' $t_columns[] = 'priority'; // 'priority' $t_columns[] = 'severity'; // 'severity' $t_columns[] = 'reproducibility'; // 'reproducibility' $t_columns[] = 'version'; // 'version' $t_columns[] = 'projection'; // 'projection' $t_columns[] = 'category'; // 'category' $t_columns[] = 'date_submitted'; // 'date_submitted' $t_columns[] = 'eta'; // 'eta' $t_columns[] = 'os'; // 'os' $t_columns[] = 'os_build'; // 'os_version' $t_columns[] = 'platform'; // 'platform' $t_columns[] = 'view_state'; // 'view_status' $t_columns[] = 'last_updated'; // 'last_update' $t_columns[] = 'summary'; // 'summary' $t_columns[] = 'status'; // 'status' $t_columns[] = 'resolution'; // 'resolution' $t_columns[] = 'fixed_in_version'; // 'fixed_in_version'; # if viewing only one Project, Add all custom fields linked to this project if ( helper_get_current_project() != ALL_PROJECTS ) { $t_custom_fields = custom_field_get_linked_ids(helper_get_current_project()); foreach( $t_custom_fields as $t_field_id ) { $t_desc = custom_field_get_definition( $t_field_id ); $t_columns[] = 'custom_' . $t_desc['name']; } } if ( OFF == config_get( 'enable_relationship' ) ) { $t_columns[] = 'duplicate_id'; // 'duplicate_id' } } else { $t_columns[] = 'selection'; if ( $p_columns_target == COLUMNS_TARGET_VIEW_PAGE ) { $t_columns[] = 'edit'; } $t_columns[] = 'priority'; $t_columns[] = 'id'; $t_enable_sponsorship = config_get( 'enable_sponsorship' ); if ( ON == $t_enable_sponsorship ) { $t_columns[] = 'sponsorship'; } $t_columns[] = 'bugnotes_count'; $t_show_attachments = config_get( 'show_attachment_indicator' ); if ( ON == $t_show_attachments ) { $t_columns[] = 'attachment'; } $t_columns[] = 'reporter_id'; $t_columns[] = 'category'; $t_columns[] = 'severity'; $t_columns[] = 'status'; $t_columns[] = 'last_updated'; $t_columns[] = 'summary'; } return $t_columns; } 4. 添加以上代码之后,保存就OK了。这时候,你可以来检验一下,提交一个包含自定义字段的报告,然后在issue view页面里,点击[ CSV导出 ]/[ CSV Export ] ,将导出的CSV文档保存到本地,然后打开看看,是不是自定义字段及其值就在里面呢,呵呵,All Done!!!

Posted in 软件配置管理 | Tagged | Leave a comment

TestLink 安装配置说明

0
Digg me

Testlink的安装非常简单,大家根据我说的以下步骤进行安装和配置,那么就可以马上试用TestLink的实际功能了。 一、系统环境需求 TestLink需要如下的运行环境: l MySQL 4.1.x 以上 (4.0.x 也能用但是不支持UTF-8,也就是说可能对于中文的支持不是很好) l php 4.3.x 以上 (不支持php5 但是应该也能运行) l Webserver (Apache 1.3.x or 2.0.x 以上, IIS 3 以上等等) l 对于操作系统没有要求,只要以上的应用环境都能配置,Windows,Unix/Linux都可以运行。 可以查看Testlink的install.txt文件获得更多信息 看到这些系统环境,相信用过Mantis的用户应该和熟悉,因为这些和Mantsi的使用环境是一样的。所以,这样的环境配置,对于你来说应该不在话下,这里就不再赘述。 二、安装 1、 到官方网站下载TestLink的最新版本。 地址:https://sourceforge.net/project/showfiles.php?group_id=90976 2、 将下载的压缩文件解压,如你已解压TestLink程序文件至名字为TestLink文件夹里。 3、 如采用Apache服务器,则将TestLink目录copy到其www目录;如为iis,则新建站点,然后指向TestLink目录位置。 4、 服务器配置好之后,下一步则为数据库的安装配置,存在两种方式,一种是自动模式,另外一种是手动模式。 l 自动模式 服务器配置好之后,运行http://yourserver/testlink/install/index.php 则会出现安装环境信息检查,如果环境配置不满足,则不能进行下一步的安装工作,需要更新你当前的环境配置版本。如果都能满足,则进入下一步的数据库配置工作,当你的数据库版本也满足其系统要求时,填入你的数据库访问用户名和密码(安装必须有ALTER, SELECT, INSERT,UPDATE,INDEX, CREATE, DELETE, 和DROP权限),按照向导一步步就可以完成配置了。 l 手动 直接在mysql数据库建立Testlink数据库,打开Testlink文件夹, \install\sql目录里找到两个SQL文件,其中testlink_create_tables.sql用于建立表结构,testlink_create_default_data.sql用户初始化表数据,所以在建立好的数据库里导入SQL文件时,应用先导入testlink_create_tables.sql后导入testlink_create_default_data.sql,否则会报错。SQL文件导入之后,数据库的配置也就完成了。 5、 数据库配置好之后,默认情况下系统已经预置一位管理员账号,用户名和密码为admin, 当你第一次采用这个账户进入testlink系统,需要修改该管理员的密码,否则,每次登录的时候都在首页上作醒目提示。此外,安装完之后,需要将install文件夹移除或是重命名,否则也会在每次登录的时候都在首页上作醒目提示。 三、 配置 安装完毕后,需要做tesklink配置,主要是针对以下这几个配置文件的参数确定。 <testlink installation directory>/config.inc.php <testlink installation directory>/config_db.inc.php <testlink installation directory>/cfg/<bug_tracking_system>.cfg.php [bug_tracking_system指的是Bugzilla、mantis等系统] 1、 config.inc.php 必须配置的参数: DB_SUPPORTS_UTF8=True(False) (则支持UTF-8并以该格式存储到数据库里,这个功能只限于MySql版本4.1以上) 可配置的参数: TL_LOG_LEVEL_DEFAULT=None (ERROR, INFO, DEBUG). (日志记录级别,文件大小不受限,不同的级别所获取的日志信息不一样) 。。。。。。 config.inc.php里面的参数都可以根据你的需求去选择对应的值。(以后有时间再详细描述,或是有问题可以进行讨论。) 2、 config_db.inc.php 如果是手动配置数据库,那么需要在你的testlink根目录下创建config_db.inc.php,内容为: <?php // Automatically Generated by TestLink Installer define('DB_TYPE', 'mysql'); define('DB_USER', 'youraccount'); define('DB_PASS', 'yourpasswoed'); define('DB_HOST', 'yourhost'); define('DB_NAME', 'yourdbname'); ?> 然后直接保存。 如果是自动配置,则这个文件会自动生成,且无须手动配置。 3、 <bug_tracking_system>.cfg.php 如果你想集成mantis bug跟踪系统,则需要配置这个文件mantis.cfg.php,将mantis的相关配置参数在mantis.cfg.php配置起来。以此类推,这块我将在后面的集成章节详细描述。 四、升级 如果之前已经安装过TestLink,对于新版本则无需进行以上安装配置操作,只需执行升级操作即可。 1、 一致的版本更新(如从1.6.0向1.6.1升级,这样的版本更新只是修改一些bug,对数据库的结构不做改动) 升级步骤: 1) 保存之前版本的文件。 2) 将其从文件夹中移出。 3) 将config_db文件拷贝到新版本的文件里并修改你之前设定相应的参数(在config.inc里修改,也可将其直接拷贝过来)。 4) 这样就完成升级的工作了。 2、 自动升级 1) 和之前的安装类似,将环境部署好之后,直接访问 http://<testlinkwebdir>/install/index.php,出现的页面会提示你是要安装还是升级操作。 2) 选择升级操作,然后根据向导一步步地完成。 3) /span>完成升级后,为了安全起见移除install文件夹 4) 配置工作和以上描述一样,这样就完成了。 3、 手动升级 目前程序不支持手动升级,当然在你知道如何修改数据库结构之后你也可以去尝试。 以上描述的安装和配置过程不知道你看明白没有呢? 如果我的文字不能给你提供一个清晰的过程操作,请留言说明,我会根据你的意见进行修改。

Posted in 软件配置管理 | Tagged | Leave a comment

mantis自制安装包

0
Digg me

mantis 自制的安装包 http://www.rayfile.com/files/d726c526-66c5-11e1-bcb7-0015c55db73d/

Posted in 软件配置管理 | Tagged | Leave a comment

TestLink 的基本介绍

0
Digg me

提起测试管理工具,大家无非就会提起Rational CQ,Mercury TD/QC,大家可曾想到,如果真的要使用这些工具,那必须是资金雄厚的大公司,那作为小公司,如果没有实力去购买这些昂贵的工具,但是有想进行规范化的测试管理,又该怎么办呢?没有关系,以下我就给大家介绍一款开源的测试管理工具-TestLink,该工具简单易用,对于要求免费而又需要规范化管理的小公司来说,确实是一个好的选择。 TestLink可以帮助你管理整个测试过程,如创建测试脚本,执行测试,跟踪测试结果等等。此外,它还能使测试开发,测试以及测试报告简单化。 · 动态的收集和组织你的测试用例; · 跟踪测试执行后的测试结果 · 跟踪独立测试的准确信息 · 获取并详细的报告测试结果,帮助你更好的管理整个测试过程 · 自定义TestLink以适应你的需求和测试过程。 它主要特点如下: · Web方式访问(支持Mozilla, Firefox, IE浏览器) · 测试计划中的每个产品的测试都遵循测试流程 · 用户可以自定义角色(如测试组长,测试员等等) · 关键字的作用用于支持深层次的测试组织 · 测试可以根据优先级指派给测试员,定义里程碑。 · 提供测试报告 · 支持将文档导出成HTML,WORD或是Excel格式 · 可以直接通过这个工具将测试报告邮件发送出去 · 本地化和国际化(支持英语,法语,德语,意大利语、西班牙语、巴西语和葡萄牙语,中文其实也支持,采用UTF-8) · 可结合通用的bug跟踪系统,如Bugzilla、mantis和Jira(这个特点我会在后面的章节说明其与Mantis的结合使用,非常奇妙吧!:P) · 基于测试的需求管理 看到以上说明的这些主要特点,是不是也有些心动了,这些功能是不是正是你所寻求的呢?何不尝试下载试用一下,也许,它就是你寻找以久的测试管理工具。 下载地址:https://sourceforge.net/project/showfiles.php?group_id=90976

Posted in 软件配置管理 | Tagged | Leave a comment

Mantis使用历程-如何使用RSS功能

0
Digg me

在Mantis登录页面进取后,大家都可以看到有一个RSS的功能连接,相信很多人都点击过这个功能链接,得到一个比较郁闷的提示,“无权限存取”。为什么没有权限呢,我可是用超级管理员的身份进入的哦。不要着急,以下,我给大家一一说明如何来使用这个RSS功能。 首先,大家先明确什么叫做RSS,RSS原意有“Rich Site Summary”,或“RDF Site Summary”,还有“Really Simple Syndication”。我更倾向于Rich Site Summary,它是一种用來分发和汇集网页內容的XML格式,通过RSS可以订阅BLOG,也可以用RSS來订阅留言板,或用RSS來订阅新闻,然后可以自动更新该订阅地址的内容,你可以在RSS阅读器中自由选择浏览。 对了,要使用该功能,还需要一个RSS阅读器,我在这里使用周伯通RSS阅读器为例说明。 mantis的RSS功能实质上提供了一个订阅地址,这样你不用打开mantis系统,直接可以在RSS阅读器中浏览使用,非常的方便,使用的前提,对于mantis来说,必须将config里的下列参数修改一下: $g_allow_anonymous_login = ON; 因为进行频道订阅的时候,如果不允许匿名登录,是不允许进行订阅服务的。 完成这个设置之后,你在点击RSS功能连接,就会显示一个XML的页面 网页文件为:http://你的站点/mantis/news_rss.php 这个对于所有项目来说的 或是http://你的站点/mantis//news_rss.php?project_id=18 这是对于编号为18的项目来说的 然后下载“周伯通RSS阅读器”,进行安装工作之后,在阅读器的菜单栏中的“频道设置”或在左边 “频道列表栏”单击右键选择“新增RSS频道”选项。在新增RSS频道或OPML地址栏中输入你要添加 的RSS频道地址或OPML地址(即刚才点击mantis RSS 出现的地址 http://你的站 点/mantis/news_rss.php 或是http://你的站点/mantis//news_rss.php?project_id=18 这样 类型的地址),选择是否验证频道地址的有效性。选择频道所要添加的位置,用户可以随个人意愿对添 加的频道名称进行更改和选择存放频道的目录,点击“完成”即可。 频道添加成功后即可通过周博通RSS阅读器,来阅读你的新频道。点击即可浏览该订阅地址页面。 很简单吧,大家自己试试,不明白的问题,可以留言询问。

Posted in 软件配置管理 | Tagged | Leave a comment

Mantis-如何自定义流程状态

0
Digg me

相信大家在使用mantis的时候,有时候会对它给与的流程状态感觉不适应,或者可以说很生硬,没有关系,以下篇章例子说明如何自定义自己的流程状态。其实步骤很简单,可以说是三部曲。 第一步:在mantis根目录下创建一个custom_contant_inc.php文件,在里面加上如下语句; #-----------define my custom status value(定义自定义状态值)-------------- define ( 'Pretest', 60 ); ?> 第二步:在mantis根目录下创建custom_strings_inc.php文件,里面添加以下语句; #------------------- Define the language strings(定义状态语言) ---------------------------- if ( lang_get_current() == 'chinese_simplified' ) { $s_status_enum_string = '10:新建,20:打回,30:公认,40:已确认,50:已分派,60:预测试,80:已解决,90:已关闭'; } else { $s_status_enum_string = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned, 60:pretest,80:resolved,90:closed'; } $s_pretest_bug_button = "Issue Ready to Pretest"; $s_pretest_bug_title = "Set Issue Ready to Pretest"; $s_email_notification_title_for_status_bug_to_be_tested = "The following issue is ready TO BE PRETESTED."; ?> 第三步:修改你的config_inc.php, 用于适配自定义状态,添加以下语句,为了防止混乱,可添加至文件最后。 #----------2006-8-20 xixi add -------------------------------- #--------- Define new work flow for custom status------------- $g_status_enum_string = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned, 60:pretest,80:resolved,90:closed'; # Status color additions $g_status_colors['pretest'] = '#ACE7AE'; $g_status_enum_workflow[NEW_]= '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,60:pretest'; $g_status_enum_workflow[FEEDBACK] = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,60:pretest'; $g_status_enum_workflow[ACKNOWLEDGED] = '20:feedback,30:acknowledged,40:confirmed,50:assigned,60:pretest'; $g_status_enum_workflow[CONFIRMED] ='20:feedback,40:confirmed,50:assigned,60:pretest'; $g_status_enum_workflow[ASSIGNED] = '20:feedback,50:assigned,60:pretest,90:closed'; $g_status_enum_workflow[PRETEST] = '10:new,20:feedback,50:assigned,60:pretest,80:resolved,90:closed'; $g_status_enum_workflow[RESOLVED] = '50:assigned,60:pretest,80:resolved,90:closed'; $g_status_enum_workflow[CLOSED] = '50:assigned,90:closed'; 按照以上三步走就可以了,这时候你可以看到自己的issue状态有了一个新面孔哦,不错吧,自己来试试吧!!

Posted in 软件配置管理 | Tagged | Leave a comment

Mantis使用历程-版本升级操作

0
Digg me

英文原文地址:http://manual.mantisbt.org/manual.installation.upgrading.php 升级说明文件 本页包含了正式发布版本1.0.0之后的有效升级方法描述 在升级之前总是备份代码,数据和配置文件 这里包含了你的mantis目录,你的附件以及你的数据库 除非你非常熟悉PHP,否则不推荐使用未正式发布的mantis版本(例如:CVS版本)。这些版本未经通用测试。并且从这些中间版本不能成为一个容易的获得下一个版本的升级通道. 最好的办法是为每一个版本创建一个新的目录。这样保证了所有的文件完整并且存在降低安装工作的路径。如果你需要,通常为小版本升 级(例如:0.17.3 到 0.17.5版本),你可以拷贝到旧的代码中去。你也许想要备份你当前的config_inc.php和你也许已经完成的任何定制的custom_strings_inc.php,custom_constants_inc.php和custom_functions_inc.php 注意:默认的配置文件名为config_defaults_inc.php能在mantis主文件夹被找到。你可以通过增加config_inc.php而不考虑这些配置,config_inc.php文件只是包含你想要从默认配置修改的配置变量。 Mantis 首先获取默认值,然后获取站点特定值。这种方式你可以获得新的全局变量但不需要不断的重置你的核心设置。这是让默认文件不受干扰 的最好方式,推荐花几分钟建立一个config_inc.php小文件。Email数据,数据库设置数据,路径数据以及任何不同于默认的设置都放在这里。 升级 1.在升级之前从mantis系统中注销 2. 向用户表明系统在一个脱机方式下进行 cp mantis_offline.php.sample mantis_offline.php [拷贝文件] 3.首先,使用任何你喜欢的方式(ftp,scp等等)转移文件至你的web服务器。为了下一个步骤需要telnet/ssh在你的服务器上 4.其次,untar/gunzip文件至你想放的目录。 通常的命令是(1步): tar zxvf <filename.tar.gz> 或者(2步): gunzip <filename.tar.gz> tar xvf <filename.tar> 注意到mantis源目录名字已经创建。这应是mantis正式版本的形式(如mantis-1.0.0rc1). Winzip, Stuffit和其他程序应能被进行解压操作。 5.拷贝配置文件(config_inc.php, custom_strings_inc.php, custom_constants_inc.php, and custom_functions_inc.php)至新的目录以保护你的设置。 6.下一步,我们将备份新的数据库文件。 如果你升级从1.0.0之前安装版本到1.0.0版本,登陆http://yoursite/mantis-release/admin/upgrade.php.这里能升级你的数据库至1.0.0版本。一旦你的数据库已经达到1.0.0版本,你可以使用如下所列的方法。 从你的web服务器,登陆http://yoursite/mantis-release/admin/install.php 这个网页将执行以下步骤: 为web服务器检查基本参数确认数据路类型和位置,以及数据库用户和密码。为了升级,管理员用户/密码需要提供。操作用户需要ALTER, SELECT, INSERT, and UPDATE权限。为了安装或是升级,INDEX, CREATE, DELETE, and DROP权限也是必需的。升级数据库和表。在系统上执行post安装检查7.你可以加载http://yoursite/mantis-release/admin/check.php页面确认你是否正确的设置 8.这时你也许想重命名为mantis目录,你可以使用mv命令来重命名一个目录(Windows 用户可用“ren”命令代替 或使用资源管理器实现) mv mantis mantis-old mv mantis-release mantis

Posted in 软件配置管理 | Tagged | Leave a comment

Mantis使用历程-安装

0
Digg me

在使用Mantis的过程中,有很多人就经常问及安装的事情,这很让我不解。我记得当初我第一次使用,安装的时候就是从网上down一篇文章,首先根据其安装步骤去操作,很顺利的就完成了。所以现在一直都不能理解有些人为什么老说安装不上,不过,通过他们的叙述,我认为是机子软件配置的原因,因为Mantis需要Mysql数据库,Apache或是IIS服务器,PHP环境的支持,因此,需要进行这些软件的配置之后才能进行Mantis的安装,但这已经不属于Mantis安装的问题了,需要监测支持软件环境的配置。而对于mantis的安装,则会有以下几个询问频率特别高的问题。 1、图形报表显示不出或是出现乱码问题。 解决方式: a.如果是1.0.0之前的版本,则需要修改代码,主要是修改一下几处地方: config文件 $g_default_language = 'chinese_simplified';  #将程序界面语言设为简体中文,chinese_traditional则为繁体中文。 $g_use_jpgraph = ON; # 使用图形报表 $g_jpgraph_path = './JPGraph/src/'; # JPGraph路径 graph_api.php文件,在core目录里面 由于前期版本对中文的支持很弱,需要自行加上代码,非常感谢前人的摸索。 在graph_api.php中每个“$graph->title->Set(…”后面根据当前的图表是柱图、线图还是饼图 分别加上下面代码: 对于柱图和线图, //Set the title and axis font if the default_language is set to chinese if (config_get('default_language') == 'chinese_simplified') { $graph->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->yaxis->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->xaxis->SetFont(FF_SIMSUN,FS_NORMAL); $graph->yaxis->SetFont(FF_SIMSUN,FS_NORMAL); } else if (config_get('default_language') == 'chinese_traditional') { $graph->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->yaxis->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->xaxis->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->xaxis->SetFont(FF_CHINESE,FS_NORMAL); $graph->yaxis->SetFont(FF_CHINESE,FS_NORMAL); }; 对于饼图 //Set the title and legend font if the default_language is set to chinese if (config_get('default_language') == 'chinese_simplified') { $graph->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->legend->SetFont(FF_SIMSUN,FS_NORMAL); } else if (config_get('default_language') == 'chinese_traditional') { $graph->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->legend->SetFont(FF_CHINESE,FS_NORMAL); }; b.1.0.0之后的版本,已经支持中文,在安装的时候可以在界面中选择自己习惯的语言,则在图形界面也不会出现乱码。 2.系统界面乱码问题。 主要体现数据库编码字符集类型和程序中使用不一问题,如果在mysql数据库中采用的是GB字符集,则用英文语言显示原有数据库的中文记录时也会出现乱码的现象。这种问题主要体现在mantis升级的时候。 3.邮件配置问题 从许多成功和失败的例子上看,邮件配置虽然简单,但是是否成功,和个人机子环境应该有一定关系。我测试过自己的邮件配置,各组件运行良好,可是邮件仍未正确发出。 在1.0版本以上的mantis系统已经包含了PHPmailer模块,只要配置config文件里的参数即可。 主要是以下参数: $g_smtp_host = 'smtp.mail.net'; # SMTP 服务器 $g_smtp_username = 'mailuser'; # 邮箱登录用户名 $g_smtp_password = 'mailpwd'; # 邮箱登录密码 $g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件 $g_phpMailer_path ='.\core\phpmailer'; # PHPMailer 的存放路径 $g_phpMailer_method = 2; # PHPMailer 以 SMTP 方式发送 Email 4.系统配置不当 Mantis属于开源的工具,所以其系统配置在1.0版本以上有完善的界面体现,之前的设置主要体现在config_inc.php和config_defaults_inc.php文件,这两个文件里面都是对于Mantis主要的配置项,再里面都能一一找到出处,其中config_inc.php则是存放一些主要的默认配置项。

Posted in 软件配置管理 | Tagged | Leave a comment

[转]Mantis 使用Gmail 作为Mail server的配置

0
Digg me

今天又重新装Mantis了,不过这回使用了新的邮件地址作为mail host,最后采用了Gmail 使用常规配置,结果发现在页面看不出来错误,但是无法收到邮件。经过检查之后,发现邮件根本就没有发出去,存在问题。查了mantisbt bug 库,终于发现了这个问题,原来Gmail使用SSL,所以邮件配置也需要做一些适当的调整。 $g_phpMailer_method = 2;$g_smtp_host = 'ssl://smtp.gmail.com:465';$g_smtp_username = 'youmail@gmail.com';$g_smtp_password = 'youpassword'; 按照以上的配置做好之后,还需要修改你的php.ini文件,将php_openssl的extension前面的分号去掉,然后还需要下载最新的class.phpmailer.php文件覆盖原来的文件. Download link hereunder: http://www.mantisbt.org/bugs/view.php?id=8369 After  finished those steps, you should restart the apache service . Congratulation, You can use the email function via Gmail.   http://crystaliris.bokee.com/6707821.html

Posted in 软件配置管理 | Tagged | Leave a comment

[转载]vss密码破解

0
Digg me

今天一个同事来找我,说VSS的ADMIN口令给忘记了。项目组的源代码管理不了。我拿VSS的程序反汇编一看,天啊,VSS的认证过程莫道不消魂真是老土,当然对于具有本地管理员权限的人只需要覆盖掉dateum.dat文件就可以更改口令。而且VSS本身是靠文件共享的,安全性极差,不过如果不知道其口令,其文件的组织还是比较麻烦的,如果知道了口令的话,就容易处理的多。所以我这篇帖子都不好意思当文章提交的,其实这篇文章重点不是讲如何获取VSS的口令,而是讲一下算法破解的思路。

VSS的口令认证过程是这样的,从DATE目录下的UM文件读取口令加密字串,而这个文件是任何可以共享VSS目录的人都可以看见的,一般而言这个目录都会设置比较低级别的共享。VSS的加密口令实际上是一个2位的散列:格式如下:
55 55 FF D2 41 64 6D 69-6E 00 00 00 00 00 00 00   UU..Admin.......
00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
00 00 00 00 1A 69 00 00-A8 01 00 00 00 00 00 00   .....i..........
00 00 00 00 00 00 00 00-00 00 00 00 38 00 00 00   ............8...
55 55 90 80 47 75 65 73-74 00 00 00 00 00 00 00   UU..Guest.......
00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
00 00 00 00 55 69 00 00-3C 02 00 00 00 00 00 00   ....Ui..<.......
00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
其中1A 69就是ADMIN的散列
而  55 69就是GUEST的散列

跟踪一下VSS的算法可以得出如下的加密算法,另外在加密之前,串入的口令会先转化成大写格式的。

void envsspasswd(char * passwd,char * enpasswd,int len)
{
const char incstr[15]="BrianDavidHarry";
char passwd1[200];
int i;
WORD a;
WORD b;
if(len>15)
return 0;
memcpy(passwd1,passwd,len);
memcpy(passwd1+len,incstr,15-len);
passwd1[15]=0;
len = 15;
b = 0;
a = 0;
for(i=0;i<LEN;I++)
{
a =  passwd1[i];
a = a ^ 0x96;
a = a*(i+1);
b += a;
}
printf("%02x",b);
}

OK,其实我们讲到这里,关于VSS的口令破解就一点意义也没有了,而是在一个思路上,从上面可以看到,其口令只具2位长度,因此肯定存在很多散列一致的口令,因此无需真正找到口令,只需要找到一个具备同样散列的口令就可以了。
当然,如果只是暴力跑的话,效果会比较差的,因为上面这个算法会导致相同位数的散列是比较靠近的,不同位数的散类差距比较大,如果不知道口令的位数,一位的穷局举的话效果并不会很理想。那么如何来确定密码的位数呢?实际根据上面的加密算法我们可以知道其密码散列递增的规律,下面的实现就是根据这个算法可以最优先的找到密码位数,然后在位数以内进行穷举的实现,使得计算的速度非常高:
关键点在于这句:
d = a - b;
if((d/num)>154 && (d/num)<250)
因为我们知道,x^80肯定是会大于128的,对于‘0’到‘Z’的可能口令组合,最小生成的都应该大于154。从而判断这个长度是否可能存在可能的解。

int devsspasswd(char enp[4],char * dnp)
{
const char incstr[15]="BrianDavidHarry";
int i;
int j;
int k;
long c1;
long c2;
long c4;
int c3;

WORD a;
WORD b;
WORD c;
WORD d;
WORD e;
int num;

a = hextoint(enp[2])*16*16*16+hextoint(enp[3])*16*16+hextoint(enp[0])*16+hextoint(enp[1]);
c3 = 'Z'-'0'+1;

for(i=0;i<15;i++)
{
dnp[i]=0;
b =0;
for(j=0;j<15-i;j++)
{
c = incstr[j];
c = c ^ 0x96;
c = c*(j+1+i);
b += c;
}
if(i==0 && b==a)
{
printf("password is nulln");
return 0;
}
d = a - b;
num = 0;
c2 = 1;
for(j=0;j<I;J++)
{
num = num+j+1;
c2 = c3*c2;
}
if(num>0)
{
c1 = 0;
if((d/num)>154 && (d/num)<250)
{
memset(dnp,'0',i);
Sleep(100);
do{
c4 = 1;
for(j=1;j<I-1;J++)
{
c4 = c4 * c3;
if(c1%c4==0)
dnp[j]='0';
else
{
dnp[j]++;
break;
}
}
b = 0;
for(k=1;k<I;K++)
{
c = dnp[k];
c = c ^ 0x96;
c = c*(k+1);
b += c;
}
e=d-b;

if((e^0x96)>='0' && (e^0x96)<='Z')
{
dnp[0]=(e^0x96);
printf("%sn",dnp);
return i;
}
c1++;
}while(c1<C2);????????????????
}
}
}
return 0;
}

当然,这个算法对VSS口令破解本身意义不大,拥有um.dat写权限的直接拷贝别人的知道口令的um.dat文件覆盖就可以,或者修改其中的散列,不知道的呢,也可以直接通过共享拷贝数据文件再使用um.dat覆盖或者在vss程序中饶过口令达到图破权限,写这点东西是重点强调一下破解算法的思路

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=45114

Posted in 软件配置管理 | Tagged , | Leave a comment