做了一個給IceExt用的小程式(附原始碼)給大家,把RAW變成TXT,希望對大家有用。

看雪資料發表於2004-06-20

剛剛開始用IceExt,覺得很好用!

IceExt有個!dumpscreen功能,使得不用跑到softice外面執行loader來儲存螢幕資訊,反彙編程式碼等等,很方便!有點象TRW2000下的反彙編輸出到檔案的命令。

但是IceExt儲存的是RAW格式,雖然有個siwrender工具將其變成BMP格式,但是不能複製貼上字串,有時候還是不太方便。

我看了一下IceExt儲存的RAW格式檔案,還好格式比較簡單,前一個位元組儲存字元資訊,後一個位元組儲存顏色資訊。

於是做了這個小程式,把顏色資訊都扔掉了,只留下了字元,在dos視窗下執行,顯示儲存的螢幕資訊,也可以重定向到檔案。

使用方法:
raw2t 原始檔 [寬度 高度]

寬度和高度可以在softice視窗中用 width 和 hight 命令來檢視。預設情況下分別是80和55(我的softice配置)。源程式一併給出,你也可以自己修改。

程式沒有做太多的糾錯功能,畢竟我們是學習crack的人,不是傻瓜使用者。

源程式 raw2t.c

01  #include <stdio.h>
02  #include <stdlib.h>
03  #include <memory.h>
04  
05  
06  int main(int argc, char* argv[])
07  {
08      int width = 80, hight = 55;
09      int i, j;
10      char *strLine;
11      FILE *fs;
12  
13      if( argc < 2 ) {
14          printf("Convert IceExt raw files to text. Version 0.1  Made by kunlong.");
15          printf("\r\nUsege: %s raw_filename [width hight]", argv[0]);
16          printf("\r\nor   : %s raw_filename [width hight] > destination_filename", argv[0]);
17          printf("\r\nDefault width:80\r\nDefault hight:55\r\n");
18  
19          return 0;
20      }
21  
22      if( argc == 4 ) {
23          width = atoi( argv[2] );
24          hight = atoi( argv[3] );
25      }
26  
27      strLine = malloc( width+1 );
28      memset(strLine, 0, width+1);
29  
30      fs = fopen( argv[1], "r" );
31      iffs == NULL ) {
32          perror( "open failed on input file" );
33  
34          return 1;
35      }
36  
37      fseek(fs, 0, SEEK_SET);
38  
39      for( i = 0; i < hight; i++ ) {
40          for( j = 0; j < width; j++ ) {
41              strLine[j] = fgetc(fs);
42              fseek(fs, 1, SEEK_CUR);
43          }
44          puts(strLine);
45      }
46  
47      free(strLine);
48      fclose( fs );
49  
50      return 0;
51  }
52  


順便試了一下老羅的工具,不錯呀!嘿嘿。

相關文章