ReadyFor4GB

    http://zh-deepxw.blogspot.kr/search?q=readyfor4gb#ReadyFor4GB



    注意:
    部分旧式驱动程序不支持超过4GB内存寻址,从而导致不能正常工作,甚至蓝屏。
    请设置系统错误报告生成内存转存文件*.dmp,分析dmp,找出是哪个驱动程序有问题,更新之,或禁用之。

    部分主板的附加功能也会不支持4GB而造成蓝屏。

    蓝屏与Windows、以及补丁没有直接关系。Windows自身完全支持超过4GB大内存。
    同样的硬件在2003或2008上也会出现同样问题。



    本程序仅用于理论研究测试,禁止在生产环境中使用!使用者自行承担由于更改使用许可而造成的法律问题。

    注:如果你的主板不支持4GB 内存、不支持memory remap,那么就算改了软件的上限,最终也是无法完整使用4GB低位空间以及超过4GB的空间。

    软件功能:
    1) 查看32位 Vista/Windows 7 的内存容量许可限制;
    2) 破解Windows PAE 内核文件 ntkrnlpa.exe,绕过 ZwQueryLicenseValue API 函数的许可限制,使工作站版本 32位 x86 的 Vista/Windows 7 支持超过 4GB 物理内存,最大支持128GB。


    本程序修改过程自动化,并增加从内核中直接读取当前的内存容量许可上限。
    本程序的修改及做数字签名都是直接系统API操作,无需使用其它辅助工具。
    驱动程序viewmem-x86.sys,用于读取内存数据。

    所有SP版本的Vista、Windows 7 应该都支持。

    本程序只完成修改文件的工作,请自行用bcdedit编辑启动菜单加载新的内核文件。

    你可以运行AddBootMenu.cmd 自动添加启动菜单的脚本,请右键点脚本文件,选择以管理员身份运行。

    完成后,重启系统。
    在出现开机菜单时,选择 "Windows 7 x86 [ 128GB with ntkr128g.exe ]" 进入系统,就可以完整使用所有的物理内存了。

    /////////////////////////////////////////////////////////////////////////////////////////

    bcdedit操作过程参考:
    右键点开始菜单中的命令提示符,选择以管理员身份运行。

    bcdedit -copy {current} /d "Windows 7 x86 128GB"
    The entry was successfully copied to {61b1399a-24cd-11de-a4c4-ca27f4abce37}.

    以下请根据上面返回的GUID输入。
    bcdedit /set {61b1399a-24cd-11de-a4c4-ca27f4abce37} testsigning on
    bcdedit /set {61b1399a-24cd-11de-a4c4-ca27f4abce37} pae forceenable
    bcdedit /set {61b1399a-24cd-11de-a4c4-ca27f4abce37} kernel ntkr128g.exe

    以下可选
    bcdedit -timeout 10
    bcdedit -displayorder {61b1399a-24cd-11de-a4c4-ca27f4abce37} -addfirst
    bcdedit -default {61b1399a-24cd-11de-a4c4-ca27f4abce37}

    更新历史:
    2009.04.11 V1.1.0.2
    * 上一版本程序中会漏一处修改,现已修正。

    2009.04.12 V1.1.0.3
    * 去除自动在当前环境设置testsigning。

    2009.04.20 V1.2.0.6
    + 增加显示内存容量、使用量等;增加显示Windows默认的内存许可容量,以及破解后的实际上限。

    2009.04.22 V1.3.0.9
    + 增加显示内存模组的地址范围;增加显示PCI设备的最高地址范围,帮助判断内存重影射是否处于启用。

    下载地址:

    Download Link 1: ReadyFor4GB_20090422.zip (点击新开窗口下载)
    Download Link 2: ReadyFor4GB_20090422.zip (点击新开窗口下载)





    커널 파일인 ntkrnlpa.exe 파일을 패치한 다음 ntkr128g.exe 라는 이름으로 하나 저장해두고

    부팅시 패치된 커널파일을 선택하여 부팅할 수 있도록 멀티부팅 메뉴에 추가해주는 방식입니다.

     

    그러니까 정상적인 커널의 부팅도 그대로 유지하면서

    패치된 커널로 부팅하는 메뉴가 추가되는 방식이기 때문에

    이걸 사용한다고 해도 시스템이 망가질 이유는 없다고 생각됩니다.

    원본 파일은 그대로 보존되니까요.

     

    먼저 ReadyFor4GB.exe 파일을 실행하여 Apply 눌러서 커널을 패치하신 다음

    AddBootMenu.cmd 파일에 우클릭 해서 관리자 권한으로 실행해주시면 부팅메뉴에 패치된 모드가 추가됩니다.

     

    저는 비스타에서 테스트했는데 부팅메뉴에 다음과 같은 이름이 추가되었습니다.

     

    Microsoft Windows [Version 6.0.6002] [128GB with ntkr128g.exe]


    패치된 모드로 부팅을 해보니 4GB 잘 나오는 것 같기는 한데 저는 전문가가 아니라서 잘 모르니, 이 프로그램에 문제점이 있다면 고수님들께서 알려주시기 바랍니다.

     

     

     

     

    만약 멀티부팅 메뉴가 나타나지 않고 계속 패치된 모드로 쓰고 싶으시다면

    기존 부팅메뉴를 삭제해버리면 되겠지요.

    시작메뉴 검색창에 msconfig를 입력하신 다음 부팅 탭에서 불필요한 항목을 삭제해주시면 됩니다.

    그리고 부팅시간 12초로 설정된 부분도 수정하시려면 수정하시구요.

    패치모드 항목을 선택한 다음 기본값으로 설정 누르시면 패치모드가 기본 부팅으로 잡히겠지요.

     

    제 생각에 정상모드를 삭제하는 것 보다는 패치모드를 기본값으로 설정해두고

    제한시간을 짧게 잡아두는 쪽이 좋을 것 같습니다. 그래야 나중에 정상모드로만 부팅할 수 있도록 되돌리기 쉬울테니까요.

     

     

     

     

    만약 패치모드로 부팅한 다음 패치모드의 부팅메뉴 이름을 수정하시려면 bcdedit으로 수정하시면 되겠죠.

    명령 프롬프트를 관리자 권한으로 띄우신 다음

     

    bcdedit /set {current} description "Windows 7 Ultimate K x86"

     

    이런 식으로 적용하시면 됩니다. 간혹 부팅했을 때 자신의 식별자가 {current}가 아닌 {default}로 나올 수도 있는데 (기본값으로 지정한 경우에 간혹) 그럴 때는 {current} 대신 {default} 라고 적어주시면 되겠지요.

     

     

    만약 패치모드로 부팅했는데 더이상 패치모드를 사용하기 싫으시고, 이미 정상모드 메뉴는 삭제하셨다면 다음과 같이 입력하시면 됩니다.

     

    bcdedit /deletevalue {current} testsigning

    bcdedit /deletevalue {current} kernel

    bcdedit /deletevalue {current} pae

     

     

     

    (추가)

    테스트 결과 4GB 실제로 사용 가능한게 맞는 것 같습니다. LinX에 메모리 크게 할당하니 오류가 나서 Prime95랑 LinX를 같이 돌리니까 메모리를 많이 쓸 수 있더군요. 그런데 LinX 오류난걸 보면 단일 프로그램당 사용 가능한 메모리에는 2GB 정도로 제한이 있는 것 같습니다. Prime95 역시 메모리 크게 할당해줘도 2GB 정도밖에 사용을 안하더군요. 이 부분에 대해선 고수님들의 고견이 필요할 것 같습니다.

     

     

     

     

    아 LinX를 그냥 4개 동시에 돌려봤습니다. 그랬더니 4GB 거의 다 사용합니다. 이로서 4GB 이상 사용 가능한가에 대한 결론은 확실해진 것 같습니다. 다만 단일 프로그램당 사용 가능한 메모리가 2GB밖에 안 되는 것 같아서 그 점이 아쉽습니다.

     

    Posted by beumbae