рдмреИрдХ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рд╕реАрдЬрд░ III

рдореБрдЭреЗ рдЧреЗрдо рдЦреЗрд▓рдирд╛ рдкрд╕рдВрдж рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд░реНрдерд┐рдХ рд░рдгрдиреАрддрд┐рдпреЛрдВ, рдореИрдВ рдмрдЪрдкрди рд╕реЗ рд╢рд╣рд░реА рд╡рд┐рдХрд╛рд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рд╕реАрдЬрд╝рд░ III, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЧрд░реНрдо рдФрд░ рджреАрдкрдХред рдЦреЗрд▓ рдХреЛ 1998 рдореЗрдВ рдЙрдирдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЫрд╛рдкреЗ рдЧрдП рдЦреЗрд▓ рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдЪреАрди рд░реЛрдорди рд╢рд╣рд░ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдПрдХ рдЖрд░реНрдерд┐рдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╣реИред рдХрдИ рд╕рд╛рд▓реЛрдВ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЦреЗрд▓ рдХрд╛ рдЖрдирдВрдж рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧреЗрдо рд▓реЙрдЬрд┐рдХ рдХреЛ рд╕рдордЭреЗрдВред



рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВ рдмрдирд╛рд╡рдЯ рдирд┐рдХрд╛рд▓рдиреЗ, рдЧреЗрдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдФрд░ рдХреИрд╕реЗ рдПрдХ рд╢реМрдХ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛ред рдФрд░ рдЗрд╕рдореЗрдВ RGB555 рдкреИрд▓реЗрдЯ, IDA, HexRays рдФрд░ рдХреБрдЫ рдХреЛрдб рднреА рд╣реЛрдВрдЧреЗред





рд╕рдВрдЧреАрдд

рдореИрдВрдиреЗ рд╕рдВрдЧреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдЧреЗрдо рдореЗрдВред Wav рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХ рдкрд░ рдХрд┐рд╕реА рд╕реЗ рднреА рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред



рдЧреНрд░рд╛рдлрд┐рдХреНрд╕



рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ (рдмрдирд╛рд╡рдЯ) рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдмрдирд╛рд╡рдЯ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрдИ рдЫрджреНрдо рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ редsg2 рдФрд░ -555 ред



рдПрдХреНрд╕рдЯреЗрдВрд╢рди .sg2 рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓, рдЪрд▓реЛ рдЗрд╕реЗ "рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛" рдХрд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдмрдирд╛рд╡рдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: рдЖрдпрд╛рдо, рдПрдЯрд▓рд╕ рдореЗрдВ рдСрдлрд╕реЗрдЯ, рдирд╛рдо рдФрд░ рд╕рдВрдЦреНрдпрд╛, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рд╡рд┐рднрд┐рдиреНрди рдЭрдВрдбреЗред



рдПрдХреНрд╕рдЯреЗрдВрд╢рди .555 рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓, рдЪрд▓реЛ рдЗрд╕реЗ "рдПрдЯрд▓рд╕" рдХрд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЫрд╡рд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рддреАрди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

- рд╕рд░рд▓ (рдмреАрдПрдордкреА)

- рд╕рдордорд┐рддреАрдп

- рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде

рдкреНрд░рддреНрдпреЗрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрдирд╛ "рд╕рдВрдкреАрдбрд╝рди" рдкреНрд░рд╛рд░реВрдк рд╣реЛрддрд╛ рд╣реИред "рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛" рдХрдИ рдПрдЯрд▓рд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ "рдПрдЯрд▓рд╕" рдХрд╛ рдирд╛рдо рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рдореВрд╣ рдХреЗ рдирд╛рдо рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд░рд▓ рдмрдирд╛рд╡рдЯ рдХреЛ рд░рдВрдЧреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, "рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг" рдореЗрдВ BGR555 рд░рдВрдЧ рдХреЛ 5 рдмрд┐рдЯ рдкреНрд░рддрд┐ рдЪреИрдирд▓ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ ARGB32 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕реАрдЬрд╝рд░ III рдореЗрдВ, рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╡рд╛рд▓реЗ рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдЦреЗрд▓ рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ (рдлрд┐рд░реМрди, рдХреНрд▓рд┐рдпреЛрдкреЗрдЯреНрд░рд╛, рдЖрджрд┐) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



C3.SG2 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЫрд╡рд┐ рд╕рдореВрд╣реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдЧрд▓рд╛ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,



рдЬрд┐рд╕рдореЗрдВ рекрек (n_images: 0x0000002C) рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ , рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдкрдард╛рд░ рд╣реИ , рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реВрдЪрдХрд╛рдВрдХ 201 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ (start_index: 0x000000C9)ред рдХреБрд▓ рдореЗрдВ "рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛" рдореЗрдВ 100 рдРрд╕реЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИред рд╕рдореВрд╣реЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рдж, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕реНрд╡рдпрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реБрдИ рд╣реИ, рд╡рд┐рд╖рдп-рд╡рд╕реНрддреБ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрдврд╝рдирд╛, рдирд┐рдЪреЛрдбрд╝рд╛ рд╣реБрдЖ рдмрдирд╛рд╡рдЯ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрдг рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ред рдпрд╣рд╛рдБ рдкрдард╛рд░ рд╕рдореВрд╣ рдХреЛ рдЦреЛрд▓рддреЗ рд╕рдордп рдХреНрдпрд╛ рд╣реБрдЖ





рджреЗрд╢реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдмрд┐рдирд╛, рдЬрд╣рд╛рдБ рддрдХ рдпрд╣ рдирд┐рдХрд▓рд╛, рдХреБрдЫ рдФрд░ рдмрд╣рд╛рд▓ рдкрд╛рда рд╣реИрдВред





рдФрд░ рдпрд╣рд╛рдБ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдмрдирд╛рд╡рдЯ рд╣реИрдВред





рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдмрдирд╛рд╡рдЯ рдХреЗ рдПрдЯрд▓рд╕ рдФрд░ рдЙрд╕рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд░рд▓рддрд╛, рдПрдХ рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдФрд░ рдереЛрдбрд╝рд╛ рднрд╛рдЧреНрдп рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рддреЛ рдпрд╣ рдмрдирд╛рд╡рдЯ рдмрд╣рд╛рд▓реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдФрд░ рдпрд╣рд╛рдБ рдЗрд▓рдлрд╝рд╛рдХ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдЖрдИрдбреАрдП рдбрд┐рдмрдЧрд░, рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЗрдХреНрд╕-рд░реЗрдЬ рдбрд┐рдХрдореНрдкреЗрд▓рд░ рдХреЗ рд╕рд╛рде рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рдо рдбрд┐рдмрдЧрд░ рдореЗрдВ c3.exe рдЦреЛрд▓рддреЗ рд╣реИрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд┐рддреНрд░ рдХрд╛ рдорддрд▓рдм рдЗрдВрджреНрд░рдзрдиреБрд╖ рдирд╣реАрдВ рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдЬрдм рдореИрдВ рдЬрд╛рд╡рд╛ (рдЬрд╛рд╡рд╛) рдпрд╛ рдкреНрд▓рд╕рд╕ (c ++) рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЕрдВрдзреЗрд░реЗ рдЬрдВрдЧрд▓ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдиреА рдЭрд╛рдбрд╝реА рд╣реИред





рдпрд╣рд╛рдБ, рд╕рд╛рджрд╛-рд╕реА рдЫрджреНрдо рдХреЛрдб рдХреЗ рд▓рд┐рдП asm рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА IDA рдХреА рдХреНрд╖рдорддрд╛ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреАред рд╣рдо F5 рджрдмрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдирд╡-рдкрдардиреАрдп рдХреЛрдб рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

ред



рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдЪрд░ рдХреЗ рд╕рд╛рде, рдФрд░ рдПрдХ рд╕рдВрд░рдЪрд┐рдд рд╕рдВрд░рдЪрдирд╛, рдФрд░ рд╢рд╛рдпрдж рд╕рдордЭрджрд╛рд░ рдкрд╛рдардХ рдиреЗ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдирд┐рдпрдорд┐рддрддрд╛ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рддреЛ рдЪрд▓рд┐рдП рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╣реИрдВред рдПрди рдмрдЯрди рджрдмрд╛рдПрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ, рдФрд░ рдХреЛрдб рдмрд╣реБрдд рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИред





рдФрд░ рдХреБрдЫ рд╕рдордп (рджрд┐рди, рд╕рдкреНрддрд╛рд╣, рдорд╣реАрдиреЗ, рдЖрджрд┐) рдХреЗ рдмрд╛рдж рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╣рдордд рд╣реИрдВ, рдЕрдм рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ

ред



рд╕реАрдЬрд╝рд░ III рдЧреЗрдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реА ++ 5.0 рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдбреАрдмрдЧрд░, рдбрд┐рдХрдореНрдкреЙрдЗрд▓рд░ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЧреНрд░реЗ рд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ

рдвреЗрд░ рд╕рд╛рд░рд╛ рдХреЛрдб
int __cdecl fun_drawGraphic(signed int graphicId, int xOffset, int yOffset) { int result; // eax@2 LONG v4; // [sp+50h] [bp-8h]@43 drawGraphic_graphicId = graphicId; drawGraphic_xOffset = xOffset; drawGraphic_yOffset = yOffset; if ( graphicId <= 0 ) return 0; if ( graphicId >= 10000 ) return 0; drawGraphic_fileOffset = c3_sg2[graphicId].offset; if ( drawGraphic_fileOffset <= 0 ) return 0; LOWORD(drawGraphic_width) = c3_sg2[graphicId].width; LOWORD(drawGraphic_height) = c3_sg2[graphicId].height; drawGraphic_type = c3_sg2[graphicId].type; graphic_xOffset = xOffset; graphic_yOffset = yOffset; drawGraphic_visiblePixelsClipX = (signed __int16)drawGraphic_width; if ( c3_sg2[graphicId].extern_flag && (signed __int16)drawGraphic_width <= ddraw_width ) { strcpy(drawGraphic_555file, &c3sg2_bitmaps[200 * c3_sg2[graphicId].bitmap_id]); j_fun_changeFileExtensionTo(drawGraphic_555file, &extension_555[4 * graphics_format_id]); if ( !j_fun_readDataFromFilename( drawGraphic_555file, screen_buffer, c3_sg2[graphicId].data_length, c3_sg2[graphicId].offset - 1) ) { j_fun_changeFileExtensionTo(drawGraphic_555file, "555"); if ( !j_fun_readDataFromFilename( drawGraphic_555file, screen_buffer, c3_sg2[graphicId].data_length, c3_sg2[graphicId].offset - 1) ) return 0; if ( c3_sg2[graphicId].compr_flag ) j_fun_convertCompressedGraphicToSurfaceFormat(screen_buffer, c3_sg2[graphicId].data_length); else j_fun_convertGraphicToSurfaceFormat(screen_buffer, c3_sg2[graphicId].data_length); } j_fun_setGraphicXClipCode(); j_fun_setGraphicYClipCode(); if ( drawGraphic_clipYCode == 5 ) return 0; if ( drawGraphic_type ) { if ( drawGraphic_clipYCode == 5 ) return 0; drawGraphic_fileOffset = 2 * (signed __int16)drawGraphic_width * drawGraphic_invisibleHeightClipTop; drawGraphic_fileOffset += 2 * drawGraphic_invisibleWidthClipLeft; if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicUncompressedClipLeft((char *)screen_buffer + drawGraphic_fileOffset); } else { if ( drawGraphic_clipXCode == 2 ) j_fun_drawGraphicUncompressedClipRight((char *)screen_buffer + drawGraphic_fileOffset); else j_fun_drawGraphicUncompressedClipY((char *)screen_buffer + drawGraphic_fileOffset); } } else { if ( c3_sg2[graphicId].compr_flag ) { if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicCompressedClipLeft((char *)screen_buffer); } else { if ( drawGraphic_clipXCode == 2 ) j_fun_drawGraphicCompressedClipRight((char *)screen_buffer); else j_fun_drawGraphicCompressedFull((char *)screen_buffer); } } else { drawGraphic_fileOffset = 2 * (signed __int16)drawGraphic_width * drawGraphic_invisibleHeightClipTop; drawGraphic_fileOffset += 2 * drawGraphic_invisibleWidthClipLeft; if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicUncompressedClipLeft((char *)screen_buffer + drawGraphic_fileOffset); } else { if ( drawGraphic_clipXCode == 2 ) j_fun_drawGraphicUncompressedClipRight((char *)screen_buffer + drawGraphic_fileOffset); else j_fun_drawGraphicUncompressedClipY((char *)screen_buffer + drawGraphic_fileOffset); } } } result = (signed __int16)drawGraphic_width; } else { if ( c3_sg2[graphicId].extern_flag ) { if ( window_id == 21 || window_id == 20 ) { drawGraphic_visiblePixelsClipX = fullscreenImage_width; drawGraphic_visiblePixelsClipY = fullscreenImage_height; drawGraphic_copyBytesInBufferForClipX = 2 * ((signed __int16)drawGraphic_width - drawGraphic_visiblePixelsClipX); drawGraphic_skipBytesInBufferForClipX = 2 * (ddraw_width - drawGraphic_visiblePixelsClipX); j_fun_drawGraphicUncompressedFull(&c3_555[2 * fullscreenImage_xOffset + 13000000] + 2 * (signed __int16)drawGraphic_width * fullscreenImage_yOffset); return drawGraphic_visiblePixelsClipX; } v4 = 2 * (signed __int16)drawGraphic_width * fullscreenImage_yOffset + 2 * fullscreenImage_xOffset; drawGraphic_visiblePixelsClipX = fullscreenImage_width; drawGraphic_visiblePixelsClipY = fullscreenImage_height; strcpy(drawGraphic_555file, &c3sg2_bitmaps[200 * c3_sg2[graphicId].bitmap_id]); j_fun_changeFileExtensionTo(drawGraphic_555file, &extension_555[4 * graphics_format_id]); if ( !j_fun_readUncompressedImageData( drawGraphic_555file, screen_buffer, 2 * drawGraphic_visiblePixelsClipX, drawGraphic_visiblePixelsClipY, v4) ) { j_fun_changeFileExtensionTo(drawGraphic_555file, "555"); if ( !j_fun_readUncompressedImageData( drawGraphic_555file, screen_buffer, 2 * drawGraphic_visiblePixelsClipX, drawGraphic_visiblePixelsClipY, v4) ) return 0; j_fun_convertGraphicToSurfaceFormat( screen_buffer, drawGraphic_visiblePixelsClipY * 2 * drawGraphic_visiblePixelsClipX); } drawGraphic_copyBytesInBufferForClipX = 0; drawGraphic_skipBytesInBufferForClipX = 0; j_fun_drawGraphicUncompressedFull((char *)screen_buffer); result = drawGraphic_visiblePixelsClipX; } else // internal { if ( (unsigned __int8)drawGraphic_type == 30 )// isometric { switch ( (signed __int16)drawGraphic_width ) { case 58: LOWORD(drawGraphic_height) = 30; break; case 26: LOWORD(drawGraphic_height) = 14; break; case 10: LOWORD(drawGraphic_height) = 6; break; default: if ( (signed __int16)drawGraphic_width == 118 ) return j_fun_drawBuildingFootprintSize2(); if ( (signed __int16)drawGraphic_width == 178 ) return j_fun_drawBuildingFootprintSize3(); if ( (signed __int16)drawGraphic_width == 238 ) return j_fun_drawBuildingFootprintSize4(); if ( (signed __int16)drawGraphic_width == 298 ) return j_fun_drawBuildingFootprintSize5(); break; } } j_fun_setGraphicXClipCode(); j_fun_setGraphicYClipCode(); if ( drawGraphic_clipYCode == 5 ) { result = 0; } else { if ( drawGraphic_type ) { if ( (unsigned __int8)drawGraphic_type == 30 ) { if ( drawGraphic_clipXCode == 1 ) { switch ( (signed __int16)drawGraphic_width ) { case 58: j_fun_drawBuildingFootprint_xClipRight(&c3_555[drawGraphic_fileOffset], drawGraphic_clipYCode); break; case 26: j_fun_drawBuildingFootprint_26px_xClipRight(); break; case 10: j_fun_drawBuildingFootprint_10px_xClipRight(); break; default: j_fun_drawGraphicUncompressedClipLeft(&c3_555[drawGraphic_fileOffset]); break; } } else { if ( drawGraphic_clipXCode == 2 ) { switch ( (signed __int16)drawGraphic_width ) { case 58: j_fun_drawBuildingFootprint_xClipLeft(&c3_555[drawGraphic_fileOffset], drawGraphic_clipYCode); break; case 26: j_fun_drawBuildingFootprint_26px_xClipLeft(); break; case 10: j_fun_drawBuildingFootprint_10px_xClipLeft(); break; default: j_fun_drawGraphicUncompressedClipRight(&c3_555[drawGraphic_fileOffset]); break; } } else { switch ( (signed __int16)drawGraphic_width ) { case 58: j_fun_drawBuildingFootprint_xFull(&c3_555[drawGraphic_fileOffset], drawGraphic_clipYCode); break; case 26: j_fun_drawBuildingFootprint_26px_xFull(); break; case 10: j_fun_drawBuildingFootprint_10px_xFull(); break; default: j_fun_drawGraphicUncompressedClipY(&c3_555[drawGraphic_fileOffset]); break; } } } } else { if ( (unsigned __int8)drawGraphic_type == 13 && drawGraphic_clipXCode ) { j_fun_drawImage_32x32((int *)&c3_555[drawGraphic_fileOffset]); } else { if ( (unsigned __int8)drawGraphic_type == 12 && drawGraphic_clipXCode ) { j_fun_drawImage_24x24((int *)&c3_555[drawGraphic_fileOffset]); } else { if ( (unsigned __int8)drawGraphic_type == 10 && drawGraphic_clipXCode ) { j_fun_drawImage_16x16((int *)&c3_555[drawGraphic_fileOffset]); } else { if ( (unsigned __int8)drawGraphic_type == 2 && drawGraphic_clipXCode ) { j_fun_drawGraphicType2(&c3_555[drawGraphic_fileOffset]); } else { if ( (unsigned __int8)drawGraphic_type == 20 ) { if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicLetterColoredClipLeft(&c3_555[drawGraphic_fileOffset]); } else { if ( drawGraphic_clipXCode == 2 ) j_fun_drawGraphicLetterColoredClipRight(&c3_555[drawGraphic_fileOffset]); else j_fun_drawGraphicLetterColoredFull(&c3_555[drawGraphic_fileOffset]); } } else { drawGraphic_fileOffset += 2 * (signed __int16)drawGraphic_width * drawGraphic_invisibleHeightClipTop; drawGraphic_fileOffset += 2 * drawGraphic_invisibleWidthClipLeft; if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicUncompressedClipLeft(&c3_555[drawGraphic_fileOffset]); } else { if ( drawGraphic_clipXCode == 2 ) { j_fun_drawGraphicUncompressedClipRight(&c3_555[drawGraphic_fileOffset]); } else { if ( drawGraphic_clipYCode ) j_fun_drawGraphicUncompressedClipY(&c3_555[drawGraphic_fileOffset]); else j_fun_drawGraphicUncompressedFull(&c3_555[drawGraphic_fileOffset]); } } } } } } } } } else // type == 0 { if ( c3_sg2[graphicId].compr_flag ) { if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicCompressedClipLeft(&c3_555[drawGraphic_fileOffset]); } else { if ( drawGraphic_clipXCode == 2 ) j_fun_drawGraphicCompressedClipRight(&c3_555[drawGraphic_fileOffset]); else j_fun_drawGraphicCompressedFull(&c3_555[drawGraphic_fileOffset]); } if ( drawGraphic_colorMask ) { if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicCompressedColorMaskClipLeft(&c3_555[drawGraphic_fileOffset], drawGraphic_colorMask); } else { if ( drawGraphic_clipXCode == 2 ) j_fun_drawGraphicCompressedColorMaskClipRight(&c3_555[drawGraphic_fileOffset], drawGraphic_colorMask); else j_fun_drawGraphicCompressedColorMaskFull(&c3_555[drawGraphic_fileOffset], drawGraphic_colorMask); } } } else // not compressed { drawGraphic_fileOffset += 2 * (signed __int16)drawGraphic_width * drawGraphic_invisibleHeightClipTop; drawGraphic_fileOffset += 2 * drawGraphic_invisibleWidthClipLeft; if ( drawGraphic_clipXCode == 1 ) { j_fun_drawGraphicUncompressedClipLeft(&c3_555[drawGraphic_fileOffset]); } else { if ( drawGraphic_clipXCode == 2 ) j_fun_drawGraphicUncompressedClipRight(&c3_555[drawGraphic_fileOffset]); else j_fun_drawGraphicUncompressedClipY(&c3_555[drawGraphic_fileOffset]); } } } result = drawGraphic_visiblePixelsClipX; } } } return result; }
      
      







рдЗрд╕ рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдЬреЛ рдЧреЗрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрдирд╛рд╡рдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред



рд╢реМрдХ

рдпрд╣ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЦреЗрд▓ рдХреЗ рдмреИрдХ-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ))) рдЦреЗрд▓ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЬреБрдиреВрди рдкрд╣рд▓реЗ рдХрдИ рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрдврд╝рд╛, рдЬреЛ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рдЦреЗрд▓ рдХреЗ рдкреВрд░реНрдг-рд░реАрдореЗрдХ рд░реАрдореЗрдХ рдореЗрдВ ред

рдпрджрд┐ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдФрд░ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдореВрд▓ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред



рд░реАрдореЗрдХ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреНрдпрд╛ рд╣реИрдВ

+ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рднреВрд▓ рдЧрдП рдЦреЗрд▓ рдЦреЗрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдВ рдФрд░ рди рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рддред

+ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рд╕реАрдЬрд╝рд░ III рдЦреЗрд▓реЗрдВ, рдПрдХ рд╢рд░рд╛рдм рдХреЗ рд╕рд╛рде рдиреГрддреНрдп, рд╢рд░рд╛рдм рдХреЗ рддрд╣рдд рдЦреЗрд▓ рдХреЗ рд╢реБрднрд╛рд░рдВрдн рдХреЗ рд╕рд╛рде рдЙрдкрджреНрд░рд╡, рд╡рд░реНрддрдорд╛рди рдореЗрдВ 800x600 рдХрд╛ рдЬрдВрдЧрд▓реА рд╕рдВрдХрд▓реНрдкред

+ рдмрдирд╛рд╡рдЯ, рдлреЛрдВрдЯ рдФрд░ рдЦреЗрд▓ рдХреА рдЧрддрд┐ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ред

+ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ - рдореБрдЭреЗ рдЦреЗрд▓ рдЦреЗрд▓рдирд╛ рдкрд╕рдВрдж рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд░реНрдерд┐рдХ рд╡рд╛рд▓реЗ, рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдЬрдм рдЦреЗрд▓ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ, рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЧреЗрдо рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░реАрдореЗрдХ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реВрдВ, рдЧреНрд▓рд┐рдЯреНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рд╢реЗрд╖ рдХреЛ рдЕрдзрд┐рдХрддрдо рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ рдЖрдкрдХреА рдЙрдореНрдореАрдж рд╕реЗ рдереЛрдбрд╝рд╛ рдЦрд░рд╛рдм рд╣реЛрддрд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЕрдкрдиреА рдЦреБрдж рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

+ рдЕрдВрдд рдореЗрдВ рдЙрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЧреЗрдо рдХреЛ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕рдХреА рдореЗрд░реЗ рдмрдЪрдкрди рдореЗрдВ рдХрдореА рдереАред

+ рдЯреЗрдмрд▓реЗрдЯ рдкрд░, рдЯреНрд░реИрдлрд┐рдХ рдЬрд╛рдо рдореЗрдВ рдЦрдбрд╝реЗ рдмрд░реНрдмрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреАрдЯрддреЗ рд╣реИрдВ - рдЦреЗрдд рдХреЛ рджрд╛рди рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдкред

+ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ, рди рдХреЗрд╡рд▓ рд░реВрд╕реА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдлреНрд░реЗрдВрдЪ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ред



рдХреЙрдкреАрд░рд╛рдЗрдЯ рдХрд╛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ

рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

1. рд╕реНрдХреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╣рдорд╛рд░рд╛ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╕рднреНрдп рд▓реЛрдЧ рд╣реИрдВ, рд╣рдо рдореВрд▓ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрдореЗрдХ рдкрд░ рдЬрдмрд░рджрд╕реНрдд рд╕рдордп рдмрд┐рддрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЦрддреНрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

2. рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдзрд╛рд░рдХ рдХреЛ рд▓рд┐рдЦреЗрдВ рдФрд░ рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдкреВрдЫреЗрдВ (рдореМрдЦрд┐рдХ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдпрд╛ рдПрдХ рдмреНрд░рд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐, "рдХрд╛рдЧрдЬ рдкрд░", рдЖрджрд┐)ред рдпрд╣ рдФрд░ рднреА рдмрджрддрд░ рд╣реИ, рд╕рднреНрдп рд▓реЗрдЦрдХ, рдпрд╛ рдЕрдзрд┐рдХрд╛рд░ рдзрд╛рд░рдХ (рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рд╕рдХреНрд░рд┐рдпрддрд╛ рд╣реИ), рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдЦрд┐рд░реА рддрдХ рдЙрди рдкрд░ рдкрдХрдбрд╝ рд░рдЦрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЦреЗрд▓ рдПрдХ рд▓рд╛рдн рди рд╣реЛред рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ - рдлрд┐рд░ рдХреЛрдИ рд░реАрдореЗрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдмрд┐рдВрджреБред

3. рдЧреЗрдо рдХреЛ рдПрдХ рдореЙрдб рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦреЗрдВ, рдЬрд┐рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓ рдЧреЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ GOG.com рдкрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЦрд░реАрджреА рдЧрдИ рдПрдХ рдзрд╛рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Corsix TH рдиреЗ рдереАрдо рд╣реЙрд╕реНрдкрд┐рдЯрд▓ рдХрд╛ рд░реАрдореЗрдХ рдЬрд╛рд░реА рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИред рд╕рдмрд╕реЗ рдиреНрдпрд╛рдпрд╕рдВрдЧрдд рдФрд░ рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ ...



рдкреБрд░рд╛рдиреЗ рдЦреЗрд▓ рдХрд╛ рдорддрд▓рдм рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рдХрдИ рдкреБрд░рд╛рдиреЗ рдЦреЗрд▓, рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдзреВрд▓ рдЙрдбрд╝рд╛рддреЗ рд╣реИрдВ, рд╕рд╛рдл, рдЪрд┐рдХрдирд╛ рдФрд░ рдЧреЛрдВрдж ... рдпреЗ рдЖрдзреБрдирд┐рдХ рдЦрд┐рд▓реМрдиреЗ рдХрдИ рдЖрдзреБрдирд┐рдХ рд╢рд┐рд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд▓реНрдЯ рдореЗрдВ рднрд░ рджрд┐рдП рдЧрдП рд╣реИрдВред
рд╡рджрд┐рдо рдмрд▓рд╛рд╢реЛрд╡



рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!



рдкреБрдирд╢реНрдЪ


рд░реАрдореЗрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред

Bianca van Schaik (http://pecunia.nerdcamp.net/), рдореВрд▓ рдЦреЗрд▓ рдХреА рдмреИрдХ-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ

рдЧреНрд░реЗрдЧреЛрдЗрд░реЗ рдЕрдерд╛рдирд╛рд╕реЗ (http://sourceforge.net/projects/opencaesar3/), рд░реЗрдВрдбрд░ рдФрд░ рдХрдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓реЗрдЦрдХ

рдЬреЙрд░реНрдЬ рдЧрд╛рд▓ (https://github.com/gecube/opencaesar3) рдмреИрдХ-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреА рдмрдЪрдд

рдФрд░ рдХрдИ рдЕрдиреНрдп рдХрдорд┐рдЯрд░реНрд╕




UPD1ред рдпрджрд┐ рдЖрдк рдЗрд╕ рдЧреЗрдо рдХреЗ рдмреИрдХ-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ (exe + idb), рддреЛ рдореЗрд▓ рдпрд╛ рдкреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд╡рд┐рд╖рдп рдХреЛ "рдЧреНрд░реЗ рдХрд╛рдиреВрдиреА рдХреНрд╖реЗрддреНрд░" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЦреЗрд▓ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдИрдбреАрдП 5.5 + рд╣реЗрдХреНрд╕-рд░реЗрдЬ 1.01 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Bianca van Schaik (http://caesar.biancavanschaik.nl/) рд╕реЗ рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реАред



UPD2ред рдпрд╣ рдкреЛрд╕реНрдЯ рд▓рд┐рдирдХреНрд╕ рд╣рдм рдореЗрдВ рдХреНрдпреЛрдВ рдЖрдпрд╛ред OllyDbg u IDA Win7 рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, QtCreator 3.0.1 + cmake + gcc 4.8 рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЧреЗрдо рдореВрд▓ рд░реВрдк рд╕реЗ linux рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП, mingw-w64 рдХреНрд░реЙрд╕-рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, MacOSX рдФрд░ рд╣рд╛рдЗрдХреВ рдХреЗ рд▓рд┐рдП, рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Android рдХреЗ рд▓рд┐рдП рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, libsdl-android рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред



All Articles