源碼,也有,以後有機會或者誰敢興趣,我再貼吧
當然,如果有人認爲以下內容侵犯了他的利益,請和我聯繫,如果確實是我不對,我會及時更正的!:)
owar.exe
遊戲菜單
owar.exe run
直接運行遊戲
*********************************************************************
.owp 文件格式分析
-20
DWORD file index compress size
DWORD file index real size
DWORD
DWORD
DWORD
file index 格式
DWORD 0d 0a 02 00
DWORD XX XX XX XX
DWORD compress data length
DWORD real data length
DWORD filepointer
BYTE[5] XX XX XX XX XX
*********************************************************************
*********************************************************************
owar.exe文件分析
0x4064f4 jmp CreateWindowEx
push ebp;
mov ebp,esp;
[ebp+0x10] lpName
*********************************************************************
實際上,遊戲主程序就是owarlite.dll
**********************************************************************
owarlite.exe文件分析
0x424804讀文件並解文件頭
0x424b40從owp文件內解出單個文件
----------------------------------------
0x41a764解碼函數
具體代碼分析
0x41a88b eax->解開後的指針
[ecx]->eax
[ebp-38]->length
----------------------------------------
0x41c664 解碼函數,由0x41a764直接調用
0x402898 free
0x4028b0 realloc mem
0x402880 get mem
ox402dec fill mem
0x408360 create file
0x4083c4 read file
0x4083f0 write file
0x408428 close handle
0x40841c set file pointer
0x464b24 得到字符串寬度,eax爲返回值
0x4044d0 得到字符串length,eax爲返回值,兩個寫字串函數在寫字串之前,均調用此函數得到字符串長度
-----------------------------------------
0x466f90 調用0x4671a8
參數
ecx y
edx x
[ebp+0x14] lpchar
[ebp+0x18]
[ebp+0x1c]
[ebp+0x20] 很可能是Width,和上面的x有關
代碼分析
0x4670c7 eax 行數
-----------------------------------------
------------------------------------------
0x4671a8 寫字符串函數 1
參數
ebp+0x8 color
ebp+0x14 字符串
變量
ebp-0x04 lpstruct
lpstruct+34 Width
lpstruct+30 Dst
offset=([ebp-0x0c]+[ebp-0x20]+[ebp-0x28])*(W/2)+[ebp-0x08]+[ebp-0x1c]+[ebp-0x34]+[ebp-0x24]
寫字串部分代碼
0x4672db 大循環開始 +
0x467315 確定字符串長度 +
0x4673fc 跳轉 |
0x467461-| edx=dst |
| eax=offset |
| cx=color |
0x46750a 寫字符部分結束 +
0x467517 大循環結束 +
------------------------------------------
------------------------------------------
0x52461c 調用0x471088
0x524690 [eax] 0x280,應該是屏幕寬度
[eax+4] 0x158,很可能是行寬
byte ptr [edx] 字符串長度
[edx+1] 字符串
------------------------------------------
------------------------------------------
0x471088 寫字串函數 2 人物對話,背景做了融合效果的那種
參數
ecx y
edx x
ebp+0x0c color
ebp+0x10 字符串
變量
ebp-04 lpstruct
lpstruct+0x1c 表面首地址
lpstruct+0x14 表面Width
lpstruct+0x08
具體代碼分析
0x4710f0 確定字符串長度 +
0x4712b7 跳轉則不寫點,否則寫點 |
0x4713db 寫字串部分結束 +
------------------------------------------
字庫格式 沒有壓縮,單色字庫,byte/pixel,01代表有顏色
**********************************************************************
unp??.zip 解遊戲資源程序,直接調用遊戲內部解壓縮函數進行解資源包
cowar??.zip 漢化程序