Topleaked: рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг

рдЫрд╡рд┐

рдХрд╣рд╛рдиреА, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рд╣реБрдИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЧрд┐рд░ рдЧрдИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдЯреЙрдХ рдХрдИ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЗрдореЛрд░реА рд▓реАрдХ рд╣реИред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрдг рдореЗрдореЛрд░реА рдбрдВрдк рд╣реИ, рд▓реЙрдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рддреЛ рд░рд┐рд╕рд╛рд╡ рдмреЗрд╣рдж рдзреАрдорд╛ рд╣реИ, рдпрд╛ рдкрд░рд┐рджреГрд╢реНрдп рдордВрдЧрд▓ рдкрд░ рдореМрд╕рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рдПрдХ рдФрд░ рдмрдЧ рдЬреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдВрдЧрд▓реА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реБрд░рд╛рдЧ рд░рд╣рддрд╛ рд╣реИ - рдПрдХ рдореЗрдореЛрд░реА рдбрдВрдкред


рд╡рд┐рдЪрд╛рд░


рдореВрд▓ рд╕реЗрд╡рд╛ рд╕реА ++ рдФрд░ рдкрд░реНрд▓ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рддрд╛ рд╣реИред рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред


рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдпрд╛рди рд╕реЗ рд╣рдорд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реМ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд░реИрдо рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдереА, рдФрд░ 6 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рд╣реБрдИ рдереАред рддреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рдЙрдирдХрд╛ рдбреЗрдЯрд╛ рд▓реАрдХ рд╣реЛрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдереАрдВред рдмреЗрд╢рдХ, рдбрдВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреА рдХреЛрдИ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИред рд░рд┐рд╢реНрддреЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдФрд░ рдХрдЪрд░рд╛ рдмреАрдирдиреЗ рд╡рд╛рд▓реЛрдВ рдЬреИрд╕рд╛ рдЧреНрд░рд╛рдл рдмрдирд╛рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдЗрдирд░реА рд╣реИрд╢ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реА рд╡рд╕реНрддреБрдПрдВ рдЕрдзрд┐рдХ рд╣реИрдВред рдЧреИрд░-рддреБрдЪреНрдЫ рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЖрднрд╛рд╕реА рддрд░реАрдХреЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдПрдХ рд╣реА рд╕реВрдЪрдХ рд╣реЛрддрд╛ рд╣реИред рд╕реНрдореГрддрд┐ рдореЗрдВ vtbl рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ рдХрд┐рддрдиреА рдмрд╛рд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред


Vtbl рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рдЕрдХреНрд╕рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреНрд░рдо рд╣реЛрддреЗ рд╣реИрдВ: рд╕реНрдерд┐рд░рд╛рдВрдХ рдЬреЛ рдлрд╝реАрд▓реНрдб рдХреЛ рдЖрд░рдореНрдн рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЗрдбрд░ рдореЗрдВ HTTP рд╣реЗрдбрд░, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░реНрд╕ред
рдпрджрд┐ рд╣рдо рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП gdb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдмреЗрдЯ рд╡рд░реНрдг рдирд╣реАрдВ рд╣реИрдВ)ред рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдФрд░ рдПрдХ рдФрд░, рдПрдХ рд▓рд╛рдЗрди рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╕реЗ, рдпрд╣ рд╕рдордЭрдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЖрдЧреЗ рдХрд╣рд╛рдВ рдЦреЛрджрдирд╛ рд╣реИред


рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреА рдЬрд╛рд╕реВрд╕реА рдХреА рдЧрдИ рдереА, рдФрд░ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред https://stackoverflow.com/questions/7439170/is-there-a-way-to-find-leaked-memory-using-a-core-file


hexdump core.10639 | awk '{printf "%s%s%s%s\n%s%s%s%s\n", $5,$4,$3,$2,$9,$8,$7,$6}' | sort | uniq -c | sort -nr | head 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рд╣рдорд╛рд░реЗ рдбрдВрдк рдкрд░ рд▓рдЧрднрдЧ 15 рдорд┐рдирдЯ рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓реМрдЯрд╛рдпрд╛, рдФрд░ ... рдХреБрдЫ рднреА рдирд╣реАрдВред рдПрдХ рднреА рд╕реВрдЪрдХ рдирд╣реАрдВ, рдЙрдкрдпреЛрдЧреА рдХреБрдЫ рднреА рдирд╣реАрдВред


рдЫрдВрдЯрдиреА рд╣реБрдИ


Stackoverflow- рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЗрд╕рдХреА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВред рдЖрдк рдХреЗрд╡рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд▓рд┐рдкрд┐ рдореЗрдВ, рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд╛ рддреБрд░рдВрдд рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддреА рд╣реИред рд╕рд╡рд╛рд▓ рдпрд╣ рднреА рдЙрдарддрд╛ рд╣реИ, рдХреНрдпреЛрдВ 4 рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрдиред рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдкрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ: рдмрд┐рдЯрдиреЗрд╕ рдФрд░ рдмрд╛рдЗрдЯ рдСрд░реНрдбрд░ред


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рджреЗрдЦрдирд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рдбрдВрдк, LITTLE- рдФрд░ BIG-endian рдХреЗ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдкрд╛рдП рдЧрдП рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬреАрдбреАрдмреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЕрд░реЗ рдЪрдорддреНрдХрд╛рд░! рдкреНрд░рддреНрдпрдХреНрд╖ рдХреНрд░рдо рдореЗрдВ, рдЬреАрдбреАрдмреА рдмрд╛рдЗрдЯ рдЪрд░рд┐рддреНрд░ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕реВрдЪрдХ рд╣реИ!


рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдУрдкрдирд╕реЗрд▓ рдмрдлрд░ рдореЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдерд╛ред рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдУрдкреА рд╕рд┐рд╕реНрдЯрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдВрджреБ рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдпрд╛ рдмрд▓реНрдХрд┐ vtbl рд╣реИред рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдпреЗ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдмрд╣реБрдд рд╕реЗ рдкрд╛рдЧрд▓рдкрди рд╡рд╛рд▓реА рдирд┐рдХрд▓реАрдВред рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдлрд╝рд░реНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдкрд░ рдПрдХ рдХрд░реАрдмреА рдирдЬрд╝рд░ рд╣рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕реА ++ рдФрд░ рд╕реА рдХреЗ рдЬрдВрдХреНрд╢рди рдкрд░ рдЖрд░рдПрдЖрдИрдЖрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдереЗ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╢реБрд░реБрдЖрддреА рд░рд┐рдЯрд░реНрди рдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ред рдХрд┐рд╕реА рдиреЗ рд╕рдордп рдкрд░ рдЧрд▓рдд ssl рд╣реИрдВрдбрд╢реЗрдХ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЗрд╕рд╕реЗ рдЪреВрдХ рдЧрдПред рдЧрд▓рдд ssl рд╣реИрдВрдбрд╢реЗрдХ рдХреЗ 6 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреИрд╕реЗ рдбрд╛рдпрд▓ рдХрд░реЗрдВ рдпрд╣ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред


topleaked


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


рд╕реНрдерд╛рдкрдирд╛


рдХреЛрдИ рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓рд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛ рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреАрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: dmd рд╕рдВрджрд░реНрдн рд╕рдВрдХрд▓рдХ рд╣реИ, ldc llvm рдФрд░ gdc рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ gcc рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг 9 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╡реАрдирддрдо gcc рд╣реИ рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ ldc рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред рдЗрди рддреАрдиреЛрдВ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдбрдм рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде topleaked рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


 dub fetch topleaked 

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:


 dub run topleaked -brelease-nobounds -- <filename> [<options>...] 

рдбрдм рд░рди рдФрд░ brelease-nobounds рд╕рдВрдХрд▓рдХ рддрд░реНрдХ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЖрдк рдЧреАрдереВрдм рд╕реЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 dub build -brelease-nobounds 

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдЯреЛрд▓рдкреЗрдХ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


рдХреЗ рдЙрдкрдпреЛрдЧ


рдЪрд▓реЛ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЗрддреЗ рд╣реИрдВред


 #include <iostream> #include <assert.h> #include <unistd.h> class A { size_t val = 12345678910; virtual ~A(){} }; int main() { for (size_t i =0; i < 1000000; i++) { new A(); } std::cout << getpid() << std::endl; sleep(200); } 

рд╣рдо рдЗрд╕реЗ рдорд╛рд░ -6 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╣рдореЗрдВ рдореЗрдореЛрд░реА рдбрдВрдк рдорд┐рд▓рддреА рд╣реИред рдЕрдм рдЖрдк topleaked рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ

 ./toleaked -n10 leak.core 

-N рд╡рд┐рдХрд▓реНрдк рдЙрд╕ рд╢реАрд░реНрд╖ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, 10 рдФрд░ 200 рдХреЗ рдмреАрдЪ рдХрд╛ рдореВрд▓реНрдп рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ "рдХрдЪрд░рд╛" рдХрд┐рддрдирд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐-рджрд░-рдкрдВрдХреНрддрд┐ рд╢реАрд░реНрд╖ рд╣реИред


 0x0000000000000000 : 1050347 0x0000000000000021 : 1000003 0x00000002dfdc1c3e : 1000000 0x0000558087922d90 : 1000000 0x0000000000000002 : 198 0x0000000000000001 : 180 0x00007f4247c6a000 : 164 0x0000000000000008 : 160 0x00007f4247c5c438 : 153 0xffffffffffffffff : 141 

рдпрд╣ рдмрд╣реБрдд рдХрдо рдЙрдкрдпреЛрдЧ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╣рдо рд╕рдВрдЦреНрдпрд╛ 0x2dfdc1c3e рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ 12345678910 рднреА рд╣реИ, рдЬреЛ рдПрдХ рд▓рд╛рдЦ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд▓реАрдХ рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдЦреБрд▓реЗ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде gdb рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдХреЗрд╡рд▓ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдХреЗ рдЬреАрдбреАрдмреА рдХреЛ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред -ogdb - рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп gdb рдореЗрдВ рдкреНрд░рд╛рд░реВрдк рдмрджрд▓рдирд╛ред


 $ ./topleaked -n10 -ogdb /home/core/leak.1002.core | gdb leak /home/core/leak.1002.core ...<   gdb  > #0 0x00007f424784e6f4 in __GI___nanosleep (requested_time=requested_time@entry=0x7ffcfffedb50, remaining=remaining@entry=0x7ffcfffedb50) at ../sysdeps/unix/sysv/linux/nanosleep.c:28 28 ../sysdeps/unix/sysv/linux/nanosleep.c: No such file or directory. (gdb) $1 = 1050347 (gdb) 0x0: Cannot access memory at address 0x0 (gdb) No symbol matches 0x0000000000000000. (gdb) $2 = 1000003 (gdb) 0x21: Cannot access memory at address 0x21 (gdb) No symbol matches 0x0000000000000021. (gdb) $3 = 1000000 (gdb) 0x2dfdc1c3e: Cannot access memory at address 0x2dfdc1c3e (gdb) No symbol matches 0x00000002dfdc1c3e. (gdb) $4 = 1000000 (gdb) 0x558087922d90 <_ZTV1A+16>: 0x87721bfa (gdb) vtable for A + 16 in section .data.rel.ro of /home/g.smorkalov/dlang/topleaked/leak (gdb) $5 = 198 (gdb) 0x2: Cannot access memory at address 0x2 (gdb) No symbol matches 0x0000000000000002. (gdb) $6 = 180 (gdb) 0x1: Cannot access memory at address 0x1 (gdb) No symbol matches 0x0000000000000001. (gdb) $7 = 164 (gdb) 0x7f4247c6a000: 0x47ae6000 (gdb) No symbol matches 0x00007f4247c6a000. (gdb) $8 = 160 (gdb) 0x8: Cannot access memory at address 0x8 (gdb) No symbol matches 0x0000000000000008. (gdb) $9 = 153 (gdb) 0x7f4247c5c438 <_ZTVN10__cxxabiv120__si_class_type_infoE+16>: 0x47b79660 (gdb) vtable for __cxxabiv1::__si_class_type_info + 16 in section .data.rel.ro of /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (gdb) $10 = 141 (gdb) 0xffffffffffffffff: Cannot access memory at address 0xffffffffffffffff (gdb) No symbol matches 0xffffffffffffffff. (gdb) quit 

рдкрдврд╝рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡ рд╣реИред рдлреЙрд░реНрдо рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ $ 4 = 1,000,000 рд╢реАрд░реНрд╖ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдФрд░ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИрдВред рдиреАрдЪреЗ рдорд╛рди рдХреЗ рд▓рд┐рдП x рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рддреАрдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ A рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдПрдХ рд▓рд╛рдЦ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрдХреНрд╖рд╛ A рдХреА рдПрдХ рд▓рд╛рдЦ рд▓реАрдХреНрдб рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ рдХреЗ рднрд╛рдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ), рдСрдлрд╕реЗрдЯ рдФрд░ рд╕реАрдорд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ - рдЬрд╣рд╛рдВ рд╕реЗ рдФрд░ рдХрд┐рддрдиреЗ рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред


рдкрд░рд┐рдгрд╛рдо


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


-Ddb рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ gdb рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди, рд╣рдо рддреБрд░рдВрдд рдирд╛рдо рдФрд░ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рднреА, рдпрджрд┐ рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВред


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


D рднрд╛рд╖рд╛


рдореИрдВ рдбреА рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рд╕рдВрд╕реНрдХрд░рдг рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдм рддрдХ рдореБрдЦреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗрд╡рд▓ рддреАрди рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрддрд╛ рд╣реИ:


 auto all = input.sort; ValCount[] res = new ValCount[min(all.length, maxSize)]; return all.group.map!((p) => ValCount(p[0],p[1])) .topNCopy!"a.count>b.count"(res, Yes.sortOutput); 

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


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


рдлрд┐рд▓рд╣рд╛рд▓ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, --find рдЭрдВрдбрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬреЛ рдЖрд╡реГрддреНрддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЯреНрд░рд┐рдлрд╝рд▓ рдХреЗ рдХрд╛рд░рдг, рдХреЛрдб рдореЗрдВ рдЖрдХрд╛рд░ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА рдФрд░ рдХреЛрдб рдЕрдкрдиреЗ рдореВрд▓ рд╕рд░рд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╢реНрд░рдо рд▓рд╛рдЧрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддреБрд▓рдиреАрдп рд╣реИ, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рддрдХ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ C рдФрд░ D рдореЗрдВ рд╕рдорд╛рди рдХреЛрдб рд╕рдорд╛рди рдЧрддрд┐ рд╕реЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред


рд╕рдВрдХреЗрдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдорддрднреЗрдж


  • Topleaked рдХреЛ рд▓реАрдХ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдбрдВрдк рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдХреЗ рддрд╣рдд рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
  • рдпрд╣ рдПрдХ рдФрд░ рд╡реИрдз рдирд╣реАрдВ рд╣реИ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  • рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдкрд╡рд╛рдж рдЕрд╕реНрдерд╛рдпреА рд▓реАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИ (рдЬрдм рд╕рд░реНрд╡рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)ред рдлрд┐рд░ рдЖрдк рд╕рд╣реА рд╕рдордп рдкрд░ рдбрдВрдк рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд▓рдЧреНрд░рд┐рдВрдб рдпрд╛ рдЖрд╕рди, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдХрд╛рдо рдХрд░рдирд╛, рдЗрд╕реЗ рдФрд░ рднреА рдмрджрддрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • рдХреЗрд╡рд▓ 64-рдмрд┐рдЯ рдореЛрдбред рдЕрдиреНрдп рдмрд┐рдЯреНрд╕ рдФрд░ рдмрд╛рдЗрдЯ рдСрд░реНрдбрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬреНрдЮрд╛рдд рдореБрджреНрджреЗ


рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдбрдВрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрдХреЗрдд рднреЗрдЬрдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗред рдРрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рдПрдХ рдбрдВрдк рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ gcore рдХрдорд╛рдВрдб рдХреБрдЫ рдЕрдиреНрдп ELF рд╣реЗрдбрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреА рднрд░рдкрд╛рдИ рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 8 рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрд░реНрдерд╣реАрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рдСрдлрд╕реЗрдЯ рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдСрдлрд╕реЗрдЯ рдмрд╛рдЗрдЯреНрд╕ (рдЖрдорддреМрд░ рдкрд░ 4) рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реНрдЯрдб рд╕реЗ objdump -s рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрдврд╝рдиреЗ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдареАрдХ рд╣реИ, рдпрд╛ рддреЛ рдкрд░рд┐рд╡рд╛рдж рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ "рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо" рдХреЛ рдорд╛рд░ рджреЗрдЧрд╛, рдФрд░ рд╕реНрдЯрдбрдЖрдЙрдЯ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдФрд░ рдпреВрдирд┐рдХреНрд╕ рд░рд╛рд╕реНрддреЗ рдХреЗ рдХрд░реАрдм рд╣реИред


рд╕рдВрджрд░реНрдн


рдЬреАрдердм рдкреНрд░реЛрдЬреЗрдХреНрдЯ
рд╕рдВрдХрд▓рдХ рдбреА
рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдореВрд▓ рдкреНрд░рд╢реНрди

Source: https://habr.com/ru/post/hi485102/


All Articles