无法定位程序输入点 GetLogicalProcessorInformation 与动态库 KERNEL32.DLL 上

灰暗的星星灰暗的星星灰暗的星星灰暗的星星灰暗的星星
 
分类:技术文章

If you are comfortable working with a hex editor and changing files, there is one simple fix without updating to SP3

The function GetLogicalProcessorInformation is imported by msvcr120.dll from kernel32.dll ,but only the kernel32 dll from service pack 3 contains that function, so when LolLauncher.exe and League of Legends.exe are opened the system attempts to load the dll's and address of functions they link to in their import tables, and does the same for the dll's, when the system fails to find GetLogicalProcessorInformation inside of kernel32.dll for msvcr120.dll you are given an error message and the process is terminated

there are multiple copies of msvcr120.dll, u need to edit two of them. go to your league of legends folder and make a backup of the msvcr120.dll file(in you os settings u may have file extensions like .dll hidden, you may want to change that) in these 2 directories below:

League of Legends\RADS\projects\lol_launcher\releases\0.0.0.200\deploy\

League of Legends\RADS\solutions\lol_game_client_sln\releases\0.0.1.12\deploy\

then open both of the msvcr120.dll files in a hex editor like HxD (http://mh-nexus.de/en/hxd/), press ctrl+f search for the name of the function we are missing(GetLogicalProcessorInformation), and click on the string side of the hex editor to place the cursor at the start of the string "GetLogicalProcessornformation" and replace the string by typing the name of another function(GetModuleHandleA), now set your cursor after the A in GetModuleHandleA except on the hexedecimal side of the hex editor and press your 0 key twice to change the hex value after the string to 00 or null(which is called a null terminator, and is how code knows where the end of a string is). there are two copies of the string "GetLogicalProcessorInformation" in the msvcr120.dll file so search again to find the next one and replace it in the same way and save with ctrl+s. Note theres's also a string in the msvcr120.dll file that is "GetLogicalProcessorInformationEx" but we don't need to change that. now do that with the next copy of msvcr120.dll you have open and save it. and you should be good.

I can't guarantee it's all that safe, but it should be ok, i went into a custom match temporarily to test and didn't have any problems.It is unlikely that the function you replace with GetLogicalProcessorInformation is even getting called(used) in it's place.