How to localize Windows 2000 Extended Kernel ?

See ->

How to localize Windows 2000 Extended Kernel in 2019 ?

You may want to use Extended Kernel for Windows 2000 on your language.

I tell the way to localize Extended Kernel.

1. You should get lastest original Windows 2000 DLLs as you can.
2. Check the Base Address.
exk

3. Change the base address of Japanese version or English version dlls to your locale one.
exk2
Of course you should change entry point and relocate address and so on.
The tool you used should make change other address connected with base address.

4. You should replace resouce table to your locale by any tool.

 My way to replace. I want to find good tool. 🙁

  a) Check Resouce table size.
  b) Change resource table and Data Directory.
  c) Replace resource.
  d) Fix address problem.

5. kernel32.dll requires more steps.

exk3
a) replace 0x411 to your country LCID in 0x5a933 and 0x5a945.

exk4

b) replace 0x55740, 0x55742, 0x55746, 0x55748 to your country CultureInfo.
The case is you can see "en-us"
If it is "de-de" then you should change to 0x64 0x65 0x64 0x65.

c) You should change to your country version userenv base address in 0x5a3d0.

For expample.
Japanse version 00002879 (0x79280000)
English version 00000F7C (0x7c0f0000)
Taiwan version 00004D79 (0x794d0000)

d) You should change to the entry address which I_RpcBindingInqLocalClientPID!rpcrt4.dll in 0x5AF21

For expample.
Japanse version 01777E78 (0x787e7701)
English version 0177D977 (0x77d97701)
Taiwan version 01777578 (0x78757701)

e) Add String Resource Table

30002,     "17.146$-61.821$AG$ATG$Antigua and Barbuda$Antigua and Barbuda$"
30003,     "33.833$66.025$AF$AFG$Afghanistan$Islamic State of Afghanistan$"
30004,     "28.214$2.655$DZ$DZA$Algeria$Democratic and Popular Republic of Algeria$"
30005,     "40.356$47.869$AZ$AZE$Azerbaijan$Azerbaijani Republic$"
30006,     "41.111$20.027$AL$ALB$Albania$Republic of Albania$"
30007,     "40.292$44.937$AM$ARM$Armenia$Republic of Armenia$"
30008,     "42.551$1.576$AD$AND$Andorra$Principality of Andorra$"
30009,     "-12.333$17.539$AO$AGO$Angola$Republic of Angola$"
30010,     "-12.435$-169.965$AS$ASM$American Samoa$American Samoa$"
30011,     "-35.63$-65.159$AR$ARG$Argentina$Argentine Republic$"
30012,     "-25.585$134.504$AU$AUS$Australia$Commonwealth of Australia$"
30014,     "47.589$14.14$AT$AUT$Austria$Republic of Austria$"
30017,     "26.094$50.543$BH$BHR$Bahrain$State of Bahrain$"
30018,     "13.178$-59.549$BB$BRB$Barbados$Barbados$"
30019,     "-22.189$23.814$BW$BWA$Botswana$Republic of Botswana$"
30020,     "32.303$-64.752$BM$BMU$Bermuda$Bermuda$"
30021,     "50.649$4.642$BE$BEL$Belgium$Kingdom of Belgium$"
30022,     "23.986$-77.635$BS$BHS$Bahamas$ The$"
30023,     "24.309$90.058$BD$BGD$Bangladesh$People’s Republic of Bangladesh$"
30024,     "17.33$-88.63$BZ$BLZ$Belize$Belize$"
30025,     "44.169$17.783$BA$BIH$Bosnia and Herzegovina$Republic of Bosnia and Herzegovina$"
30026,     "-16.712$-64.666$BO$BOL$Bolivia$Republic of Bolivia$"
30027,     "21.406$96.108$MM$MMR$Myanmar$Union of Myanmar$"
30028,     "9.624$2.338$BJ$BEN$Benin$Republic of Benin$"
30029,     "53.543$28.055$BY$BLR$Belarus$Republic of Belarus$"
30030,     "-9.149$160.987$SB$SLB$Solomon Islands$Solomon Islands$"
                  :
51242,     "28.214$-177.332$MI$MID$Midway Islands$Midway Islands$"
54807,     "-8.58$126$TL$TPE$East Timor$East Timor$"

f) not Game Support kernel only.

English 0x56772/0x5646A -> 0x77ea5568 char 'en-US'
Japanese 0x56772/0x5646A -> 0x77ea5558 char 'ja-JP'
Taiwan 0x56772/0x5646A -> 0x77ea5588 char 'zh-TW'

6. advapi32.dll requires more 1 step.

Add String Resource Table.

50001,     "Disallowed"
50002,     "Software will not run, regardless of the access rights of the user."
50003,     "Untrusted"
50004,     "Allows programs to execute with only access to resources granted to open well-known groups, blocking access Administrator and Power User privileges, and personally granted rights."
50005,     "Restricted"
50006,     "Software cannot access certain resources, such as cryptographic keys and credentials, regardless of the access rights of the user."
50007,     "Basic User"
50008,     "Allows programs to execute as a user that does not have Administrator or Power User access rights, but can still access resouces accessible by normal users."
50009,     "Unrestricted"
50010,     "Software access rights are determined by the access rights of the user."

おすすめ

7件のフィードバック

  1. halohalo より:

    いつもお世話になっております。
    改造計画のkernel32.dllについて、0x55536、0x55538、0x5553F、0x55541のところをどう修正すればいいですか?日本語版と英語版を比べてみてもよくわかりません。

  2. 黒翼猫 より:

    日本語版の場合、メイン言語がja-jp サブが en-usになっていて、
    英語版の場合逆になっています。
    中国語の場合は メインの ja-jp のところを書き換えて、 en-us のところはそのままにします。
    サブを日本語にする場合はja-jpにしてもいいですけどね

  3. halohalo より:

    早速のお返事ありがとうございます。
    もうひとつ質問なのですが、v2.4d2以降のkernel32.dllの0x5BEDA、0x5BEDBはどう修正すればいいですか?(日本語版と英語版が異なります)

  4. 黒翼猫 より:

    英語版のゲーム非対応版のやつはバグってるみたいです。
    後日修正します

  5. halohalo より:

    Resource Hackerで1033のメッセージテーブルなどを削除してkernel32.dllのサイズを小さくすることで、台湾版のリロケート問題を回避できました。
    これでSilverlightをインストールできて一件落着です。

  6. Joe より:

    Hallo,
    I cannot find country LCID 0x5A933 and 0x5A945 in newer versions of exkernel. Where to change in kernel32 v30e? Or are these steps obsolete?
    Greetings Joe

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です