云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          最近做一個項目的時候,需要將數(shù)據(jù)庫從原先的SqlServer遷移到Oracle中。
          需要遷移的不僅是數(shù)據(jù)還需要將表結構、存儲過程、視圖、觸發(fā)器.... 所有東西都遷過去。
          于是在網上搜索了一下,很快找到了www.swissql.com中提供了這樣的工具。
          但是能下載的是30天有效。只能轉換2000行Sql文本的試用版。
          自己動手、豐衣足食。開始破解:
          1. 安裝SwisSql
          2. 把SwisSql的Lib目錄下的SwisSql.jar, TSQL2PLSP.jar, TSQL2PLSPGUI.jar文件都反編譯了.
          我在NetBeans中新建了一個項目(因為看到, AbsoluteLayout.jar中有com.netbeans.的內容, 所以去下載安裝了NetBeans,
          不過根據(jù)其后的進程來看, 選用哪種JavaIDE并不重要)
          3. 查看運行程序是 java -Dsun.java2d.noddraw=true
          -Djava.util.logging.config.file=%TSQL2PLSPHome%\conf\internal_conf\logging.properties
          -cp %CLASSPATH% com.vembu.project.gui.PL2JSQLForm
          4. 看了一會PL2JSQLForm, 發(fā)現(xiàn)明顯是經過混淆的, 比較復雜, 于是放棄了從頭了解的念頭, 專注于注冊號生成的破解.
          5. 運行SwisSql
          6. 點擊注冊. 出來一個注冊號輸入框.
          7. 選擇對話框中提示字符串"Trial User"在項目中全字符, 大小寫匹配搜索, 很快在中com.vembu.project.gui.a.java中找到. 而且整個項目中只有一個.
          8. 在a.java中搜索一下"OK"字符串, 發(fā)現(xiàn)OK按鈕的事件處理函數(shù)是_mthnew(actionevent); 在IDE中跳轉到_mthnew的定義
          9. 發(fā)現(xiàn)此函數(shù)的核心是
          ??????? if(!c._mthif(s1))
          ??????? {
          ??????????? D.setText("Invalid key !!! Please ensure that the key is applied in the same machine as the one in which the RegInfo file was generated.");
          ??????????? u.setSize(230, 125);
          ??????????? u.setLocation(400, 300);
          ??????????? u.show();
          ??????????? return;
          ??????? }
          再次想跳轉到_mthif的定義, 結果IDE無法正確跳轉.
          10. 沒關系, 使用搜索大法. 在IDE中搜索 boolean _mthif(String? , 搜索結果不多,
          第一眼就看到了com.vembu.license.c.java, 再到a.java包頭上一看果然有import com.vembu.license.c;
          11. OK, 進入com.vembu.license.c.java, 找到_mthif(String)函數(shù)
          12. b b1 = new b();? String[] as = b1._mthif();
          13. 仔細看一下b, 構造函數(shù)很長, 其實實際內容不多, 主要是取 MAC地址, 本機機器名, 本機IP地址. 其中_mthif()就返回MAC地址數(shù)組(因為可能有多個網卡, 所有是數(shù)組). b1._mthnew()返回機器名.
          14. 將輸入的注冊號作為參數(shù)用_mthtry算出一個整數(shù).
          15. 將MAC地址, 機器名和 "Registered User for Multi File Select" 拼成一個字符串
          16. 將第15步的字符串和14步算出的整數(shù)作為參數(shù) 用_mthdo算出一個新的字符串,
          如果此字符串與注冊號相同, 則此注冊號是正確的.
          17. _mthtry函數(shù)和_mthdo函數(shù)都是頗復雜的函數(shù).
          18. 想一個辦法, 首先找一個8位的整數(shù)(作為14步生成的結果), 由于MAC地址和機器名是定的.
          所以可以調用第16步_mthdo函數(shù). 算出一個注冊號, 再用這個注冊號作為參數(shù)調用_mthtry,
          去算那個整數(shù), 如果這個整數(shù)與初始整數(shù)相等, 則此注冊號有效.
          19. 結果很快出來一堆的注冊號, 在SwisSql中一用. OK了. 注冊成功.

          下面貼出我生成注冊號的源代碼.
          /*
          ?*?LicenseValidate.java
          ?*
          ?*?Created?on?2006年3月30日,?下午1:39
          ?*
          ?*?To?change?this?template,?choose?Tools?|?Template?Manager
          ?*?and?open?the?template?in?the?editor.
          ?
          */


          package?com.asiatom.dbmigrate;

          /**
          ?*
          ?*?
          @author?ngCheng
          ?
          */

          public?class?LicenseValidate?{
          ????
          ????
          private?static?final?char?b[]?=?{
          ????????
          'H',?'Z',?'T',?'R',?'B',?'L',?'Q',?'X'
          ????}
          ;
          ????
          private?static?final?char?_fldbyte[]?=?{'U',?'S',?'C',?'M',?'P',?'V',?'W',?'K',?'N'};
          ????
          public?static?final?char?_flddo[]?=?{
          ????????
          'A',?'B',?'C',?'D',?'E',?'F',?'G',?'H',?'I',?'J',?
          ????????
          'K',?'L',?'M',?'N',?'O',?'P',?'Q',?'R',?'S',?'T',?
          ????????
          'U',?'V',?'W',?'X',?'Y',?'Z',?'a',?'b',?'c',?'d',?
          ????????
          'e',?'f',?'g',?'h',?'i',?'j',?'k',?'l',?'m',?'n',?
          ????????
          'o',?'p',?'q',?'r',?'s',?'t',?'u',?'v',?'w',?'x',?
          ????????
          'y',?'z',?'A',?'B',?'C',?'D',?'E',?'F',?'G',?'H',?
          ????????
          'I',?'J',?'K',?'L'
          ????}
          ;

          ????
          /**?Creates?a?new?instance?of?LicenseValidate?*/
          ????
          public?LicenseValidate()?{
          ????}

          ????
          ????
          public?static?String?LicenseOK(String?s)
          ????
          {
          ????????String?as[];
          ????????
          int?i;
          ????????s?
          =?s.replaceAll("?",?"");
          ????????String?MacAddr?
          =?"00-0A-EB-9B-80-1B";
          ????????String?ClientName?
          =?"arthur";
          ????????i?
          =?0;

          ????????String?s1?
          =?MacAddr?+?ClientName?+?"Registered?User?for?Multi?File?Select";
          ????????
          int?j?=?_mthtry(s.toUpperCase());
          ????????String?s2?
          =?_mthdo(s1,?j).toUpperCase();
          ????????
          //?System.out.println("s2:?["?+?s2?+?"]");
          ????????if(s2.equals(s.toUpperCase()))
          ????????????
          return?"OK";
          ????????
          //System.out.println("not");??
          ????????return?s2;
          ????}

          ????
          ????
          public?static?int?_mthtry(String?s)
          ????
          {
          ????????String?s2?
          =?"";
          ????????String?s3?
          =??"HZTRBLQX";
          ????????String?s4?
          =??"USCMPVWKN";
          ????????String?s1?
          =?s.substring(1,?3)?+?s.substring(6,?8)?+?s.substring(9,?10)?+?s.substring(11,?13)?+?s.substring(14,?15);
          ????????
          for(int?j?=?0;?j?<?s1.length();?j++)
          ????????
          {
          ????????????
          if(s3.indexOf(s1.charAt(j)?+?"")?!=?-1)
          ????????????
          {
          ????????????????s2?
          =?s2?+?'9';
          ????????????????
          continue;
          ????????????}

          ????????????
          for(int?k?=?0;?k?<?_fldbyte.length;?k++)
          ????????????????
          if(s1.charAt(j)?==?_fldbyte[k])
          ????????????????????s2?
          =?s2?+?k;

          ????????}


          ????????
          int?i?=?0x5f5e0ff?-?Integer.parseInt(s2);
          ????????
          return?i;
          ????}


          ????
          private?static?String?_mthdo(String?s,?int?i)
          ????
          {
          ????????
          int?j?=?0;
          ????????s?
          =?s.toUpperCase();
          ????????String?s1?
          =?new?String();
          ????????String?s2?
          =?new?String();
          ????????String?s3?
          =?new?String();
          ????????
          for(int?k?=?0;?k?<?s.length();?k++)
          ????????????
          if(!Character.isWhitespace(s.charAt(k)))
          ????????????????j?
          ^=?s.charAt(k);

          ????????j?
          ^=?j?<<?6;
          ????????
          int?l?=?i?*?3?+?3214;
          ????????
          int?_fldnew?=?_mthif(l);
          ????????s1?
          =?(j?^?_fldnew)?+?"";
          ????????s1?
          =?_mthbyte(s1).toUpperCase();
          ????????s2?
          =?a(i).toUpperCase();
          ????????s3?
          =?s1.substring(0,?1)?+?s2.substring(0,?2)?+?s1.substring(1,?4)?+?s2.substring(2,?4);
          ????????s3?
          =?s3?+?s1.substring(4,?5)?+?s2.substring(4,?5)?+?s1.substring(5,?6)?+?s2.substring(5,?6)?+?s2.substring(6,?7)?+?s1.substring(6,?7)?+?s2.substring(7,?8)?+?s1.substring(7,?8);
          ????????String?s4?
          =?s3;
          ????????
          return?s4;
          ????}


          ????
          public?static?int?_mthif(int?i)
          ????
          {
          ????????
          int?j?=?0xb524b;
          ????????
          boolean?flag?=?false;
          ????????
          int?ai[]?=?{
          ????????????
          19,?29,?23,?59,?53,?23,?31,?37,?41,?47,?
          ????????????
          3,?2,?5,?7,?11,?13
          ????????}
          ;
          ????????String?s?
          =?"";
          ????????j?
          =?i;
          ????????
          for(int?k?=?0;?k?<?16;?k++)
          ????????
          {
          ????????????String?s1?
          =?j?+?"";
          ????????????
          if(s1.length()?==?6)
          ????????????????
          break;
          ????????????
          if(s1.length()?<?6)
          ????????????
          {
          ????????????????j?
          *=?ai[k];
          ????????????????
          continue;
          ????????????}

          ????????????
          if(s1.length()?>?7)
          ????????????
          {
          ????????????????j?
          /=?100;
          ????????????????
          continue;
          ????????????}

          ????????????
          if(s1.length()?>?6)
          ????????????????j?
          /=?10;
          ????????}


          ????????
          return?j;
          ????}


          ????
          public?static?String?_mthbyte(String?s)
          ????
          {
          ????????
          return?a(s.getBytes());
          ????}


          ????
          public?static?String?a(byte?abyte0[])
          ????
          {
          ????????
          char?ac[]?=?new?char[((abyte0.length?-?1)?/?3?+?1)?*?4];
          ????????
          int?k1?=?0;
          ????????
          int?l1;
          ????????
          for(l1?=?0;?l1?+?3?<=?abyte0.length;)
          ????????
          {
          ????????????
          int?i?=?(abyte0[l1++]?&?0xff)?<<?16;
          ????????????i?
          |=?(abyte0[l1++]?&?0xff)?<<?8;
          ????????????i?
          |=?(abyte0[l1++]?&?0xff)?<<?0;
          ????????????
          int?l?=?(i?&?0xfc0000)?>>?18;
          ????????????ac[k1
          ++]?=?_flddo[l];
          ????????????l?
          =?(i?&?0x3f000)?>>?12;
          ????????????ac[k1
          ++]?=?_flddo[l];
          ????????????l?
          =?(i?&?0xfc0)?>>?6;
          ????????????ac[k1
          ++]?=?_flddo[l];
          ????????????l?
          =?i?&?0x3f;
          ????????????ac[k1
          ++]?=?_flddo[l];
          ????????}


          ????????
          if(abyte0.length?-?l1?==?2)
          ????????
          {
          ????????????
          int?j?=?(abyte0[l1]?&?0xff)?<<?16;
          ????????????j?
          |=?(abyte0[l1?+?1]?&?0xff)?<<?8;
          ????????????
          int?i1?=?(j?&?0xfc0000)?>>?18;
          ????????????ac[k1
          ++]?=?_flddo[i1];
          ????????????i1?
          =?(j?&?0x3f000)?>>?12;
          ????????????ac[k1
          ++]?=?_flddo[i1];
          ????????????i1?
          =?(j?&?0xfc0)?>>?6;
          ????????????ac[k1
          ++]?=?_flddo[i1];
          ????????????ac[k1
          ++]?=?'=';
          ????????}
          ?else
          ????????
          if(abyte0.length?-?l1?==?1)
          ????????
          {
          ????????????
          int?k?=?(abyte0[l1]?&?0xff)?<<?16;
          ????????????
          int?j1?=?(k?&?0xfc0000)?>>?18;
          ????????????ac[k1
          ++]?=?_flddo[j1];
          ????????????j1?
          =?(k?&?0x3f000)?>>?12;
          ????????????ac[k1
          ++]?=?_flddo[j1];
          ????????????ac[k1
          ++]?=?'*';
          ????????????ac[k1
          ++]?=?'*';
          ????????}

          ????????
          return?new?String(ac);
          ????}



          ????
          public?static?String?a(int?i)
          ????
          {
          ????????String?s1?
          =?"";
          ????????
          int?j?=?0x5f5e0ff?-?i;
          ????????String?s;
          ????????
          for(s?=?j?+?"";?s.length()?<?8;?s?=?"0"?+?s);
          ????????
          for(int?k2?=?0;?k2?<?s.length();?k2++)
          ????????????
          switch(k2)
          ????????????
          {
          ????????????
          default:
          ????????????????
          break;

          ????????????
          case?0:?//?'\0'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?k?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[k];
          ????????????????}

          ????????????????
          break;

          ????????????
          case?1:?//?'\001'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?l?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[l];
          ????????????????}

          ????????????????
          break;

          ????????????
          case?2:?//?'\002'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?i1?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[i1];
          ????????????????}

          ????????????????
          break;

          ????????????
          case?3:?//?'\003'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?j1?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[j1];
          ????????????????}

          ????????????????
          break;

          ????????????
          case?4:?//?'\004'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?k1?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[k1];
          ????????????????}

          ????????????????
          break;

          ????????????
          case?5:?//?'\005'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?l1?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[l1];
          ????????????????}

          ????????????????
          break;

          ????????????
          case?6:?//?'\006'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?i2?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[i2];
          ????????????????}

          ????????????????
          break;

          ????????????
          case?7:?//?'\007'
          ????????????????if(s.charAt(k2)?==?'9')
          ????????????????
          {
          ????????????????????s1?
          =?s1?+?b[k2];
          ????????????????}
          ?else
          ????????????????
          {
          ????????????????????
          int?j2?=?Integer.parseInt(s.charAt(k2)?+?"");
          ????????????????????s1?
          =?s1?+?_fldbyte[j2];
          ????????????????}

          ????????????????
          break;
          ????????????}


          ????????
          return?s1;
          ????}

          ????
          ????
          private?static?String?incString(String?s)?{
          ????????String?res?
          =?"";
          ????????s?
          =?s.toUpperCase();
          ????????
          boolean?flag?=?false;
          ????????
          int?i;
          ????????
          for?(i?=?s.length()?-?1;?i?>=?0;?i?--?)?{
          ????????????
          char?ch?=?s.charAt(i);
          ????????????
          if?(?ch?==?'Z')?{?
          ????????????????flag?
          =?true;
          ????????????????res?
          =?"A"?+?res?;
          ????????????}
          ?else?{
          ????????????????res?
          =?(char)(ch?+?1)?+?res;
          ????????????????
          break;
          ????????????}

          ????????}

          ????????res?
          =?s.subSequence(0,?i)?+?res;
          ????????
          return?res;
          ????}

          ????

          ????
          public?static?void?main(String?args[])?{
          ????????
          //38238466
          ????????
          ????????
          //Licen

          ????????String?sMacAddr?
          =?"xx-xx-xx-xx-xx-xx";
          ????????String?sMachineName?
          =?"machinename";
          ????????String?s1?
          =?sMacAddr?+?sMachineName?+?"Registered?User?for?Multi?File?Select";
          ????????
          for?(?int?i?=?38200000;?i?<?38238466;?i?++?)?{
          ????????????String?s2?
          =?_mthdo(s1,?i);
          ????????????
          int?mid?=?_mthtry(s2);
          ????????????
          if?(?mid?==?i?)?{
          ????????????????System.out.println(
          "got:?"?+?s2);
          ????????????}

          ????????}

          ????}

          }





          評論

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-04-01 23:10 by sdlcc
          可以直接修改class文件,讓c._mthif函數(shù)返回true就可以了

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-04-03 09:15 by usherlight
          不是這么簡單的, 因為反編譯出來的程序中出現(xiàn)了無數(shù)的錯誤.
          根本無法編譯通過.
          所以采用了靜態(tài)分析法.

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-04-05 15:54 by CRI
          搞不出來,方便的話給個注冊碼出來試試

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-04-06 16:42 by usherlight
          注冊碼是和安裝SwisSql機器的機器名和Mac地址有關的.
          我無法給出一個通用的注冊碼.

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-07-11 11:01 by estc
          String sMacAddr = "00-0F-EA-06-67-34";
          String sMachineName = "pc174";
          String s1 = sMacAddr + sMachineName + "estc";
          生成很多的類似“MWSTIYKWNSZVMIWY”的碼
          我在 username 中輸入 estc,
          在下面的 key 中 依次輸入 MWST-IYKW-NSZV-MIWY,提示無效的code!怎么回事?多謝指教!
          msn:estc.wu@hotmail.com

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-10-24 10:27 by QXD
          通過提供的java ,產生了一堆key。
          但是通過嘗試,較難獲得驗證通過!
          請版主指教,謝謝!!!
          我的MSN :quexd@hotmail.com

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-10-24 15:15 by usherlight
          你的SwisSql的版本是3.0嗎?

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-10-26 09:35 by QXD
          我用的是3.0
          請在MSN加我,ok?
          我上班白天都在線。
          謝謝!??! 

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-12-14 00:35 by rui
          LZ的方法可以用。

          b[],_fldbyte[]和int l = i * 3 + 3214;中的3和3214以及各方法要相應替換。

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-12-16 20:44 by usherlight
          @rui

          能說得清楚點嗎? 我沒有看明白你的意思.

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-12-22 11:03 by 在下
          樓主大哥

          不知道您給的這段代碼不知道是在那里運行

          方便的話,直接打包做成一個執(zhí)行文件,運行就產生注冊碼

          好像這樣的東西叫做注冊機

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-12-23 02:47 by 云自無心水自閑
          @在下

          先將所有的代碼都復制到一個文件中,LicenseValidate.java,注意路徑。
          然后 javac LicenseValidate.java,生成 LicenseValidate.class
          然后 java LicenseValidate就可以運行了。

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-12-23 02:51 by 云自無心水自閑
          @estc

          String s1 = sMacAddr + sMachineName + "Registered User for Multi File Select";
          這個語句不能改成
          String s1 = sMacAddr + sMachineName + "estc";
          那個字符串是不能動的,否則生成的驗證碼就不正確了。
          不知道Qxd是不是也是同樣的問題。

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2006-12-27 18:42 by xiaoming
          你好請問一下這段話是什么意思

          LZ的方法可以用。

          b[],_fldbyte[]和int l = i * 3 + 3214;中的3和3214以及各方法要相應替換。

          謝謝了

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2007-01-27 16:34 by 龍芯二號
          謝謝版主的文章!

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2007-10-14 15:55 by 達到
          可以用了

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記[未登錄]  回復  更多評論   

          2007-11-20 11:03 by SUNNY
          很好,完全沒問題,我用的3.2 SWISSQL的都能破解

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2008-03-11 11:02 by
          樓主能給發(fā)破解版的嗎

          lbsfans(at)gmail.com

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2009-06-14 15:14 by wsl
          樓主我沒搞定,按你說的:

          先將所有的代碼都復制到一個文件中,LicenseValidate.java,注意路徑。
          然后 javac LicenseValidate.java,生成 LicenseValidate.class
          然后 java LicenseValidate就可以運行了。

          運行時有錯誤,這幾個文件要放在哪執(zhí)行呀?我不懂JAVA。。。
          明白人幫解釋一下吧,謝謝我急用呀!

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2010-05-26 14:04 by sch
          那請問注冊時 username 輸入什么呢?

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記  回復  更多評論   

          2013-05-08 15:41 by 李新
          可以把SwisSql Oracle to Sql Server3.0 軟件給我發(fā)一份嗎? 謝謝!

          QQ:450519363
          mail: 450519363@qq.com

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記[未登錄]  回復  更多評論   

          2016-04-18 12:16 by s
          可以使用

          # re: SwisSql Oracle to Sql Server3.0(一個從Oracle遷移到SqlServer數(shù)據(jù)庫工具)的破解手記[未登錄]  回復  更多評論   

          2016-04-18 12:17 by s
          把MAC地址和機器名換成自己的,運行程序就可以了
          String sMacAddr = "xx-xx-xx-xx-xx-xx";
          String sMachineName = "machinename";
          主站蜘蛛池模板: 永德县| 湘西| 九龙坡区| 永寿县| 贵德县| 那曲县| 永康市| 巨野县| 隆林| 铜山县| 兴宁市| 普兰县| 张北县| 新巴尔虎左旗| 工布江达县| 廉江市| 阳信县| 保靖县| 剑川县| 巨野县| 南京市| 古交市| 西充县| 桃源县| 萍乡市| 嘉峪关市| 湄潭县| 富阳市| 罗平县| 平遥县| 平原县| 红原县| 安图县| 济源市| 米脂县| 民丰县| 集贤县| 浮梁县| 阜南县| 西峡县| 铅山县|