青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

QUICKBMS GUIDE

轉(zhuǎn)載自:http://forum.xentax.com/viewtopic.php?f=10&t=3525&start=0&st=0&sk=t&sd=a

I am going to make a tutorial for using quickbms for extracting archives that are no extractors for.
I am going to start off easy then add more and more difficult archives so you can learn and write your own scripts.
the tools you need are just 4 things.
1. A HEX editor I use HxD
2.Quick BMS http://aluigi.org/papers/quickbms.zip
3. a text editor like wordpad
4. a calculator that supports hex like the one built into windows.
We will start with a game called FEZ (Fantasy Earth Zero)
this is a great archive format for someone to learn bms scripting from.
I attached a sample.
website http://tw.fez.gamania.com/
installer http://tw.dl.gamania.com/fez/FEZ_1103.exe
this game uses textures with wrong headers mainly dds and some tga and some kind of .mdl format.

ok so you can download the full installer
ok so open the file up in your hex editor so you see what I have open here
Image
so if you look to the right you will notice some readable text 
Etc\aura.tex , Etc\cursor.tex , Etc\mahoujin.tex , Etc\env2.tex , and Etc\kaze.tex .
so just looking with out eyes we now know that there are at least 5 files in this bin file and after we extract them they will be placed in a folder called Etc.
so lets start looking at the other parts of the header in this file we will start with the first 4 bytes
Image
well we have 05 00 00 00
whenever you are working with archives for computer games 99% of the time you read the values in reverse so the above number
would not be 5,000,000 but instead would be read as 00 00 00 05 or 5
Well if we remember from earlier we saw 5 file names and our first 4 bytes of our file are equal to 5 so there is a good chance we just discovered where the file count is stored in this archive.
data is stored in groups of 4 bytes " a long" 2 bytes " a short" or 1 byte "a byte" so we have our first part of our script
get FILES long
this tells quickbms to read a long value "aka 4 bytes" and store it as the variable FILES.
ok the next 4 bytes 74 00 00 00 are not needed in order for quickbms to extract our files but it represents the total size of our header.
Image
so I will write the next line of code for quickbms
get HEADERSZ long 
this stores the header size in the variable HEADERSZ
ok now we have 2 more bytes before the file name
so that is 0C 00 well 2 bytes is know as a short. but what does 00 0C stand for?
if we highlight the whole name of the file in out hex editor it shows us a length of C :)
we found the name length so we would write that as
get NSIZE short
this stores the 2 bytes in the variable NSIZE representing the length of the name
Image
well next comes the name so to store that as a word in bms language we will write the next line
getdstring NAME NSIZE
this is saying store a string "aka a word" in the variable NAME and its length is equal to the variable NSIZE.
ok now we have another 4 bytes after the name 7C 00 00 00
well we already know the name of the file so now to extract the file we need to know its size and location in the archive.
7C is not a very big number for the size of the file to lets see what happens if we go to offset 7C
in HxD press ctrl +E and type in 7c for the start and end then click ok.
Image
you should look like this after clicking ok
Image
hmm this looks good it looks like a file header IMG0 so we will write out line saying that is the start of the file
get OFFSET long
this stores the 4 bytes as the variable OFFSET
ok the next 4 bytes are 70 10 00 00 well that looks bigger so lets see if that is the size of out file so it will translate into 00 00 10 70 or 1070
so lets go to our offset 7C and then we will add in the length column 1070
Image
wow look at that I see TRUEVISION-XFILE that is a classic tga ending and we also end just before IMG0 which was the start of our first file
Image
so that means we found our size :)
we write that as 
get SIZE long
this stores the 4 bytes in the variable SIZE
ok now we have 2 bytes then the next file name hmm that seems familiar 
lets see 0E 00so that means it translates into 00 0E or E
well the last 2 bytes we had before a name was the name size lets see if it still holds true
Image
it does the name length is E :)
so that means we found where the pattern in the header repeats and we identified all that we need to extract the files so now we can finish our script and our extractor.
whenever the pattern starts you want to begin a loop so it will keep cycling through it until there are no files left. the easiest way to write that is.
for i = 0 < FILES
this means run the following commands until i = 0 and set i = FILES
so we will put that before our NSIZE variable because that is where the pattern starts.
next you want it to write out the file and we do that with the log command in the following format
log NAME OFFSET SIZE
this says write the file name and fill it with the data starting at the variable OFFSET and a length of SIZE.
now this is great but we want it to keep repeating the loop till there are no more files so we must add
next i
at the end so the loop continues.
ok so now save the file we created as extract.bms
and put Etc.pac extract.bms and quickbms.exe all in the same folder for wthis demo we will say c:\temp
so now at the command prompt change to that directory and type
quickbms.exe -l extract.bms Etc.pac .
this will list the the file contents and size or give you an error if your script is not correct.
Yay it worked :)
Image
now lets try extracting them create a folder in c:\temp called extracted
now type the command 
quickbms.exe extract.bms Etc.pac extracted
yes it worked now they are in the filder and extracted.
Image
Code:
get FILES long
get HEADERSZ long
for i = 0 < FILES
get NSIZE short
getdstring NAME NSIZE
get OFFSET long
get SIZE long

log NAME OFFSET SIZE
next i

Let me know what you think of this tutorial and if you want me to continue on with more examples and more compex scripts.

posted on 2014-04-20 02:42 楊粼波 閱讀(521) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美亚洲在线播放| 国产视频亚洲精品| 一本到12不卡视频在线dvd| 一本色道久久综合亚洲精品小说 | 新片速递亚洲合集欧美合集| 国产嫩草影院久久久久| 久久动漫亚洲| 欧美激情一区二区三区蜜桃视频 | 狠狠爱综合网| 欧美激情第六页| 亚洲在线观看免费| 美女日韩欧美| 在线视频精品一区| 国产日韩欧美一区二区| 久久婷婷国产综合尤物精品 | 国产精品日韩欧美综合| 久久国产手机看片| 亚洲二区在线视频| 亚洲伊人色欲综合网| 国产在线精品二区| 欧美片在线观看| 欧美一区二区三区喷汁尤物| 亚洲二区三区四区| 久久gogo国模裸体人体| 亚洲精品一品区二品区三品区| 欧美视频不卡| 麻豆亚洲精品| 亚洲一区观看| 亚洲精品1区2区| 久久精品一区二区国产| 一区二区三区日韩精品视频| 韩国在线一区| 国产精品免费视频xxxx| 美女视频黄免费的久久| 午夜欧美精品久久久久久久| 亚洲国产99| 久久人人爽人人爽爽久久| 亚洲一区精彩视频| 亚洲欧洲一区二区三区久久| 国产亚洲精品久久久久婷婷瑜伽 | 亚洲精品视频免费| 玖玖在线精品| 性欧美办公室18xxxxhd| 日韩午夜在线电影| 在线播放日韩专区| 国产视频亚洲精品| 国产精品高潮呻吟久久av无限| 久久日韩精品| 欧美专区在线观看一区| 亚洲男人第一av网站| 亚洲精品网站在线播放gif| 久久伊人免费视频| 久久精品99国产精品日本| 亚洲女优在线| 亚洲图片欧美一区| 一本色道久久综合亚洲91| 亚洲欧洲日夜超级视频| 影音先锋久久久| 黄色亚洲网站| 国产视频在线观看一区| 国产精品视频免费在线观看| 欧美三区在线视频| 欧美少妇一区| 欧美午夜国产| 国产精品美女久久久| 国产精品第三页| 国产精品久久中文| 国产精品免费看| 国产女人精品视频| 国产伊人精品| 国产一区在线免费观看| 国产亚洲观看| 激情久久一区| 亚洲国产精品成人| 亚洲人成久久| 一本大道久久a久久精二百| 亚洲免费观看在线视频| 一区二区三区四区精品| 亚洲图片欧洲图片日韩av| 亚洲视频图片小说| 亚洲欧美在线网| 久久精品国产清高在天天线| 久久人人爽人人爽爽久久| 久久一区免费| 亚洲国产毛片完整版| 亚洲人久久久| 亚洲一区欧美一区| 久久av一区二区三区| 噜噜噜91成人网| 欧美精品一区在线播放| 欧美视频免费看| 国产精品拍天天在线| 国产午夜精品美女视频明星a级| 黄色精品一区| 亚洲免费电影在线| 新狼窝色av性久久久久久| 久久久噜噜噜久噜久久| 亚洲国产精品va在线观看黑人| 亚洲日本成人在线观看| 亚洲综合精品四区| 久久亚洲综合色一区二区三区| 欧美激情乱人伦| 国产精品一区二区黑丝| 在线观看欧美| 中文av字幕一区| 久久久精品国产免大香伊| 欧美大片在线观看一区二区| 亚洲精品一区在线观看香蕉| 亚洲欧美日韩国产综合| 欧美国产第一页| 国产伦精品一区二区三区视频孕妇| …久久精品99久久香蕉国产| 亚洲无玛一区| 欧美不卡视频一区发布| 亚洲综合第一| 欧美极品在线视频| 国产一区二区三区精品欧美日韩一区二区三区| 极品中文字幕一区| 午夜精品偷拍| 亚洲国产精品成人| 羞羞答答国产精品www一本| 免费在线日韩av| 国产女主播一区二区| 99www免费人成精品| 久久综合九色综合久99| 亚洲一区二区三区久久| 欧美精品精品一区| 18成人免费观看视频| 欧美一区二区三区在线观看视频 | 午夜在线视频一区二区区别| 欧美精品色综合| 韩国av一区二区三区| 性久久久久久久久久久久| 91久久夜色精品国产九色| 久久婷婷av| 韩国三级电影一区二区| 欧美一区二区精品| 一本到12不卡视频在线dvd| 欧美福利视频在线观看| 伊人久久av导航| 久久精品免费观看| 亚洲免费视频在线观看| 欧美四级在线观看| av成人动漫| 亚洲人体影院| 欧美国产精品一区| 亚洲激情国产精品| 免费在线国产精品| 久久九九热re6这里有精品| 国产女精品视频网站免费| 亚洲一区二区在| 一本大道久久a久久综合婷婷| 欧美国产精品一区| 亚洲免费高清视频| 亚洲精品护士| 欧美精品日韩精品| 日韩一区二区高清| 日韩小视频在线观看专区| 每日更新成人在线视频| 亚洲第一网站| 欧美高潮视频| 欧美顶级少妇做爰| 99热这里只有成人精品国产| 亚洲激情一区| 欧美日韩国产一中文字不卡| 日韩一级黄色大片| 亚洲精品在线二区| 欧美日韩在线三区| 午夜精品av| 欧美在线一二三四区| 国产综合激情| 免费视频一区| 欧美国产精品久久| 亚洲一区二区三区在线观看视频| 一本高清dvd不卡在线观看| 国产精品入口夜色视频大尺度 | 久久成人18免费网站| 在线电影一区| 亚洲福利视频二区| 欧美日韩一区国产| 欧美中文字幕视频| 久久久91精品国产| 亚洲伦理在线观看| 一二三四社区欧美黄| 国产精品一区在线观看| 久久躁狠狠躁夜夜爽| 欧美大胆人体视频| 亚洲男人影院| 久久久久久亚洲精品杨幂换脸 | 亚洲在线播放| 伊人久久综合| 亚洲国产精品国自产拍av秋霞| 欧美日韩免费一区| 久久久久久久久伊人| 美女图片一区二区| 午夜精品久久| 欧美成人国产一区二区| 午夜国产一区| 美女国内精品自产拍在线播放| 亚洲一区二区三区涩|