рдореИрдВрдиреЗ Skype рд╕реЗ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛, рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдФрд░ рдЕрдм рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдореЗрдВ рдЪрдврд╝ рдЧрдпрд╛ред рдирддреАрдЬрддрди, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдм рдХреБрдЫ рд╕реАрдЦрд╛ рдФрд░ рдХрдИ рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдПред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЙрдк-рд▓рд┐рдлрд╛рдлреЗ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рд┐рд╕реНрдЯрдо DLL рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рди рдХреЗрд╡рд▓ рдирд╛рдо рд╕реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ Skype API рдХреЛ рдХреНрд░реВрд░рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдмреНрд░реЗрдХред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рд┐рджреЗрд╢реА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдХрднреА-рдХрднреА рдкреНрд░реЛрдХ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдПрдордПрд╕ рд░рд┐рд╕рд░реНрдЪ рдХреА рдорд╣рд┐рдорд╛!)ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдмрд╣реБрдд рдЭреВрда рдмреЛрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рд╕реЗ рдХрд╛рдЯ рд╕рдХрддрд╛ рд╣реИред рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬрд╢рдмреНрдж: C ++, VS, CodeAnalyst, Skype COM API, MS Research, Detours, SQLite; рдФрд░ рдмрд╛рдХреА рд╕рднреА рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╡рд░рдг рдХрдЯреМрддреА рдХреЗ рдЕрдзреАрди рд╣реИрдВред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреГрд╖реНрдарднреВрдорд┐ред рд▓рдЧрднрдЧ рдбреЗрдврд╝ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВ рд╕реНрдХрд╛рдЗрдк рд▓реЙрдЧ рдХреЛ рдПрдХ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ (рд▓рдЧрднрдЧ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде, рдЪреИрдЯ рд╕реЗ рдХрдЯ / рдкреЗрд╕реНрдЯ)ред рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдХреБрдЫ рднреА рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ред рдпрд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдмреЗрд░рд╣рдореА рд╕реЗ рдмреНрд░реЗрдХ рд▓рдЧрд╛рдпрд╛ (рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдБ 300 рд╕реЗ рдХрдо рд╕рдВрдкрд░реНрдХ рдФрд░ рд▓реЙрдЧ рдореЗрдВ 360,000 рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрджреЗрд╢ рд╣реИрдВ); рдЕрд╕рд╣рдЬ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдпрд╛ рддреЛ рд▓рд┐рдЦрд┐рдд рд▓реЙрдЧ; рдпрд╛ рддреЛ рдЗрди рд╕рднреА рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ; рдпрд╛ рддреЛ рдореВрд░реНрдЦрддрд╛ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЖрджрд┐ред рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдпрд╣ рдирд┐рдХрд▓рд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП Skype API рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ Skype4COM рдФрд░ C ++ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдирд┐рдХрд▓рд╛ред рдкрд░рд┐рдгрд╛рдо рд▓реЙрдЧ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдХрдЯреНрдЯрд░, рд╕рд╛рдВрддреНрд╡рдирд╛ рдФрд░ рд╕реА ++ рдореЗрдВ, рдмрд┐рд▓реНрдХреБрд▓ред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдореБрдЭреЗ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ рдмреИрдХрдЕрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рдЖрдпрд╛, рдПрдХ рд╕рд┐рджреНрдз рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд▓реЙрдиреНрдЪ рдХреА рдФрд░ ... рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдЕрдВрдд рддрдХ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдирд┐рд░реНрдпрд╛рдд, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧрддреЗ рдереЗ, рд▓рдЧрднрдЧ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рд▓рдЧрднрдЧ 10% рдЙрдиреНрдирдд рд╣реБрдЖ, рдИрдЯреАрдП рд▓рдЧрднрдЧ 5 рдШрдВрдЯреЗред рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдк рд╕реЗ рд▓рдВрдмрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ!
рд╣рдо рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ, рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рдЪреИрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ Skype рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрдерд╛рдХрдерд┐рдд рдЪреИрдЯ, IChat рдореЗрдВ рд╕рдорд╛рди рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдЪрд╛рд░ рд╕рддреНрд░реЛрдВ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ), рд╣рдо рдЖрдзрд╛рд░ рд╕рдордп рдХреЛ рдиреЛрдЯ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреЛрдбрдЕрдирд▓рд┐рд╕реНрдЯ рдЕрдм рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд┐рд░реНрдл 2-3 рдХреНрд▓рд┐рдХ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред
exporting chat 100/7014...
exported 3925 events in 18.1 sec

рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдШреБрдВрдШрд░рд╛рд▓реЗ рджрд┐рдЦрддреА рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХрд╛ 81% рдХрд░реНрдиреЗрд▓рдмреЗрд╕рдбрд▓ рджреНрд╡рд╛рд░рд╛ рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдФрд░ 12% skype4com.dll, рдЖрдк рд╕реНрд╡рдпрдВ рднреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд░рд╛рдЬрджреНрд░реЛрд╣! рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рдирд╣реАрдВ рд╣реИ рдЬреЛ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ), рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рддреАрд╕рд░рд╛ рдкрдХреНрд╖ред рд▓реЗрдХрд┐рди рдХреМрди рд╕рд╛?
рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХреЛ рдЬреАрддреЗрдВ InternalLcidToName, LCMapStringEx, NlsValidateLocaleред рдпреЗ рд╕рднреА рд▓реЛрдЧ рдХреМрди рд╣реИрдВ? рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рддрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдлреЛрди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╣рд╛рдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпреЛрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдЯреЙрдк рдлрдВрдХреНрд╢рди рдЗрдВрдЯрд░рдирд▓рд╕рд┐рдбреЙрдЯрдиреЗрдо рдкрд░ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╕реНрдЯреИрдХ рджреЗрдЦреЗрдВред рдЙрдлрд╝, рдПрдХ рд╕рдорд╕реНрдпрд╛ред рдмреНрд░реЗрдХрд░ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рдирд╛рдо рд╕реЗ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдирд╣реАрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреИрд╕реЗ рд╣реЛ?
рдореБрдЭреЗ рджреЛ рд╡рд┐рдХрд▓реНрдк рдкрддрд╛ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдФрд░ рднреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪреВрдВрдХрд┐ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдлрд╝рдВрдХреНрд╢рди рд╢реАрд░реНрд╖-рдЕрдВрдд рд╣реИ, рдлрд┐рд░ рд╣рдо рдЧрд▓рддреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдХрдИ рдмрд╛рд░ рдмрд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВрдЧреЗред рджреВрд╕рд░реЗ, рдереЛрдбрд╝рд╛ рдЧреБрдЧрд▓реА рдХрд░рдХреЗ, рдореИрдВ рдореИрдЬрд┐рдХ рд▓рд╛рдЗрди {,, KernelBase.dll} @ InternalLcidToName @ 8 рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ - рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдЪрд░рд┐рддреНрд░ рдХреЛ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХреБрддреНрддреЛрдВ рдФрд░ рдПрдХ рдирдВрдмрд░ рдХреЗ рд╕рд╛рдеред рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдЪрд▓рдиреЗ рдкрд░, рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣рдореЗрд╢рд╛ 4 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдвреЗрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ, рдФрд░ рдкреНрд░рдореБрдЦ рдХреБрддреНрддреЗ рдХреЗ рдмрдЬрд╛рдп, "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ" рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрдиреНрдпреВрдЗрдВрдЧ рдХреЗ рд╕рдЯреАрдХ рдирд┐рдпрдо рдЦреЛрдЬ, рдЕрдзреНрдпрдпрди рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА (рдХреБрддреНрддреЗ / рдЕрдВрдбрд░рд╕реНрдХреЛрд░, 4/8/12/16 ...) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдВрдмреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреБрдЫ _GetStringTypeW '16 s рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рд╢реЙрдЯред рдЦреИрд░, рдмрд╣реБрдд рджреВрд░ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдИрд╕реЗрдВрд╕рдбреЙрдЯрдиреЗрдо рдирд╣реАрдВ рд▓реМрдЯрд╛рдП, рдмрд╛рд░-рдмрд╛рд░ рдПрдл 5 рдХреЛ рдкреЛрдХ рдХрд░рдиреЗ рдФрд░ рдЖрдВрдХрдбрд╝реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рд╕реЗ рджреЛ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЙрд▓ рдХрд╛ рд╕реНрдЯреИрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред
KernelBase.dll!@InternalLcidToName@8()
KernelBase.dll!_LCMapStringW@24() + 0x46 bytes
Skype4COM.dll!280c69f2()
// Skype4COM.dll
// ,
рджреВрд╕рд░рд╛, рд╡рд╣ рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдХреЛрдбрдкрде рдкрд░ рдЪрд▓рддрд╛ рд╣реИред
@InternalLcidToName@8:
752F6F33 mov edi,edi
752F6F35 push ebp
752F6F36 mov ebp,esp
752F6F38 push ecx
752F6F39 push edx
752F6F3A lea eax,[ebp-4]
752F6F3D push eax
752F6F3E mov dword ptr [ebp-4],ecx
752F6F41 call _NlsValidateLocale@8 (752F6E04h)
752F6F46 test eax,eax
752F6F48 je @InternalLcidToName@8+17h (7531BAB0h)
752F6F4E push eax
752F6F4F call _LocaleNameFromHash@4 (752F6F13h)
752F6F54 leave
752F6F55 ret
рдЙрдиред рд╣рдорд╛рд░реА рддреАрди рд╢реАрд░реНрд╖ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдПрдХ, _LCMapStringW рдХреЗ рдиреАрдЪреЗ рдЖрддреА рд╣реИрдВред рдЕрдиреНрдп рджреЛ, рдЖрдВрддрд░рд┐рдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрд╛рдлреА рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ MSDN рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, Google рддреБрд░рдВрдд рд▓рд┐рдВрдХ
msdn.microsoft.com/en-us/library/dd318700%28v=vs.85%29.aspx рдкрд╛рддрд╛ рд╣реИ - рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг, рдпрджрд┐ рд╕реНрд╡рдпрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдареАрдХ рд╣реИ, рд╣рдо рдЕрдЧрд▓рд╛ рдмреНрд░реЗрдХ (рдкреНрд░рддреАрдХ _LCMapStringW @ 24 рд╕реНрдЯреИрдХ рдкрд░, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ) рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХреБрдЫ рдФрд░, рдФрд░ рджреЛ рдЪреАрдЬреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЬреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдЗрд╕ рд╕рдмрд╕реЗ рдорд╣рдВрдЧреА LCMapString рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдмреНрд░реЗрдХ)ред рдФрд░ рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдВрддрддрдГ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЯреВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП)ред рдХрдИ рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдкрд░, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рд╣рдореЗрд╢рд╛ рдЗрд╕ рдкрде рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ:
752F8188 push 0
752F818A push 0
752F818C push 0
752F818E push dword ptr [ebp+1Ch]
752F8191 push dword ptr [ebp+18h]
752F8194 push dword ptr [ebp+14h]
752F8197 push dword ptr [ebp+10h]
752F819A push dword ptr [ebp+0Ch]
752F819D push eax
752F819E call _LCMapStringEx@36 (752F81ACh)
рддрджрдиреБрд╕рд╛рд░, рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдпрд╣рд╛рдБ рд╡реЗ рд╕рднреА рд╕реНрдЯреИрдХ рдкрд░ (рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ) рдзрдХреЗрд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдирдХреА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдЭрдЯрдХрд╛ рд▓рдЧрд╛, рдФрд░ рдлрд┐рд░ рдЬрдмрдбрд╝реЗ рдХреА рдЕрдиреИрдЪреНрдЫрд┐рдХ рдЧрд┐рд░рд╛рд╡рдЯ рдФрд░ рдореБрдВрд╣ рд╕реЗ рдлреЛрдо рдХреЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП (рдкреНрд░рддреНрдпреЗрдХ) IChatMessage :: GetBody рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, LCPLAP_LOWERCASE рдзреНрд╡рдЬ ("рд▓реЛрдХреЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд▓реЛрдЕрд░рдХреЗрд╕ рдмрдирд╛рдПрдВ") рдХреЗ рд╕рд╛рде, # APPLICATIONCALLCHATMESSAGECHATMEMBERCHATGROUPSMSUSERVOICEMAIL рдбреЗрдЯрд╛ (рд▓реЛрдХреЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд▓реЛрдЕрд░рдХреЗрд╕ рдмрдирд╛рдПрдВ), рдЬрдмрдХрд┐ рд▓реЛрдХреЗрд▓ рдПрди-рдпреВрдПрд╕ рд╣реИред рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдорд╢реАрди рдореЗрдВ рдПрдХ рдЕрд▓рдЧ (рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднрд╛рд╖рд╛ рд╣реИ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрди-рдпреВрдПрд╕), рд▓реЗрдХрд┐рди рд╕рд╛рдзрд╛рд░рдг рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдмрд╕ рдпрд╣ рдбреЗрдЯрд╛ рдПрдХ рд▓рдВрдмреА рд▓рд╛рдЗрди рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдЫреЛрдЯреА рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди ...
рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ ред
рддрдм, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдЙрдиреНрдорд╛рдж рдХреЛ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╣рд┐рдВрджреВ рдХреЛ рдХреБрдЫ рд╕рдВрджреЗрд╣ рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХреЛ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрдорд╛рдВрдб рд▓рд╛рдирд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреНрд░реЗрдХ рдФрд░ рд╕рд┐рд╕реНрдХреЛрд▓реНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ? рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╢рд╛рдирджрд╛рд░ рдирд┐рд╡рд╛рд░рдХ рдЕрдиреБрдХреВрд▓рдиред рдФрд░ рдкреВрд░реА рддрд╛рд▓рд┐рдХрд╛ 0 рд╕реЗ 255 рддрдХ рд╕рдорд╛рд╡реЗрд╢реА LCMapStringEx рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрддреА рд╣реИ, рдлрд┐рд░ рд╕реЗ, рдкреНрд░рддрд┐ рдХреЙрд▓ рдПрдХ рдмрд╛рдЗрдЯред рдФрд░ рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ 2 рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлрд┐рд░ рд╢рд╛рдирджрд╛рд░ рдЕрдиреБрдХреВрд▓рди рдЬрд╛рд░реА рд╣реИред (рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд░рддреАрдп рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред) рдФрд░ рдлрд┐рд░, 0 рд╕реЗ 255 рддрдХ рдХреА рдкреВрд░реА рддрд╛рд▓рд┐рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрдбрд╝ рдЬрд╛рддреА рд╣реИ! рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдХреЛ рдЕрдм 3 рдмрд╛рд░ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИред рджреЛ рдХреНрд░реЛрдиреЛрдореАрдЯрд░ рд╕рдореБрджреНрд░ рдореЗрдВ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдпрд╛ рддреАрди рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, 1000 рд╕реЗ рдЕрдзрд┐рдХ LCMapStringEx рдкреНрд░рддреНрдпреЗрдХ [рд╕реЗрдВрд╕рд░реНрдб] рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП 1 (рдПрдХ) рд╕рдВрджреЗрд╢ рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ 1 рдмрд╛рдЗрдЯ рд▓рд╛рдЗрди рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╕рдВрджреЗрд╢ рдкрд╛рда рдХреЗ 5000 рд▓реЗрддрд╛ рд╣реИ рд╕реАрдкреАрдпреВ рдХреЗ 5-10 рд╕реЗрдХрдВрдбред рдпрд╣ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕реНрдХрд╛рдЗрдк COM рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХрд┐ рд╡рд░реНрддрдорд╛рди рдПрдХ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рднрд╛рдбрд╝ рдореЗрдВ рдЬрд╛рдУ, Skype рдПрдкреАрдЖрдИ рдХреЗ рдЕрдВрджрд░ рдмрдХрд╡рд╛рд╕ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдордЬрдмреВрдд рдкреЗрд╢реЗрд╡рд░ рд▓рд┐рдЦрдирд╛ред
рд╕рдорд╕реНрдпрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЗрди рдХреЙрд▓реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рди рдкрд░ skype4com.dll рдХреЛ рдкреИрдЪ рдХрд░рдирд╛ рдЖрд▓рд╕реА рд╣реИ (рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ LCMapString рдХрд┐рддрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рд╣реИ), рдФрд░ рджреВрд╕рд░рд╛ рдпрд╣ рдХрд┐ рдпрд╣ рднрдпрд╛рд╡рд╣ рд╣реИ (рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреАрдбрд╝реЗ рдЕрдЪрд╛рдирдХ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ)ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ 1 рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХреЗ рдмрд╣реБрдд рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рддреНрд╡рд░рд┐рдд рдирд┐рдХрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАрдЦ рдорд╛рдБрдЧрддрд╛ рд╣реИред рдПрдХ рд╕рд░рд▓ рддрдХрдиреАрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реИ: рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рд▓реЗрдВ, рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЬреЗрдПрдордкреА рдбрд╛рд▓реЗрдВ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдЬреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬрд╛рдо рд╣реЛ рдЧрдП рдереЗ рдФрд░ рдореВрд▓ рдПрдХ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдП рдереЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рддрдХрдиреАрдХ рдердХрд╛рдК рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЛрдбрд╛рдВрддрд░рдХ рдХрд▓рдо рдХреЗ рд╕рд╛рде рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЖрд▓рд╕реА рд╣реИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ! рдПрдордПрд╕ рд░рд┐рд╕рд░реНрдЪ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕реЛрдЪрд╛ рдФрд░ рдХрд┐рдпрд╛ред рдкреНрд░рдХреГрддрд┐ рдореЗрдВ,
рдбреЗрдЯреНрд░реЙрдЬрд╝ рдирд╛рдордХ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдЬреЛ рдмрд╕ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ .exe рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдкрдиреЗ DLL рд╕реЗ рдлрд╝реНрд▓рд╛рдИ рдкрд░ рдкреБрд╢ рдХрд░реЗрдВред рдЦреИрд░, рдореЗрд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП, рдбреАрдЯреЙрд░реНрд╕ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд C / C ++ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, simple.cpp рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд╣рдо рдПрдХ рдЬреАрд╡рд┐рдд рдордЬрджреВрд░реА (detours.h, syelog.lib, detoured.lib, detours.lib) рдкрд░ рд╣реБрдХ рдХрд░рддреЗ рд╣реИрдВ, рдХреЛрдб рдХреА 20 рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ ...
#define PROTO (LCID Locale, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest)
static int (WINAPI * TrueMap) PROTO = LCMapStringW;
int WINAPI MyMap PROTO
{
if (Locale==1033 && dwMapFlags==256 && cchSrc==1)
{
*lpDestStr++ = *lpSrcStr++;
*lpDestStr++ = 0;
return 1;
}
return TrueMap(Locale, dwMapFlags, lpSrcStr, cchSrc, lpDestStr, cchDest);
}
// ...
DetourRestoreAfterWith();
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)TrueMap, MyMap);
LONG error = DetourTransactionCommit();
if (error != NO_ERROR)
printf ( "error detouring LCMapStringW(); export might be slower (code=%d)\n", error );
// ...
exporting chat 100/7014...
exported 3925 events in 5.8 sec
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдореБрд╣рд╛рд╡рд░реЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ (!) рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рднреА рдХрд╛ рдмрд╛рдЗрдЯ-рдмрд╛рдп-рд▓рд╛рдЗрди рдЕрдиреБрд╡рд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ 3.1 рдЧреБрдирд╛ рддреЗрдЬ рдХрд░ рджрд┐рдпрд╛ред рдмреБрд░рд╛ рдирд╣реАрдВ, рдмреБрд░рд╛ рдирд╣реАрдВред рд╣рдо рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реИрдВ!

рддрд╕реНрд╡реАрд░ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдИ рд╣реИред рдЕрдм рдХрд░реНрдиреЗрд▓рдмреЗрд╕реЗрдбрд▓ рдХреЗрд╡рд▓ 20% рдЦрд╛рддрд╛ рд╣реИ, рдмрд╛рдХреА рдХреЛ рд╕реНрдХрд╛рдЗрдк 4 рдХреЙрдореЛрдбрд▓ рдХреЗ рдЕрдЬреНрдЮрд╛рдд рд╡рд┐рд▓реНрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЗрддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ GetDriveType рдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рднреАрдЦ рдорд╛рдБрдЧрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдбрд┐рд╕реНрдХ рдХреЗ рдкреНрд░рдХрд╛рд░ (рд░рд┐рдореВрд╡реЗрдмрд▓, рдиреЙрди-рд░рд┐рдореВрд╡реЗрдмрд▓, рд╕реАрдбреА-рд░реЛрдо, рд░реИрдо рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ) рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЗрд╕реЗ рд╣рдЬрд╛рд░реЛрдВ рдмрд╛рд░ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдФрд░ рдЫреЛрдЯреА рдЦреЛрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдЭреВрда рдмреЛрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрд╛рдлреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдлрд╝рдВрдХреНрд╢рди _GetDriveTypeW рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕рдВрдкреВрд░реНрдг рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП 1 (рдПрдХ) рд╕рдордп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рдзреНрдпрд╛рди рд╕реЗ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк 1000 рдЪреИрдЯ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ 100 рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордп рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ _GetStringTypeW рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЭреВрда рдирд╣реАрдВ рдмреЛрд▓рддрд╛ рд╣реИред _LCMapStringW рдХреЙрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рд╕рд░рд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди, рдЗрд╕рдХрд╛ рдореВрд▓ рдХрд╛рд░реНрдп GetStringTypeEx рднреА 0 рд╕реЗ 255 рддрдХ рд╣рд░ рдмрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рдЗрд╕ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░реЗрдЧрд╛)ред GetStringTypeEx рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдХреЗ рдФрд░ рдЕрдиреНрдп 20 рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдХреИрд╢ рд╕реЗ рд╕рд┐рдВрдЧрд▓-рдмрд╛рдЗрдЯ рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдПрдХ рдФрд░ 15% рддреНрд╡рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ 3.6 рдЧреБрдирд╛ред
exporting chat 100/7014...
exported 3925 events in 5.0 sec
рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж, рдХрд░реНрдиреЗрд▓рдмреЗрд╕ рдбреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╢реЗрд╖ рд╕рдордп рдХрд╛ 62% skype4com.dll рджреНрд╡рд╛рд░рд╛ рдЦрдкрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЕрдиреНрдп 12% ntdll.dll (рдЖрд╡рдВрдЯрди рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдЦреБрдж 8% рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдгрд╛рд▓реАрдЧрдд рд╕рд╛рдорд╛рди рдХреЛ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдХреА рдХреНрд╖рдорддрд╛ 3-5 рдЧреБрдирд╛ рдХрд╛рдлреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдордПрд╕рдбреАрдПрди рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рддреНрд╡рд░рд┐рдд рд╣реИ, рдФрд░ рдСрдлрд╢рд┐рдпрд╕ рд╕реНрдХрд╛рдЗрдкрдкреНрд░реЛрдХреЛрдореЙрдбрд▓ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдирд╣реАрдВ рд╣реИред рдФрд░ рдХрд╝реАрдорддреА 360 рд╣рдЬрд╝рд╛рд░ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 10 рдорд┐рдирдЯ рд╕реЗ рдХрдо рд╕рдордп рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
рдПрдХ рдЫреЛрдЯрд╛ рддрдХрдиреАрдХреА рд╕рд╛рд░рд╛рдВрд╢ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрд╕рдкрд╛рд╕ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реНрдХрд╛рдЗрдк рдЬреИрд╕реА рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрдВрдкрдирд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╡реЗ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ ... рдЬреИрд╕реЗ рдЬреАрд╡рд┐рдд рд▓реЛрдЧред рдХрднреА-рдХрднреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдзреАрдорд╛ рд╣реЛ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИрдВред рдмреНрд░реЗрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдмрд╕ рдХреБрдЫ рд╣реА рдШрдВрдЯреЗ рд▓рдЧреЗ, рдбреЗрдЯреНрд░реЙрдЗрдЯреНрд╕ рдХреЛ рдорд╛рд╣рд┐рд░ рдХрд░рдиреЗ (рдкрд╣рд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХреА) рд╕рд╣рд┐рддред рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдиреЛрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрд╛ред рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг, рдЬрдм рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдЯреЗ рдЪрдорддреНрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
... рдФрд░ Skype, рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХреЛ рдирд┐рдпрдорд┐рдд SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ SQLite рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдорд╛рдиреНрдп SQL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЦреЛрд▓рд╛ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдВрдкрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЗрддрд┐рд╣рд╛рд╕ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ? рдХреГрдкрдпрд╛ред рд╕рднреА рдХреЗ рд▓рд┐рдП, рд╕рд╣реА рдЧрд╣рд░рд╛рдИ рддрдХ (рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓рддреЗ рд╕рдордп Skype рдЦреБрдж рдХреЛ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)? рдЖрд╕рд╛рдиреА рд╕реЗред рдЫреАрди рд▓рд┐рдпрд╛ рдЖрдзрд╛рд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди? рдлрд┐рд░ рд╕реЗ рдПрдХ рдХреНрд▓рд┐рдХ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдФрд░ рд╣реИ, рд╕реА + + - рдиреИрдпрд╛ рдХрд╣рд╛рдиреА рдирд╣реАрдВ рд╣реИ;)
рдЖрдк рдХреЗ рд▓рд┐рдП рд╕рдлрд▓ рдЕрдиреБрдХреВрд▓рдиред