
Ȃ񂼂
̃c[Q͈˗ɂ쐬̂łB
PPȂǂɎgpĂAAOSA[JCuWJAet@CfR[h܂B
킩lgĂB
킩ȂlDLƉ𓀂tH_IāAShiftL[ȂDeleteďĉB


CZX
͎̂Ȃg񂾃XNvgłAꕔɑҗl̃\[XQlɂĂ̂܂B
ꂼ̃\[XĂtH_ɐĂ܂̂ŕKǂłB
ꉞׂGPLŔzzĂ܂B
@ɐG悤ȂƂɂ͎gȂŉB


t@C̐

 bin   @etH_ɎsoCiĂ܂B
c HSP @HSPŃRpCsoCiB
c C++ @VC++2008EEŃRpCsoCiBvVC++2008^CB

 src   @etH_Ƀ\[XXNvgĂ܂B
c HSP @HSP̃\[XƐeLXgĂ܂B
c C++ @VC++2008EẼvWFNgt@Cƃ\[XƐeLXgĂ܂Bbccpbatpӂ܂B
c perl@perlXNvgƐeLXgĂ܂B


g
HSP̓_CAOɏ]āAaosA[JCuIAۑw肵ĂB
̂悤Ɏ蔲Ȃ̂ŁAۑœKȖOŕۑĂB
\[XHSP3ŃRpCAfobO\łB

C++CUIłBsΎgoĂ܂B
TCY팸̂߂ɁAʓrVC++2008̃^CCuKvłB
srctH_VC++2008p̃vWFNgt@CĂ܂B
BCCĂł΁Amake_bcc.bats΂̂܂܎goCist@C
foƎv܂B
maket@C̍킩Ȃ̂ŁAbcc32@Ă邾ł
ĂȂœKIvVĂgςȂB

perl̓XNvĝ܂܎ŝȂ̂ŁAActivePerlȂǂ𓱓ĂB
Ô߂2byte͎gpȂ悤ɂĂ܂B
ShiftJISŏĂ悩̂łc
摜̃fR[hɊւẮA߂ǂ̑債ł͂Ȃ̂ŁAViIf[^
̂ݎĂ܂B


{Cŉ͂
HSPC++perl畡̌ō쐬Ă܂A͂̕׋
̈płHSPAW[ȌC++Av]perl3őg݂܂B
lIɂperl͉ǐႢ̂ŁǍ̕ǂ݂₷悤Ɏv܂B

{Cŉ͂͂̕׋珑Ă܂AIɂ͑債̂ł͖̂ŏSҌ
Ǝv܂B񎄂S҂Ȃ̂ŁAꂮ炢tłc^^G
{̓fR[h[`̃AhX肷̂Ǝv܂Au[N|Cg
gȂɂ͂܂łȂ̂łł͊Ă܂B
tɌ΁Au[N|Cg̐ݒû݂ŉƂ肷邱Ƃł܂B

̓ViIf[^͂܂B
aosA[JCu^Ȃ̂ŁAExtractDataȂǂœǂݍ߂Ȃ̂łAdgݎ̂̓VvłB
oCiGfB^ŉ{邾ŁAȒPɉ͂ł܂B
̃ViIf[^ƁǍ͎̉ɂ֗Ȃ̂ŁAA[JCu璊oĂ݂ĉB

\mƂāAnt}̎dg݂mĂƏeł܂B
͂́AÍ∳kASYOɒmĂ邩ۂŁA͂̂₷
啪ςĂƎv܂B
͑Ώۂ̃ViIf[^oCiGfB^ŉ{ƂAf[^̋K
nt}ł\ƐAۂɉ͂Ă݂ƃnt}łB
̂悤ɁAɃoCiGfB^ȂǂňkÍAǂ̃ASYgpĂ邩
ڐ邱ƂŁA͑xȂ܂B

āAfobKŉ͂Ă킯łAłOLLYDBGgp܂B
Kxɓ{ꉻłĂĂB
͑Ώۂ͖PP̑̌łgp܂B
ił͎ĂȂ̂ŖmFłÃAhXlႤ\łB
܂AOLLYDBGɋNAut@CJvsfa8.exeIłB
{́AŁúsvIAu[N|CggăfR[h[`
肷킯łAgȂɏڂȂ̂ŐłB
Ƃ肠ÃViIf[^̈ʒuAʂɕ\Ă镶Ȃǂ
Au[N|CgȂǂŌĂяo肵܂B
u[N|CgƂt̂Ȃꍇ́AKɃOOĂB
ȒPɌ΁Ȁꏊʉ߂珈~߂ĂXgbp[݂Ȃ̂łB
c[̎gɋ킷邩Ǝv܂AӊOɂ茩̂ŁAo
łĂ݂ĂB
ŏIIɂ́Aȉ̕fR[h[`ĂяoĂꏊɂȂ܂B
0044088D  |. E8 0E2AFFFF    CALL sfa8.004332A0
AhX@@@B@@@AZu(CALL)ƃWṽAhX
F9(́s̃V[gJbgL[)ă^Cgʂ܂Ői߂Aúꎞ~v
ŁAU~߁A0044088DhɃu[N|CgݒuĂB
uENbNړAhXvŏoĂ_CAOɃAhX˂߂Δׂ܂B
uENbNu[N|CgZbgvŃu[N|Cgݒł܂B
ݒułF9ŏĊJ܂B
^CgʂEXTRAIAƃu[N|CgݒłĂΏ~܂܂B
Ȃ悭킩܂񂪁AViIt@C3ǂݍގdlɂȂĂ̂ŁAF92񉟂܂B
̓XebvsgāAAZug[XĂ܂B
F7L[ڍ׃XebvsAF8XebvsłB
ڍ׃XebvsłCALLȂǂ̒ɓĂ܂B
XebvsƁACALLȂǂCɏACALL̖̎߂܂Ŏs܂B
ł́AfR[h[`ɓĂKv̂ŁAF7܂B
̓AZuƂ̐킢łB
茳ɃA[JCu璊õViIf[^pӂāAĂƕ₷łB
00433307  |. E8 04FFFFFF    CALL sfa8.00433210
ł́Ant}؂̍\zĂ܂B
ȂΏڍ׃XebvsgAłɉ͍ς݂Ŕ΂ꍇ̓Xebvs
gĂB
REP STOSƂ߂́Ant}e[u0NA邽߂̏łA
ڍ׃Xebvs511JԂ̂ŁAXebvsŔ΂ĂB

Ƃ́AAZu𒲂ׂȂAg[X̌ʂɃ\[X𕜌܂B
ۂɂǂɂȂ̂Ă݂ĺAHSP̃\[XĂB
//ViIfR[h[`
// 004332A0
#deffunc decode_scr var p1, int p2, var p3, int p4
ƁAĂ镔004332A0h̃fR[hɂȂ܂B
// 00433210
#defcfunc create_huff_tree local ret
́Ant}؂̍\zɂȂ܂B
ǂÃAZuƃZbgŏĂ̂ŁA̓Iȃ\[X@
₷Ǝv܂B
āA͂IAC++̃\[XƂׂĂB
scr_file.cppɃViIfR[hĂAe͌H̃R[h
قڂ̂܂܎gpĂ܂B
AZuꂩ痧グHSP̃\[XƔׂĂ݂ƁAقړ悤ȗɂȂĂ܂B
͂炭AHAZuꂩ\[XNł傤B
perĺ̕AHSP̃\[Xȗ̂ɂȂ܂B

o[XGWjAOđvȂ́HƎvl邩܂񂪁A
{ł͋֎~Ă܂B
ŁAJ҂͗pKɃo[XGWjAO֎~鍀Ă킯ł
̌łDLĂ݂ƂApKǂ납炠܂łOOG
Ȃ̂ŁA炭@Ǝv܂B
[J[ォtꍇ́A艺邱ƂɂȂ邩܂񂪁c
AfR[hΏۂ̃f[^̓[J[̒앨ƍl̂ŁAfR[hꂽ̂
zz肷̂͒쌠̐NQŃAEAEȂ̂łӂB
œ@ɐG悤ȂƂɗpȂŉB

Ƃ킯ŁAGcȉ͕@͂ȊłB
͏S҂̎͂̉()ŒNȓełA{Cŉ͂Ċe\[X
N̂ŁAQlɂȂ΍KłB
ۂɎłĂ݂ƁAl̕X̋Zp͂͑f炵łˁB

2009/11/16
