2012年5月7日 星期一

2012.05.07 EOS400D 最新破解整理(by EOSCARD.EXE)

準備動作

為了要安裝400plus第三方韌體到您的400D機器上,您必須準備CF讀卡機,直接利用USB連接線連接相機將無法完成破解的動作。


相機部分

以下的步驟(相機部分)在第一次安裝400D破解韌體時才需要執行一次,之後更新就不需要了。
  1. 相機充滿電,準備好讀卡機,建議使用Windows環境比較簡單。
  2. 更新最新版官方韌體 latest firmware (1.1.1) (已更新者可略過),把官方韌體放在CF卡根目錄下,然後到設定選單中選擇"更新韌體"。
  3. 清空CF卡,取出CF卡,下載 testfir.fir ,利用讀卡機把檔案放到CF卡中。
  4. 把CF插回相機,再執行一次更新韌體,選擇'testfir.fir', 更新後,螢幕會被清空,稍微等個兩分鐘之後,關電、拔電池。

每張CF卡都需要以下的操作

400plus或其他的第三方韌體,都需要通過在CF卡上安放破解韌體(Autoexec.bin)來達成破解與加強功能的目的。
  1. CF卡插入相機,然後把它格式化(每一張卡都需要這樣做)。然後,依照您使用的作業系統,分別對照以下的操作方式,再次推薦使用WINDOWS系統來完成以下的操作。
    • Windows: 下載執行 EOScard by pelican,執行後,勾選  EOS_DEVELOP 與 BOOTDISK 如這裡的畫面 here.
      Mac: 下載執行 zeno's MacBoot 自動工序程式.
    • Linux: 使用如下所寫的直接方式 或是 依照這裡所寫的方式 here (the second version).
    • 然後如果你想要直接操作你的CF卡,無論你使用的是 Linux、Mac 或是 Windows with cygwin or dd,你可以依照以下的指令來操作。(應該沒有人想要找自己麻煩吧...XD),注意,依照CF卡的容量,操作時得參數有些微的不同。
      • FAT12 / FAT16 (CF cards up to 2GB)
      •   dev=/dev/sdX1 # replace sdX1 with your CF device (first partition)
          echo EOS_DEVELOP | dd of="$dev" bs=1 seek=43 count=11
          echo BOOTDISK | dd of="$dev" bs=1 seek=64 count=8
      • FAT32 (CF cards 4GB or larger)
      •   dev=/dev/sdX1 # replace sdX1 with your CF device (first partition)
          echo EOS_DEVELOP | dd of="$dev" bs=1 seek=71 count=11
          echo BOOTDISK | dd of="$dev" bs=1 seek=92 count=8
      • exFAT:這個格示不支援,因為磁區的檢核碼必須被計算與回寫,建議改用以上的方法。
  1. 到這裡下載最新的韌體檔案 latest autoexec.bin, 解開之後複製到已經通過以上處理的CF卡上.
  2. 如果想要獲得多國語言的支援,你必須把languages.ini也一併放上
  3. 恭喜你,你應該完成破解了,把做好的CF卡插回像機及可!!
在相機開機時,藍燈閃爍一下的話,就代表破解是成功的

如何更新 400plus

置換CF卡上的 autoexec.bin 與languages.ini 即可。

如何移除 400plus

相機 所作的操作(第一步驟),例如韌體更新、安裝testfir等等是無法回復的。經過第一步驟對相機的處理後,每次像機開機,他都會嘗試到CF卡上找Autoexec.bin來執行,所以移除400plus也只需要清除CF卡上的Autoexec.bin就可以。

不過,我想你應該不會想要移除他,太方便了。


注意事項

已經破解過的CF卡,絕對不可再由相機進行格式化,請以刪除功能下的刪除所有相片取代

PSTools 遠端管理工具介紹

PSTools 妙用無窮,只要知道遠端主機的帳號密碼,防火牆允許通過,就可以用文字介面方便的管理遠端主機。

有人會說,現在都什麼時代了,文字介面應該要淘汰才對,但是,若希望管理工作能更有效率以及減少出錯,把常用的動作寫成Batch or Script 是最明智的做法。

以下回到正題,開始介紹PSTools,檔案為zip壓縮檔,可以由這裡下載
解壓縮以後,有一堆exe檔案,這裡先依照實例來介紹,也因為只針對幾個簡單的應用來說明,所以標題我也不想寫"教學",用途太多了,入門之後的應用比較重要,我想。

Q:AP主機遠端登入連線數量已滿,可能有人卡著沒有登出,連RDP的Console也被佔用了,不想進機房,或是在外地沒辦法進機房怎麼辦?
A:假設在外地好了,連線回辦公室電腦,開始執行CMD
      切換到PSTools所在路徑,輸入 psexec \\server_ip -u username -p password cmd.exe
      驗證過帳號密碼後,就可以連線到遠端主機並且開啟遠端主機的cmd視窗,接下來只要查出那些人卡在主機上再把他們踢掉就好了

      遠端主機的cmd上輸入
      query session    
      可以查詢到目前主機的登入狀況,可以記下session id 或是 session name
      假設記下來的id是5號要踢掉
      接著輸入
      logoff 5

      如此,就能在不透過遠端桌面的情況下,把卡住的使用者清除掉了


Q:如何不用經過遠端桌面(RDP)快速新增主機上的使用者?
A:回到減少出錯的這個目標,當然也是為了早點做完,早點回家的理想,把使用者帳號維護的工作寫成Batch檔案是個好主意!
     
       使用者新增.bat
       @ECHO OFF
        SET /P SERVERIP=Server IP:
        SET /P SERVERUSERID=User ID:
        SET /P SERVERUSERPWD=User Pwd:
        SET /P CREATEUSERID=Create User ID:
        SET /P CREATEUSERPWD=Create User Pwd:

        PSEXEC \\%SERVERIP% -U %SERVERUSERID% -P %SERVERUSERPWD% NET USER %CREATEUSERID% %CREATEUSERPWD% /ADD /COMMENT:"Admin"
        PSEXEC \\%SERVERIP% -U %SERVERUSERID% -P %SERVERUSERPWD% NET LOCALGROUP Administrators %CREATEUSERID% /ADD & PAUSE




     

工具列表
工具 描述
PsExec 可讓您在任何使用者內容中執行處理序。
PsFile 顯示系統上以遠端方式開啟的檔案。
PsGetSid 顯示電腦或使用者的 Windows 安全性識別碼 (SID)。
PsInfo 列出有關 Windows 系統的資訊。
PsKill 根據名稱或處理序識別碼刪除處理序。
PsList 列出有關執行中處理序的詳細資訊。
PsLoggedOn 顯示所有本機登入使用者,以及遠端資源共用使用者。
PsLogList 傾印 Windows 事件記錄檔記錄。
PsPasswd 變更使用者帳戶密碼。
PsService 檢視和控制 Windows 服務。
PsShutdown 讓電腦關閉、重新啟動、休眠或暫止。
PsSuspend 暫止執行中的處理序。


延伸閱讀
PsTools 入門 Wes Miller

使用限制
執行工具的遠端系統上,必須啟用預設的系統管理網路共用 (admin$);
而且必須在遠端系統上開啟用於「檔案和印表機共用」的連接埠 (無論使用的是 Windows 防火牆、網際網路連線防火牆或其他防火牆產品)。
      








批次檔內容分享

範例一
每個月25日自動刪除資料庫前一個月的異地備份檔案,假設備份檔案的名稱為 DATABASENAME_DB_201203051300.BAK 這樣的格式

@ECHO OFF
:INIT
SET LOCALBAK=D:\BAK

:DATETIME
SET DATE_STR=%DATE%
SET YEAR_STR=%DATE_STR:~0,4%
SET MONTH_STR=%DATE_STR:~5,2%
SET DAY_STR=%DATE_STR:~8,2%

SET /A PRE_YEAR_STR=%YEAR_STR%-1
SET /A PRE_MONTH_STR=%MONTH_STR%-1

IF %PRE_MONTH_STR% EQU 0 (SET PRE_MONTH_STR=12& SET YEAR_STR=%PRE_YEAR_STR%)
IF %PRE_MONTH_STR% LSS 10 (SET PRE_MONTH_STR=0%PRE_MONTH_STR%)

:DELETE
DEL %LOCALBAK%\DATABASENAME_DB_%YEAR_STR%%PRE_MONTH_STR%*.BAK /Q

EXIT


範例二
自動複製備份目錄下的當日備份檔案到別台主機,假設是另外兩台主機。

@ECHO OFF
:INIT
SET SVIP01=123.14.20.245
SET SVIP02=123.14.20.246

SET USERNAM=ADMINISTRATOR
SET PW=BALABALABA
SET LOCALBAK=D:\DB_BAK
SET REMOTEBAK=RBAK

:DATETIME
SET DATE_STR=%DATE%
SET YEAR_STR=%DATE_STR:~0,4%
SET MONTH_STR=%DATE_STR:~5,2%
SET DAY_STR=%DATE_STR:~8,2%

:CONNECT
REM SV01
IF EXIST Z: NET USE Z: /DELETE
NET USE Z: \\%SVIP01%\D$ %PW% /USER:%USERNAM%
XCOPY %LOCALBAK%\DATABASE_DB_%YEAR_STR%%MONTH_STR%%DAY_STR%*.BAK Z:\%REMOTEBAK%\ /Y

REM SV02
IF EXIST Z: NET USE Z: /DELETE
NET USE Z: \\%SVIP02%\D$ %PW% /USER:%USERNAM%
XCOPY %LOCALBAK%\DATABASE_DB_%YEAR_STR%%MONTH_STR%%DAY_STR%*.BAK Z:\%REMOTEBAK%\ /Y


EXIT


範例三
自動重開機指定次數,範例為100次,Count.txt 內容為重開機次數 ,Log.txt 需自行命名建立。

@ECHO OFF

:ENVSET
REM 設定次數設定檔,預設100
SET COUNTFILENAME=C:\RESTART\COUNT.TXT
REM 設定記錄檔位置
SET LOGFILENAME=C:\RESTART\LOG.TXT
REM 設定倒數秒數
SET COUNTDOWN=50

FOR /F "TOKENS=1-4 DELIMS=/ " %%A IN ("%DATE%") DO (SET _MYDATE=%%A%%B%%C)
FOR /F "TOKENS=1-3 DELIMS=: " %%E IN ("%TIME%") DO (SET _MYDATE=%_MYDATE%-%%E%%F%%G)
FOR /F "TOKENS=1-2 DELIMS=. " %%H IN ("%_MYDATE%") DO (SET _MYDATE=%%H)

ECHO CURRENT DATE TIME IS : %_MYDATE%
ECHO COUNT FILE NAME: C:\RESTART\COUNT.TXT
ECHO LOG FILE NAME:   C:\RESTART\LOG.TXT
ECHO ----------------------------------------------------------------------

:JOBSTART
FOR /F %%I IN (%COUNTFILENAME%) DO SET /A RVAL=%%I-1
FOR /F %%I IN (%COUNTFILENAME%) DO ECHO RESTART REMAIN: %RVAL% TIMES & ECHO %_MYDATE% REMAIN %%I TIMES >> %LOGFILENAME%
FOR /F %%I IN (%COUNTFILENAME%) DO IF %RVAL% GTR 0 (CMD /C SHUTDOWN -R -T %COUNTDOWN%  & ECHO %RVAL% > %COUNTFILENAME% & GOTO COMPLETE)
GOTO FAIL

:FAIL
ECHO 指定次數重開機已完成。
PAUSE > NUL

:COMPLETE
ECHO %COUNTDOWN% 秒後重開機設定完成,請查閱LOG檔
ECHO.
ECHO 您可以輸入 "C" 取消本次重開機 (否則在時間到時重開)
PAUSE > NUL
SHUTDOWN /A

範例四
多台伺服器檔案快速更新,範例為三台,可自行擴充。

@ECHO OFF
REM ---------------------------DATE TIME--------------------------
SET DATE_STR=%DATE%
SET YEAR_STR=%DATE_STR:~0,4%
SET MONTH_STR=%DATE_STR:~5,2%
SET DAY_STR=%DATE_STR:~8,2%

REM -------------------------FILES LOCATION-----------------------
SET FILES_LOCAL=D:\FILES_LOCAL
SET LOGS_LOCAL=D:\UPDATELOGS
SET FILESREMOTE=WEBROOT\PROJECT

REM ---------------------------SERVER IP--------------------------
SET SV01=123.14.2.174
SET SV02=123.14.2.175
SET SV03=123.14.2.176

ECHO 檔案快速更新 
ECHO.
REM ---------------------------USER NAME--------------------------
SET /P USERNAM=USER NAME:
REM ---------------------------USER  PWD--------------------------
SET /P PW=PASSWORD:

:JOBSTART
REM ----------------------------INITIAL---------------------------
IF EXIST Z: NET USE Z: /DELETE

REM ------------------SV01 START----------------------------------------
NET USE Z: \\%SV01%\D$ %PW% /USER:%USERNAM%
XCOPY %FILES_LOCAL%\*.* Z:\%FILESREMOTE%\ /E /Y
ECHO UPDATE %SV01%: %YEAR_STR%.%MONTH_STR%.%DAY_STR% @ %TIME%
ECHO UPDATE %SV01%: %YEAR_STR%.%MONTH_STR%.%DAY_STR% @ %TIME% >> %LOGS_LOCAL%\UPDATELOG_%YEAR_STR%.%MONTH_STR%.%DAY_STR%.TXT
NET USE Z: /DELETE
PING 127.0.0.1 > NULL
PING 127.0.0.1 > NULL
REM ------------------SV01 END------------------------------------------

REM ------------------SV02 START----------------------------------------
NET USE Z: \\%SV02%\D$ %PW% /USER:%USERNAM%
XCOPY %FILES_LOCAL%\*.* Z:\%FILESREMOTE%\ /E /Y
ECHO UPDATE %SV02%: %YEAR_STR%.%MONTH_STR%.%DAY_STR% @ %TIME%
ECHO UPDATE %SV02%: %YEAR_STR%.%MONTH_STR%.%DAY_STR% @ %TIME% >> %LOGS_LOCAL%\UPDATELOG_%YEAR_STR%.%MONTH_STR%.%DAY_STR%.TXT
NET USE Z: /DELETE
PING 127.0.0.1 > NULL
PING 127.0.0.1 > NULL
REM ------------------SV02 END------------------------------------------

REM ------------------SV03 START----------------------------------------
NET USE Z: \\%SV03%\D$ %PW% /USER:%USERNAM%
XCOPY %FILES_LOCAL%\*.* Z:\%FILESREMOTE%\ /E /Y
ECHO UPDATE %SV03%: %YEAR_STR%.%MONTH_STR%.%DAY_STR% @ %TIME%
ECHO UPDATE %SV03%: %YEAR_STR%.%MONTH_STR%.%DAY_STR% @ %TIME% >> %LOGS_LOCAL%\UPDATELOG_%YEAR_STR%.%MONTH_STR%.%DAY_STR%.TXT
NET USE Z: /DELETE
PING 127.0.0.1 > NULL
PING 127.0.0.1 > NULL
REM ------------------SV03 END------------------------------------------

:QUIT
PAUSE





2012年5月1日 星期二

MS SQL Server sa 密碼忘記的另類解法

sa密碼忘記了怎麼辦,其實我也不知道怎麼辦,不過剛剛解決了這個問題,那就記錄一下好了。 

說一下目前的狀況好了,AP主機透過ODBC Port 1433 連接 SQL Server主機。採購了新的硬體主機,要做轉移,希望能知道sa的密碼為何。 偏偏AP主機設定檔裡的密碼是編碼過的,AP程式呼叫編譯過的DLL來解碼,並與SQL Server溝通,懶得去破解編碼,找找其他的辦法。

查了下資料,AP主機透過1433 連接到MS SQL Server的密碼字串應該是明碼,再仔細搜尋,挖,連對照表也有,這實在太不安全了。 既然M$留了條後路讓我走,沒理由不走,來抓個封包看看好了。


抓到的資料如下,這是AP主機與DB主機溝通時的節錄片段。 找到s.a這個字串之後 第一個 A5 的前一個 就是密碼的開頭了,以這次的範例圖來說,就是綠色區塊的E1,之後每個密碼的字元會以A5 隔開,整理得到16進位字串為:

E1 81 E1 81 E1 81 E1 81 E1 81

附上對照表

a 0xb3 b 0x83 c 0x93 d 0xe3 e 0xf3 f 0xc3 g 0xd3 h 0x23i 0x33 

j 0x03 k 0x13 l 0x63 m 0x73 n 0x43 o 0x53 p 0xa2q 0xb2 r 0x82 

s 0x92 t 0xe2 u 0xf2 v 0xc2 w 0xd2 x 0x22y 0x32 z 0x02 1 0xb6 

2 0x86 3 0x96 4 0xe6 5 0xf6 6 0xc67 0xd6 8 0x26 9 0x36 0 0xa6 

- 0x77 = 0x76 \ 0x60 [ 0x10 ] 0x70 ' 0xd7 , 0x67 . 0x47 / 0x57 

` 0xa3 ! 0xb7 @ 0xa1 # 0x97 $ 0xe7 % 0xf7 ^ 0x40 & 0xc7 * 0x07 

( 0x27) 0x37 A 0xb1 B 0x81 C 0x91 D 0xe1 E 0xf1 F 0xc1 G 0xd1

H 0x21 I 0x31 J 0x01 K 0x11 L 0x61 M 0x71 N 0x41 O 0x51P 0xa0 

Q 0xb0 R 0x80 S 0x90 T 0xe0 U 0xf0 V 0xc0 W 0xd0X 0x20 Y 0x30 

Z 0x00 _ 0x50 + 0x17 | 0x62 { 0x12 } 0x72: 0x06 " 0x87 < 0x66 

> 0x46 ? 0x56 ~ 0x42 ;不存在 

 所以上圖的密碼到底是什麼??












DBDBDBDBDB