剛寫好的程序要用SSL通道來加密數據,為了實現方便通過加載stunnel來實現,程序開始前用CreateProcess打開stunnel,結束后PostMessage(WM_QUIT),但任務欄上該死的stunnel圖標卻要用鼠標晃一下才消失,沒辦法只好“幫”它一把:Shell_NotifyIcon,HWND參數可以用FindWindow找到,uID麻煩點,用調試工具攔截stunnel調用Shell_NotifyIcon的地址,uID=1。

          posted @ 2006-09-20 22:27 小螞蟻 閱讀(210) | 評論 (1)編輯 收藏

          Info Power 是個很棒的VCL,特別是RecordViewDlg控件很有特點,在添加和編輯數據時很有用,但在打開EnterToTab參數時不能跳到確認鍵上,必須用鼠標操作。還好有它的源碼,稍微修改一下就可以了:
          //--------------------
          //? wwrcdvw.pas
          //--------------------
          ......
          ????? RecordPanel:= TPanel.create(RecordViewForm);
          ????? with RecordPanel do begin
          ???????? parent:= RecordViewForm;
          ???????? Left := 0;
          ???????? Top := 41;
          ???????? Align := alClient;
          ???????? BevelInner := bvLowered;
          ???????? BorderWidth := 4;
          ???????? Caption := '';
          ???????? TabOrder := 0;?? //I hack
          ???????? Name:= 'RecordPanel';
          ???????? visible:= True;
          ????? end;


          ????? if (rvokShowOKCancel in OKCancelOptions) then begin
          ???????? ButtonPanel:= TPanel.create(RecordViewForm);
          ???????? with ButtonPanel do begin
          ??????????? parent:= RecordViewForm;
          ??????????? Left := 0;
          ??????????? Top := 0;
          ??????????? Align := alBottom;
          ??????????? Name:= 'UserPanel';
          ??????????? Caption := '';
          ??????????? TabOrder := 1;? //I?hack
          ??????????? visible:= True;

          ??????????? OkBtn:= TButton(wwCreateCommonButton(RecordViewForm, bkOK));
          ??????????? OKBtn.Default:= not (rvoEnterToTab in Options);
          ??????????? OkBtn.parent:= ButtonPanel;
          ??????????? OKBtn.visible:= True;
          ??????????? OKBtn.OnClick := OKBtnClick;
          ??????????? OKBtn.TabStop:= True;? //I hack

          ??????????? CancelBtn:= TButton(wwCreateCommonButton(RecordViewForm, bkCancel));
          ??????????? CancelBtn.Parent := ButtonPanel;
          ??????????? CancelBtn.visible:= True;
          ??????????? CancelBtn.OnClick := CancelBtnClick;
          ??????????? CancelBtn.TabStop:= True; //I hack
          ??????????? CancelBtn.Cancel:= False; { Allows Escape to be processed }

          ??????????? bottomPad := 1 + GetSystemMetrics(SM_CYDLGFRAME)*2 +8 +1;? {Win95 fix }
          ??????????? Height := OkBtn.Top + OkBtn.height + BottomPad;

          ??????????? OkBtn.Top := GetSystemMetrics(SM_CYDLGFRAME) + 5;
          ??????????? CancelBtn.Top := GetSystemMetrics(SM_CYDLGFRAME) +5;
          ???????? end;
          ????? end;

          ......

          posted @ 2006-09-20 10:46 小螞蟻 閱讀(175) | 評論 (0)編輯 收藏

          X32里的系統越來越臃腫,備份好數據我決定重裝系統,本來以為用它自帶的"一鍵恢復"會很方便的解決問題,那知道折騰了兩個小時,中途居然提示要插交流電源才能繼續安裝,害得我回家拿,用安裝盤安裝也用不了這么長時間啊,下回學乖點用GHOST.

          posted @ 2006-09-10 12:22 小螞蟻 閱讀(770) | 評論 (0)編輯 收藏

          想用我那臺FreeBSD服務器做個Live Audio Server,這樣我不在家的時候可以了解O寶的情況,用ffmpeg和ffserver沒有成功,客戶端打開的文件總是為空,用icecast2+darkice時darkice啟動出錯,icecast2+ice2可以正常用一下,但幾分鐘后居然把FB也弄死了,沒辦法只好設置cron每十分鐘用ffmpeg錄一節,再通過tomcat做個文件列表的jsp來用了。看來是機器太破,PII433+板載聲卡可能不合適做這事情。

          posted @ 2006-08-28 12:10 小螞蟻 閱讀(187) | 評論 (0)編輯 收藏

          Java寫桌面還真是麻煩,用swt還勉強,但如果純手工寫的話比在Windows下用WIN API還頭大,Eclipse的VEP又不是很好用,今天在網上轉悠時發現一個Eclipse的插件SWTDesigner,試了一下還可以,但是要收費的,以前沒怎么做過java的crack,于是一下來了興趣,看了下主要的代碼在License*里面,心想簡單,寫個程序利用他的class來crack,搞了半天老出錯,一大堆的依存class沒找到,只有另想辦法,最后在LicenseActivationKey里的buildLicenseText發現key的算法,改兩個字節可以把到期時間加上30年,從新CRC后可以得到Pro版的key,另外SerialNum也要寫程序生成一個.搞到半夜1點終于好了.

          posted @ 2006-08-28 01:33 小螞蟻 閱讀(561) | 評論 (2)編輯 收藏

          以前一直在win32匯編里打滾,對于修改一個exe文件是件很容易的事情,但到了java下發現想修改一個
          沒源碼的.class文件還真是個問題,上網看了一大堆資料,有ASM和Javassist可以做這事情,ASM看上去
          很專業,但看了文檔好象要在op code的級別下寫代碼,頭暈。Javassist簡單些,看完幾個sample心里基本
          有數了,隨手找來一個有日期限制的Taglib,關鍵的代碼猜都不用猜在License.class里,反編譯后:
          ??
          public static LicDate d()
          {??
          ? String s = Dec("^%$&^%&*%&");
          ? return new LicDate.newInstance(Dec("%&&(*(&$%%"), s);
          }

          s里放著用Dec解碼的日期,自己寫個小程序:

          import javassist.*;

          public class Crack {
          ?public static void main(String args[])
          ?{
          ??try
          ??{
          ??? ClassPool pool = ClassPool.getDefault();
          ??? pool.insertClassPath("./taglib");
          ??? CtClass License = pool.get("License");
          ???
          ??? CtMethod a = License.getDeclaredMethod("d");
          ??? a.insertBefore("{return LicDate.newInstance(\"MM-dd-yyyy HH:mm:ss\",\"21-30-2088 01:01:01\");}"
          ??? License.writeFile();
          ??}
          ??catch (Exception e)
          ??{
          ???e.printStackTrace();
          ??}
          ?}
          }

          反編譯新的License.class發現文件改好了。

          posted @ 2006-08-13 16:22 小螞蟻 閱讀(292) | 評論 (0)編輯 收藏

          僅列出標題
          共5頁: 上一頁 1 2 3 4 5 
          主站蜘蛛池模板: 乌鲁木齐市| 汾西县| 房产| 合肥市| 江津市| 乌拉特中旗| 定安县| 六安市| 柳州市| 甘谷县| 建瓯市| 阆中市| 乐至县| 涿鹿县| 三河市| 乐昌市| 镇康县| 城口县| 安多县| 德庆县| 十堰市| 蒙阴县| 泾源县| 平乐县| 安庆市| 吉木乃县| 永寿县| 高要市| 通辽市| 曲水县| 辽中县| 河间市| 广州市| 城步| 巴中市| 玉树县| 南宁市| 达孜县| 北川| 宣武区| 大冶市|