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

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

          Info Power 是個(gè)很棒的VCL,特別是RecordViewDlg控件很有特點(diǎn),在添加和編輯數(shù)據(jù)時(shí)很有用,但在打開(kāi)EnterToTab參數(shù)時(shí)不能跳到確認(rèn)鍵上,必須用鼠標(biāo)操作。還好有它的源碼,稍微修改一下就可以了:
          //--------------------
          //? 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 小螞蟻 閱讀(179) | 評(píng)論 (0)編輯 收藏

          X32里的系統(tǒng)越來(lái)越臃腫,備份好數(shù)據(jù)我決定重裝系統(tǒng),本來(lái)以為用它自帶的"一鍵恢復(fù)"會(huì)很方便的解決問(wèn)題,那知道折騰了兩個(gè)小時(shí),中途居然提示要插交流電源才能繼續(xù)安裝,害得我回家拿,用安裝盤安裝也用不了這么長(zhǎng)時(shí)間啊,下回學(xué)乖點(diǎn)用GHOST.

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

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

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

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

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

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

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

          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發(fā)現(xiàn)文件改好了。

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

          僅列出標(biāo)題
          共5頁(yè): 上一頁(yè) 1 2 3 4 5 
          主站蜘蛛池模板: 泰和县| 达尔| 诸城市| 黄浦区| 商河县| 盖州市| 门源| 石阡县| 彩票| 苏尼特右旗| 永仁县| 巴林右旗| 平和县| 浪卡子县| 通渭县| 苏尼特右旗| 宝山区| 卢龙县| 日照市| 南汇区| SHOW| 焉耆| 甘德县| 玛沁县| 凤阳县| 天门市| 枣阳市| 贡山| 黔东| 东源县| 临汾市| 平舆县| 中方县| 攀枝花市| 新安县| 察雅县| 视频| 翁牛特旗| 夏津县| 大余县| 沙洋县|