{"id":260640,"date":"2015-07-03T14:19:02","date_gmt":"2015-07-03T10:19:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=260640"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=260640","title":{"rendered":"\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 Skype \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u0438 \u0435\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b"},"content":{"rendered":"<p>             \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u042f \u0437\u043d\u0430\u043a\u043e\u043c \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u043c\u0438 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 Skype. \u0417\u043d\u0430\u044e \u043e skypeopensource, \u0437\u043d\u0430\u044e \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0430 FakeSkype \u0438 \u0442.\u0434. <\/p>\n<p>  \u041f\u043e\u0434\u0445\u043e\u0434\u044b \u043c\u043d\u0435 \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c.<\/p>\n<p>  \u041a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435<br \/>  \u041a\u0430\u043a\u0438\u0435-\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<br \/>  \u0413\u0434\u0435-\u0442\u043e \u0447\u0442\u043e-\u0442\u043e<br \/>  \u041a\u0430\u043a-\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c<br \/>  \u042d\u0442\u043e \u043d\u0435 \u043c\u043e\u0439 \u043f\u0443\u0442\u044c<\/p>\n<p>  \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0430 \u043d\u0435 \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u044f \u043f\u0440\u043e\u0448\u0435\u043b \u0435\u0433\u043e \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0422\u0430\u043a \u0436\u0435 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043d\u0438 \u043e\u043f\u0440\u043e\u0432\u0435\u0440\u0433\u0430\u0442\u044c, \u043d\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c \u0441\u0445\u043e\u0436\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432. \u0414\u043b\u044f \u0441\u0435\u0431\u044f \u044f \u0441\u043c\u043e\u0433 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c Skype \u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e, \u043d\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c. <br \/>  <a name=\"habracut\"><\/a><br \/>  \u0418\u0442\u0430\u043a, \u0441\u0432\u043e\u0439 \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u044f \u043d\u0430\u0447\u0430\u043b \u043d\u0435 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Skype \u0432 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438\u043b\u0438 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a, \u0430 \u0441 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c web.archve.org, \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u043b \u043d\u0430 \u0441\u0430\u0439\u0442 skype.com \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c, \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043f\u0435\u0440\u0432\u0443\u044e \u0438 \u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0430\u0440\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e 0.9.x. skype, \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u0441\u043a\u0430\u0447\u0430\u043d\u044b \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u0434 \u0432\u0441\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u0432\u0435\u0431-\u0430\u0440\u0445\u0438\u0432\u0435. \u041d\u0435 \u0437\u0430\u0431\u044b\u043b \u0438 \u043e skypekit sdk window\/linux, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u0434\u043e\u0431\u0440\u044b\u0435 \u043b\u044e\u0434\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0441\u0442\u0430\u0440\u044b\u0445 2.0 \u0432\u0435\u0440\u0441\u0438\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435.<\/p>\n<p>  \u041f\u0440\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 Skype \u0447\u0430\u0441\u0442\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0430\u0441\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f <a href=\"http:\/\/www.joltid.com\">joltid ltd<\/a>. \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u0432\u0431\u0438\u0432 \u0430\u0434\u0440\u0435\u0441 \u0432 web.arhive.org, \u0438\u0437\u0443\u0447\u0438\u043b \u0438 \u0441\u043a\u0430\u0447\u0430\u043b \u0432\u0441\u0435 \u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 download. \u041d\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0440\u0435\u0431\u044f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 Skype, \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0438\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 KaZaA, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u0432 \u0441\u0435\u0442\u0438 p2p \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0442\u0430\u043a \u0436\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d-\u043a\u043b\u0438\u0435\u043d\u0442 giFT-FastTrack \u0434\u043b\u044f \u0441\u0435\u0442\u0438 KaZaA, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0434\u0430\u043b\u0435\u043a\u043e\u043c ~2000 \u0433\u043e\u0434\u0443 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433. \u041e\u043d \u043b\u0435\u0433\u043a\u043e \u0438\u0449\u0435\u0442\u0441\u044f \u0432 google, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043a\u0430\u0447\u0430\u043b \u0438 \u0435\u0433\u043e.<\/p>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0432 \u043f\u043e\u043b\u0435 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0430\u043b \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 skype \u2014 anthill, \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0432 joost. \u042d\u0442\u043e \u0431\u044b\u043b online p2p tv, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043d\u0430\u0431\u0440\u0430\u043b \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u043b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435. \u041d\u043e \u043c\u0435\u043d\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0430 \u043d\u0435 \u0435\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u0430, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0441\u043e\u0444\u0442. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e web.arhive.org \u0438 google \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b-\u043f\u043b\u0430\u0433\u0438\u043d\u044b \u043f\u043e\u0434 win \u0438 macosx.<\/p>\n<p>  \u041d\u0435 \u043e\u0431\u043e\u0448\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u043c\u043e\u0434\u0443\u043b\u0438 SFA(Skype For Asterisk).<\/p>\n<p>  \u041d\u0443, \u0447\u0442\u043e \u0436\u0435, \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u043e\u0431\u0440\u0430\u043d\u0430, \u0431\u0443\u0434\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u0418\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e Skype \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0430 \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u043c\u043e\u0440\u0438 \u0434\u0430\u043c\u043f\u0435\u0440\u044b, \u0441 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0437\u0430\u0449\u0438\u0442\u0443. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c, \u0430 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432 IDA \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>  \u0412 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0438\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432 skype \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c \u043b\u0438\u0448\u044c \u0441\u043b\u0435\u0433\u043a\u0430, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u0435\u0441\u043b\u0438 \u0433\u0434\u0435-\u0442\u043e \u0434\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Skype \u0431\u044b\u043b \u043e\u0434\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439 \u043a\u0441\u043e\u0440 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434, \u0442\u043e \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0435\u0449\u0435 \u0438 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0443.<\/p>\n<p>  \u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0448\u043b\u043e \u0432 \u0445\u0435\u043a\u0441 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0449\u0438\u043a. \u0427\u0442\u043e \u0432 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c, \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0432\u044b? \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 skype \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u0430\u0436\u0435 \u043e\u043d\u0438. \u041d\u043e \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0431\u0438\u043d\u0430\u0440\u043e\u043a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u043e \u0438 \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f rtti \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0421++ \u043a\u043b\u0430\u0441\u0441\u0430\u0445. \u0414\u0430-\u0434\u0430, \u044f\u0434\u0440\u043e skype \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043d\u0430 \u0421++. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043f\u043e \u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e. \u041e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445 \u0442\u043e\u0436\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u0430.<\/p>\n<p>  \u0418\u0437\u0443\u0447\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044e \u0437\u0430 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0431\u0438\u043d\u0430\u0440\u043e\u043a skype, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u043e\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, \u0433\u0434\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0436\u0435 inline \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u043d\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438\u0441\u044c \u0431\u044b. \u0418 \u0442\u0430\u043a\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b, \u0438 \u043d\u0435 \u043e\u0434\u0438\u043d.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432\u0441\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 skype \u2014 \u044d\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u0438, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 Backbone. \u0421\u0430\u043c \u043a\u043b\u0430\u0441\u0441 Backbone \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 Thread. \u0412 \u0441\u0430\u043c\u043e\u043c Backbone \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043b\u0430\u0441\u0441\u0430 Module, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u0435\u0442 \u0441 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0430\u0441\u0441\u044b\u043b\u043e\u043a \u043a\u0430\u043a\u0438\u0445 \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043f\u043e\u043a\u0430\u0436\u0443 \u043e\u0447\u0435\u043d\u044c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>class Thread { \tvirtual void Run() = 0; };  class Backbone : public Thread { \tclass Module \t{ \t\tvirtual void handler_1(void *ev) {}; \t\tvirtual void handler_2(void *ev) {}; \t\tvirtual void handler_3(void *ev) {}; \t\tvirtual void handler_4(void *ev) {}; \t\t....  \t\tvoid registerModule(Backbone *); \t\tvoid unregisterModule();  \t\tvoid addCallbackFunction(void (Module::*)()); \t\t \t};  \tlist&lt;Module*&gt; ModuleList;  \tvoid AddModule(Module *m) { ModuleList.add(m); }  \tvoid Notify_1(void *ev)\t{ for (i=0;i&lt;ModuleList.size();++i) ModuleList[i].handler_1(ev); } \tvoid Notify_2(void *ev)\t{ for (i=0;i&lt;ModuleList.size();++i) ModuleList[i].handler_2(ev); } \tvoid Notify_3(void *ev)\t{ for (i=0;i&lt;ModuleList.size();++i) ModuleList[i].handler_3(ev); } \tvoid Notify_4(void *ev)\t{ for (i=0;i&lt;ModuleList.size();++i) ModuleList[i].handler_4(ev); } \t...  \tvoid Run() \t{ \t\twhile(!Quit) \t\t{ \t\t\t\/\/\u0446\u0438\u043a\u043b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0441\u0435\u0445 callback \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435  \t\t\t\/\/\u043f\u0443\u043b\u0438\u043d\u0433 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u0440\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0443\u0444\u0435\u0440\u044b \u0441 \u0441\u043e\u043a\u0435\u0442\u043e\u0432, \t\t\t\/\/\t \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u0441\u043e\u043a\u0435\u0442\u044b. \t\t} \t} }; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0432 Skype \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e, \u0447\u0442\u043e \u0438\u043c\u044f \u043f\u0430\u043f\u043e\u0447\u043a\u0438 Joltid \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 Skype, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u044b \u00ab\u0437\u0430 \u0441\u043a\u043e\u0431\u043a\u0438\u00bb. \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Anthill(Joost) \u043f\u0430\u043f\u043e\u0447\u043a\u0430 Joltid \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435.<\/p>\n<blockquote><p>\u00abc:\\slave1\\win-production\\anthill\\joltid\\gi\\general\\backbone\\InternetConnection.hpp\u00bb<br \/>  \u00abc:\\slave1\\win-production\\anthill\\anthill\\transceiver\/transceiver.hpp\u00bb<br \/>  \u00abc:\\slave1\\win-production\\anthill\\anthill\\..\\joltid\\GI\\General\\Backbone\/Backbone.hpp\u00bb  <\/p><\/blockquote>\n<p>  \u0410 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 skype \u0438 anthill \u0438\u0434\u0435\u0442 \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 Backbone. \u0417\u043d\u0430\u0447\u0438\u0442, \u0434\u0435\u043b\u0430\u044e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043e\u0431\u0449\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 Backbone \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0442 \u0441\u0432\u043e\u044e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>\tclass APIEventManager : public Backbone::Module \t{ \t\t... \t};  \tclass Router : public Backbone::Module \t{ \t\t... \t};  \tclass InternetConnection : public Backbone::Module \t{ \t\t... \t};  \tclass FallbackConnManager : public Backbone::Module \t{ \t\t... \t};  \tclass RelayConnectionManager : public Backbone::Module \t{ \t\t... \t};  \tBackbone::Backbone() \t{ \t\tAddModule(new APIEventManager); \t\tAddModule(new Router); \t\tAddModule(new InternetConnection); \t\tAddModule(new FallbackConnManager); \t\tAddModule(new RelayConnectionManager);  \t\t... \u0438\u0442\u0434 \u0432\u0435\u0441\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443 \t}; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0445\u043e\u0436\u0435, \u043c\u043e\u0434\u0443\u043b\u0438 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0441\u0430\u043c\u0443 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e Joltid, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c p2p-\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0410 \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0432 Backbone, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 p2p \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 anthill \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u043c\u043e\u0434\u0443\u043b\u044c Transmitter. \u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0438 \u043f\u0440\u0438\u0435\u043c \u043c\u0435\u0434\u0438\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u0410 \u0432\u043e\u0442 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Skype \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u0435 SkyBackbone \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043e\u043a\u043e\u043b\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u0430. \u0410 \u0432 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Skype \u0438 \u0442\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435. \u041b\u043e\u0433\u0438\u0447\u043d\u043e, \u0443 Skype \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435, \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u0427\u0430\u0442, \u041f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0442.\u0434. \u041d\u043e \u043c\u0435\u043d\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u043e \u0441\u0430\u043c\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u0430 Skype, \u0435\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u0441\u0435\u0442\u044c\u044e \u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f.<\/p>\n<p>  \u0418\u0437\u0443\u0447\u0430\u044f \u0432 \u0445\u0435\u043a\u0441 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0441\u044f \u043d\u0435\u043a\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c CommLayer, \u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 TCP \u0438 UDP \u0431\u044b\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e. <\/p>\n<blockquote><p>\u00abCommLayer: Deleting packet #%04x\u00bb<br \/>  \u00abCommLayer: Ack to #%04x\u00bb<br \/>  \u00abCommLayer: Sending user packet #%u over TCP #%u. len=%u\u00bb<br \/>  \u00abCommLayer: %sending packet #%04x to %s using TCP\u00bb<br \/>  \u00abCommLayer: %sending packet #%04x to %s using UDP\u00bb  <\/p><\/blockquote>\n<p>  \u0417\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u043a\u0430\u043a-\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0438\u043b\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 \u0441\u0435\u0442\u044c\u044e.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c rtti, \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0435\u043a\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:<\/p>\n<pre><code>class CommLayer { \tclass ConnectionListener; \tclass CommandListener; \tclass Transport; \tclass TCPConnection; \tclass UDPTransport; }; <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0432 rtti \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0435\u0442\u044c\u044e, class Connection, class UDPConnection, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u0438 \u0432\u0435\u0434\u0443\u0442 \u0432\u0441\u0435\u0433\u043e \u0432 \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u2014 \u044d\u0442\u043e CommLayer. \u0410 \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 FELayer, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043a\u0441\u0442\u0430\u0442\u0438, \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c Backbone. \u0417\u043d\u0430\u0447\u0438\u0442, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043e\u0439 p2p \u0441\u0435\u0442\u0438 skype, \u043d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0442\u043e \u043d\u0443\u0436\u0435\u043d. \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 rtti \u0438 \u043d\u0430 \u043d\u0435\u0433\u043e:<\/p>\n<pre><code>class FELayer { \tclass PacketListener; \tclass ConnectionListener; \tclass Conn; }; <\/code><\/pre>\n<p>  \u0417\u043d\u0430\u0447\u0438\u0442, \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438, \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043d\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442. \u0418 \u0433\u0434\u0435 \u0436\u0435 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f rc4\/aes\/rsa\/dh.<\/p>\n<p>  \u0413\u0440\u0443\u0437\u0438\u043c \u0432 IDA \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u043d\u0430\u0440\u043a\u0438 skype \u0438 \u0435\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0438 \u0438\u0437\u0443\u0447\u0430\u0435\u043c. \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0449\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b md5\/sha1\/sha2\/aes, \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0410 \u0432\u043e\u0442 rsa \u043d\u0435 \u0432\u0438\u0434\u043d\u043e, \u043d\u043e \u043d\u0435 \u0431\u0435\u0434\u0430, rsa \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043d\u0430 bignum. \u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 <br \/>  \u0438 \u043c\u043e\u0436\u043d\u043e \u0441 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u043e\u0437\u043d\u0430\u0442\u044c bignum, \u0430 \u0441 \u043d\u0438\u043c \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 rsa. \u0423 Skype \u0441\u0432\u043e\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f bignum\/rsa.<\/p>\n<p>  \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, Diffie-Hellman \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Skype \u043d\u0435 \u0431\u044b\u043b\u043e, \u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435, \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0441\u043b\u0435 1.3.x \u0432\u0435\u0440\u0441\u0438\u0438 Skype.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u0431\u0438\u043d\u0430\u0440\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e 69069 (0x10dcd), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0433\u0443\u0433\u043b \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u2014 \u044d\u0442\u043e random, \u0430 \u0432\u043e\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 &quot;+17009&quot; (0x4271) \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435, \u043d\u043e \u043d\u0435 \u0431\u0435\u0434\u0430. \u0420\u0430\u043d\u0434\u043e\u043c \u0442\u0430\u043a \u0440\u0430\u043d\u0434\u043e\u043c. \u0422\u0430\u043a \u0436\u0435 \u044d\u0442\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c \u0438 \u0432 giFT-FastTrack.<\/p>\n<pre><code>static unsigned int seed_step (unsigned int seed) {         return 0x10dcd * seed + 0x4271; } <\/code><\/pre>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0434\u043e\u043c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 skype \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 ( joltid ?)<\/p>\n<p>  \u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u0430\u044f \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0447\u0438\u0441\u0435\u043b. \u041f\u0440\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 \u0431\u044b\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u0432 sdk skypekit.<\/p>\n<p>  BinProtocolClientDecoder.java:<\/p>\n<pre><code>public int decodeUint() throws IOException {         int shift = 0;         int result = 0;         while (true) {                 int value = mTransport.readByte() & 0xFF;                 result = result | ((value & 0x7f) &lt;&lt; shift);                 shift = shift + 7;                 if ((value & 0x80) == 0)                         break;         }         return result; } <\/code><\/pre>\n<p>  BinProtocolClientEncoder.java:<\/p>\n<pre><code>public Encoding encodeUint(final int value) throws IOException {         int v = value;         while (v &gt; 0x7f) {                 transport.writeByte((byte)(0x80|(v&0x7f)));                 v = v &gt;&gt; 7;         }         transport.writeByte((byte)v);         return this; } <\/code><\/pre>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0432 \u0442\u043e\u043c \u0436\u0435 sdk \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u043d\u0430 \u0421++<\/b><\/p>\n<div class=\"spoiler_text\">SidProtocolBinCommon.cpp  <\/p>\n<pre><code>Status BinCommon::wr_value(CommandInitiator* thread, const uint& val) { \/\/printf(&quot;encoding %d %x\\n&quot;, val, val);   uint value = val;   int  sz = 0;   char buf[(32+7)\/7];   for(;value&gt;0x7f;value&gt;&gt;=7)     buf[sz++] = (char)((value&0x7f)|0x80);   buf[sz++]=(char)value;   return (Status) m_transport-&gt;bl_write_bytes(thread, sz, &buf[0]); }   Status BinCommon::rd_value(CommandInitiator* thread, uint64& val) {   val=0;   uchar c;   uint shift=0;   do {     if (rd_uchar(thread, c) != OK) return ERR_DECODE;     val|=((uint64)c&0x7f)&lt;&lt;shift;     shift+=7;     \/\/ needed ?     if (shift &gt; 64 && c&0xfe) return ERR_DECODE;   } while(c&0x80);   return OK; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0447\u0438\u0441\u043b\u0430 40503 \u0438 2654418637 (0x9e3736cd) \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 xor \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u043c\u0438 *4.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>int key2index(int a1, int a2) {  return (40503 * ((*a2 &gt;&gt; 16) ^ *a2)) &gt;&gt; 8; }  sint hash_remove(int this, int value) {   int p0; \/\/ edx@1   int p; \/\/ eax@1   signed int result; \/\/ eax@4   int v5; \/\/ ecx@6    p0 = this      + 4      * ((unsigned __int16)(40503                          * (((unsigned int)(*(_DWORD *)(value + 4) ^ *(_DWORD *)(value + 8)) &gt;&gt; 16)  \t\t\t\t^ *(_WORD *)(value + 4) ^ *(_WORD *)(value + 8))) &gt;&gt; 8);   p = *(_DWORD *)p0;   if ( *(_DWORD *)p0 )   {     while ( p != value )     {       p0 = p;       p = *(_DWORD *)p;       if ( !p )         goto _return_0_loc_81D47CC;     }     --*(_DWORD *)(this + 0x400);     v5 = *(_DWORD *)p;     result = 1;     *(_DWORD *)p0 = v5;   }   else   { _return_0_loc_81D47CC:     result = 0;   }   return result; }  uint __usercall sub_find&lt;eax&gt;(int *a1&lt;eax&gt;, int a2&lt;edx&gt;) {   int v2; \/\/ esi@1   int v3; \/\/ edi@1   uint result; \/\/ eax@1   int i; \/\/ ecx@1    v2 = *(_DWORD *)(a2 + 48);   v3 = *a1;   result = (uint)(2654418637 * *a1) &gt;&gt; *(_DWORD *)(a2 + 36);   for ( i = *(_DWORD *)(v2 + 4 * result); i != -1; i = *(_DWORD *)(v2 + 4 * result) )   {     if ( *(_DWORD *)(*(_DWORD *)(a2 + 16) + 12 * i) == v3 )       break;     if ( (signed int)++result &gt;= *(_DWORD *)(a2 + 32) )       result = 0;   }   return result; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  C\u0443\u0434\u044f \u043f\u043e \u043f\u043e\u0438\u0441\u043a\u0443 \u0432 Google, \u0447\u0438\u0441\u043b\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e <a href=\"https:\/\/www.cs.auckland.ac.nz\/~jmor159\/PLDS210\/niemann\/s_has.htm\">\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432<\/a> \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0445\u0435\u0448 \u0442\u0430\u0431\u043b\u0438\u0446:<\/p>\n<blockquote><p>\/* 16-bit index *\/<br \/>  typedef unsigned short int HashIndexType;<br \/>  static const HashIndexType K = 40503;<\/p>\n<p>  \/* 32-bit index *\/<br \/>  typedef unsigned long int HashIndexType;<br \/>  static const HashIndexType K = 2654435769 (0x9e3779b9);  <\/p><\/blockquote>\n<p>  32 \u0431\u0438\u0442\u043d\u044b\u0439 index \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0432 Skype, \u043d\u043e \u0437\u0430\u043e\u0441\u0442\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u043d\u0435 \u0441\u0442\u0430\u043b.<\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432, \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443.<\/p>\n<p>  \u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0432 \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435, \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e Skype \u0432\u043d\u0443\u0442\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Attribute. \u0418 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u0421\u0430\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c <br \/>  \u0438\u0437 \u0441\u0435\u0431\u044f \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<pre><code>enum { \te_Integer, \/\/ = 0\t32 \u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \te_Integer64, \/\/ = 1\t64 \u0431\u0438\u0442\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \te_Address, \/\/ = 2\t\u0430\u0439\u043f\u0438 \u0430\u0434\u0440\u0435\u0441 32 \u0447\u0438\u0441\u043b\u043e +\u043f\u043e\u0440\u0442 16 \u0447\u0438\u0441\u043b\u043e \te_String, \/\/ = 3\t\u0441\u0442\u0440\u043e\u043a\u0430, \u041d \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0431\u0430\u0439\u0442 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043d\u0443\u043b\u0435\u043c \te_Rawdata, \/\/ = 4\t\u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \te_Container, \/\/ = 5\t\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \te_IntegerArray, \/\/ = 6\t\u043c\u0430\u0441\u0441\u0438\u0432 32 \u0431\u0438\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b }; <\/code><\/pre>\n<p>  \u0412 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\/\u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0443\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f\/\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0447\u0438\u0441\u0435\u043b, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 encodeUint\/decodeUint. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0441\u0442\u044c.<\/p>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u0438\u0434\u0438\u043c\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u043b \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u043f\u0443\u0441\u0442\u044f 0.9 \u0432\u0435\u0440\u0441\u0438\u0438 Skype \u0443\u0436\u0435 \u0432 1.0.x \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u044b\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u0436\u0438\u043c \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0423\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0439 <a href=\"http:\/\/www.arturocampos.com\/ac_range.html\">range_coder<\/a> \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0413\u0434\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0434\u0438\u043d \u0432 \u043e\u0434\u0438\u043d \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0434\u043b\u044f \u043a\u043e\u0434\u0435\u0440\u0430 \u0437\u0430\u0431\u0438\u0442\u044b \u0432 Skype \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">encoderRenormalize, \u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>void encoderRenormalize(range_coder *this) {   unsigned int _valfield_4; \/\/ edx@2   unsigned int _infield_8; \/\/ ecx@7   char countv3; \/\/ zf@9    if ( this-&gt;Range &lt;= 0x800000 )   {     do     {       _valfield_4 = this-&gt;Low;       if ( _valfield_4 &gt; ~0x80800000 )       {         if ( (signed int)_valfield_4 &gt;= 0 )         {           ++this-&gt;Help;           goto LABEL_7;         }         this-&gt;vtbl-&gt;output(this, this-&gt;Buffer + 1);         if ( this-&gt;Help )         {           do           {             this-&gt;vtbl-&gt;output(this, 0);             countv3 = this-&gt;Help-- == 1;           }           while ( !countv3 );         }       }       else       {         if ( this-&gt;Start )           this-&gt;Start = 0;         else           this-&gt;vtbl-&gt;output(this, this-&gt;Buffer);         if ( this-&gt;Help )         {           do           {             this-&gt;vtbl-&gt;output(this, 255u);             countv3 = this-&gt;Help-- == 1;           }           while ( !countv3 );         }       }       _valfield_4 = this-&gt;Low;       this-&gt;Buffer = this-&gt;Low &gt;&gt; 23; LABEL_7:       _infield_8 = this-&gt;Range;       this-&gt;Low = (_valfield_4 &lt;&lt; 8) & ~0x80000000;       _infield_8 &lt;&lt;= 8;       this-&gt;Range = _infield_8;     }     while ( _infield_8 &lt;= 0x800000 );   } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">decoderRenormalize, \u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>void decoderRenormalize(range_roder *this) {   _range_roder_vtbl *v1; \/\/ eax@3   unsigned __int8 value; \/\/ al@3   unsigned int v3; \/\/ edx@3    if ( this-&gt;Range &lt;= 0x800000 )   {     do     {       v1 = this-&gt;vtbl;       this-&gt;Low = (unsigned __int8)(this-&gt;Buffer &lt;&lt; 7) | (this-&gt;Low &lt;&lt; 8);       value = v1-&gt;input((int)this);       this-&gt;Buffer = value;       this-&gt;Low |= value &gt;&gt; 1;       v3 = this-&gt;Range &lt;&lt; 8;       this-&gt;Range = v3;     }     while ( v3 &lt;= 0x800000 );   } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0420\u0430\u0437\u0431\u043e\u0440 FELayer \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u044d\u0442\u043e\u0442 layer \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e TCP \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u041e\u0434\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u2014 \u044d\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f:<br \/>   \u2014 \u043f\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0438\u043b\u0438 \u0432\u0445\u043e\u0434\u0430 \u0432 \u0441\u0435\u0442\u044c skype;<br \/>   \u2014 \u0437\u0432\u043e\u043d\u043a\u0430\u0445 (\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a SIP \u0438\u043b\u0438 h323 \u0432 voip);<br \/>   \u2014 \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0435 \u0444\u0430\u0439\u043b\u043e\u0432;<br \/>   \u2014 \u0438 \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 skype \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0430\u0443\u0434\u0438\u043e over TCP?<\/p>\n<p>  \u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<pre><code>struct fe_header { \tbyte type; \tbyte v_hi; \/\/ \u0432\u0441\u0435\u0433\u0434\u0430 = 3 \tbyte v_lo; \/\/ \u0432\u0441\u0435\u0433\u0434\u0430 = 1 \tword len; }; <\/code><\/pre>\n<p>  fe_header + \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0441\u0435\u0440\u0435\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b + \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  \u0422\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0442\u043e \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u043c\u043e\u0433\u0443\u0442 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0441\u0432\u0435\u0440\u0445\u0443 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f aes \u0438 rc4. Layer \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0437 \u0441\u0435\u0431\u044f \u043d\u0435\u043a\u0438\u0439 SSL, \u0445\u043e\u0442\u044f \u0442\u0430\u043a\u043e\u0432\u044b\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f.<\/p>\n<blockquote><p>\u00abFELayer: TCP: %s Received packet with unknown SSL version (%u.%u)\\n\u00bb  <\/p><\/blockquote>\n<p>  \u041e\u0431\u043c\u0435\u043d rsa \u043a\u043b\u044e\u0447\u0430\u043c\u0438 aes salt + \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u0445, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e. \u041f\u0440\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0438\u043f\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e layer-a. \u042d\u0442\u043e type=20, type=21, type=22 \u0438 type=23.<\/p>\n<p>  type=20 \u2014 \u044d\u0442\u043e userpacket c aes256, \u0443\u0441\u0442\u0430\u0440\u0435\u043b, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.<br \/>  type=21 \u2014 \u044d\u0442\u043e userpacket \u0431\u0435\u0437 aes256, \u0443\u0441\u0442\u0430\u0440\u0435\u043b, \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Skype \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 RTP.<\/p>\n<p>  \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u0440\u0438\u0435\u043c\u0430 \u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u044d\u0442\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 FELayer-\u0430.<\/p>\n<p>  type=22<br \/>  \u043a\u0430\u043a ping \u2014 \u0441 \u043e\u0434\u043d\u0438\u043c \u043b\u0438\u0448\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c, \u0431\u0435\u0437 \u0434\u0430\u043d\u043d\u044b\u0445<br \/>  \u0438 \u043a\u0430\u043a handsnake \u2014 \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438(8,9,11,12) \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 rsapub \u043a\u043b\u044e\u0447\u0435\u0439, <br \/>  salt \u0438 \u0434\u043e\u043f \u0438\u043d\u0444\u043e<\/p>\n<p>  type=23<br \/>  \u043a\u0430\u043a keepalive \u2014 \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c, \u0431\u0435\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>  \u0438 \u043a\u0430\u043a datapacket \u2014 \u0435\u0441\u043b\u0438 \u0432 \u0441\u0435\u0431\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0435\u0449\u0435 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432\u0435\u0440\u0445\u043d\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439.<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e TCP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u043c\u0435\u043d \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u043f\u043e Diffie-Hellman \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043a\u043b\u044e\u0447 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 rc4 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u043c\u0435\u043d \u043a\u043b\u044e\u0447\u0430\u043c\u0438 Diffie-Hellman \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u0439, \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 rc4 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041d\u0435 \u0431\u0435\u0434\u0430, \u0435\u0441\u0442\u044c \u0435\u0449\u0435 aes.<\/p>\n<p>  \u0421\u0430\u043c aes \u043f\u043e\u0447\u0442\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 aes256 ctr\/cm, \u0433\u0434\u0435 index \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f uint64 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u043c.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>void userpacket_crypto_encrypt(userpacket_crypto *this, uchar *ptr, uint len, uint64 index, uint nullkey, uint salt) {   uint count; \/\/ esi@3   uchar *pdata; \/\/ ebx@5   uint _j_; \/\/ edi@7   uint seq; \/\/ [sp+18h] [bp-134h]@6   uchar *aesks; \/\/ [sp+1Ch] [bp-130h]@1   uint block[4]; \/\/ [sp+20h] [bp-12Ch]@7   uchar zerov11[32]; \/\/ [sp+30h] [bp-11Ch]@2   uchar keyv15[240]; \/\/ [sp+50h] [bp-FCh]@2    aesks = this-&gt;Key;   if (nullkey)   {     memset(zerov11, 0, sizeof(zerov11));     rijndaelKeySched(zerov11, keyv15);     salt = 0;     aesks = keyv15;   }    count = len;   if (len &gt; 1048576)     count = 1048576;   pdata = ptr;   if (count)   {     seq = 0; _loop2_aes_loc:     block[0] = salt;     block[1] = salt;     block[2] = index &gt;&gt; 16;     block[3] = ((_DWORD)index &lt;&lt; 16) + seq;     rijndaelEncrypt((int *)block, (int *)aesks);     _j_ = 0;     while (_j_ != count)     {       pdata[_j_] ^= block[_j_ &gt;&gt; 2] &gt;&gt; (24 - 8 * (_j_ & 3));       if (++_j_ &gt; 15)       {         ++seq;         count -= 16;         pdata += 16;         goto _loop2_aes_loc;       }     }   } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u043a\u043e\u043d\u0446\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0432\u043e(word) \u0434\u0432\u0430 \u0431\u0430\u0439\u0442\u0430. \u041a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c xor \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432(word) crc32(\u0434\u0430\u043d\u043d\u044b\u0445) ^ index.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>void userpacket_crypto_finish(uint64 index, char *ptr, int len) {   int res; \/\/ r4@1   int crc32; \/\/ [sp+4h] [bp-20h]@1    crc32 = -1;   CRC32(&crc32, ptr, len);   res = (index ^ crc32) & 0xFFFF;   ptr[len] = res & 0xffff;   ptr[len + 1] = res &gt;&gt; 8; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a? \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a \u0436\u0435 index \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435? \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0432 \u0430\u043b\u0433\u043e, \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c uint64, \u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e 48 \u0431\u0438\u0442, index &#038; 0xffffffffffff.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>uint64 userpacket_crypto_get_send_index(userpacket_crypto *this) {   uint64 res; \/\/ r8@1    res = this-&gt;SendIndex;   this-&gt;SendIndex = res & 0xFFFFFFFFFFFFLL;   return res; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0410 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043b\u0430\u0434\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c 16 \u0431\u0438\u0442 0xffff, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 userpacket_crypt_finish.<\/p>\n<p>  \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 index \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u044f\u0442\u044c \u0434\u043e uint64 \u043f\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 <a href=\"http:\/\/www.cisco.com\/web\/about\/security\/intelligence\/securing-voip.html\">srtp<\/a> \u2014 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u00abAlgorithm 1\u00bb.<\/p>\n<p>  \u041a\u043e\u0434 \u0432\u0437\u044f\u0442 \u0438\u0437 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 IDA, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>uint64 userpacket_crypto_recv_index(unsigned short in_index) { \tif (LoIndex & 32768) \t{ \t\tif ((LoIndex - 32768) &lt;= in_index && LoIndex &gt;= in_index) \t\t\treturn in_index + (HiIndex&lt;&lt;16);  \t\tHiIndex= (HiIndex &gt;= -1) ? 0 : HiIndex+1; \t\tLoIndex = in_index;  \t\treturn in_index + (HiIndex&lt;&lt;16); \t}  \tif (in_index &lt;= LoIndex || (in_index - LoIndex) &lt;= 32768) \t{ \t\tif (LoIndex &lt; in_index) LoIndex = in_index; \t\treturn in_index + (HiIndex &lt;&lt; 16); \t}  \treturn in_index + (( (HiIV-1)&gt;&gt;32|(HiIV-1) )&lt;&lt;16); } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 aes256 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f userpacket_crypto. \u0412 \u043d\u0435\u0433\u043e \u0442\u0430\u043a \u0436\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u044e\u0447\u0430, \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c CommLayer. \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u044d\u0442\u043e\u0442 \u043b\u0435\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043f\u043e\u0432\u0435\u0440\u0445 TCP \u0438 \u043f\u043e\u0432\u0435\u0440\u0445 UDP. \u0412 TCP \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043e\u043d \u043a\u0430\u043a \u0438 FELayer \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Diffie-Hellman, \u043a\u043b\u044e\u0447\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f\u2026 \u0432 rc4 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u0435! <\/p>\n<p>  \u041d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0443 CommLayer \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e:<br \/>   \u2014 \u043e\u0431\u043c\u0435\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438;<br \/>   \u2014 \u043e\u0431\u043c\u0435\u043d userpacket_crypto;<br \/>   \u2014 \u043e\u0431\u043c\u0435\u043d udp raw \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043e\u0431\u0445\u043e\u0434 \u0432\u0441\u0435\u0433\u043e CommLayer.<\/p>\n<p>  \u0422\u0430\u043a \u0436\u0435 CommLayer \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u041d\u043e\u043c\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u044b CommLayer \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0438\u043d\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0431\u0430\u0439\u0442. \u0412 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u0438\u043f \u043a\u043e\u043c\u0430\u043d\u0434\u044b + \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e SeqNum, \u0434\u0430\u043b\u044c\u0448\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438. \u0411\u0435\u0437 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0439, \u041e\u0442\u0432\u0435\u0442\u0430\u043c\u0438 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441, \u0438 \u0442.\u0434. CommLayer \u043e\u0434\u0438\u043d, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. <\/p>\n<p>  \u041a\u0430\u043a \u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f, \u043a\u0443\u0434\u0430 \u043a\u0430\u043a\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e? \u042d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c. \u0414\u0430-\u0434\u0430, \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u043e\u0431\u0449\u0435\u043c CommLayer, \u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044f SeqNum \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u0410 \u0441\u0430\u043c\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u2014 Localnode, Firewall, replay_manager_t, BroadcastChannelManager \u0438 \u0442.\u0434.<\/p>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0432 CommLayer \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u043c\u043e\u0436\u043d\u043e:<br \/>   \u2014 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430;<br \/>   \u2014 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441;<br \/>   \u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0442\u0438\u043f UDP\/TCP;<br \/>   \u2014 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 ReplyListener callback \u043a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u0430.<br \/>  \u0418 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>  \u0412 \u0447\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f ReplyListener \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 CommLayer? \u0412 \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 CommanListener, \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043f\u0440\u0438\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c, \u0430 ReplyListener \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0441\u0432\u043e\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u0412\u0440\u043e\u0434\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>  \u041e\u0431\u043c\u0435\u043d userpacket_crypto \u2014 \u044d\u0442\u043e \u0432\u0441\u0435 \u0442\u043e\u0442 \u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 aes256 ctr\/cm c uint64 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 session_manager_t \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u0432\u043e\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0439 layer \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439. \u0422\u0443\u0434\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u0435\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u043e\u0431\u043c\u0435\u043d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438(\u0447\u0430\u0442), \u0438 \u0442.\u0434.<\/p>\n<p>  \u0414\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 RTP Audio\/Video, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439, Skype \u0438\u0437\u043c\u0435\u043d\u0438\u043b \u043f\u043e\u0434\u0445\u043e\u0434. \u0412 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u0435\u043e, \u043d\u043e \u0431\u044b\u043b \u0437\u0432\u0443\u043a, RTP \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u0441\u044f \u0432 userpacket_crypto, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0430\u043c\u043e\u0433\u043e CommLayer \u0434\u043b\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0422\u0430\u043a \u0436\u0435 RTP \u043c\u043e\u0433\u043b\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0447\u0435\u0440\u0435\u0437 FELayer \u043f\u043e\u0432\u0435\u0440\u0445 TCP. \u041f\u043e\u0437\u0436\u0435 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d \u044d\u0442\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438 RTP Audio\/Video \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0432 UDP \u0441\u043e\u043a\u0435\u0442. \u0414\u0430, \u0432\u0441\u0435 \u0442\u0430\u043a \u0436\u0435 \u0448\u0438\u0444\u0440\u0443\u044e\u0442\u0441\u044f \u0432 userpacket_crypto, \u043d\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f CommLayer \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a. \u041f\u043e \u0432\u0438\u0434\u0438\u043c\u043e\u043c\u0443, \u044d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u043f\u0440\u0438 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044f \u0435\u0449\u0435 \u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0441\u0430\u043c\u043e\u0433\u043e CommLayer. \u0410 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043a RTP \u0431\u044b\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d FEC.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 CommLayer TCP, session_header, ack, end_session, keepalive, req_obfuscation UDP \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u0438 TCP, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Diffie-Hellman \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u041f\u0440\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442 \u043d\u0435 \u0434\u043e\u0448\u0435\u0434\u0448\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e. \u0422\u0430\u043a \u0436\u0435 CommLayer \u0443\u043c\u0435\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 \u043b\u0435\u0442\u0443 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438. <\/p>\n<p>  \u041e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u044f \u0432 Skype \u2014 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 RC4 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043d\u043e \u0441 \u0437\u0430\u043c\u0443\u0441\u043e\u0440\u0435\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043a\u043b\u044e\u0447\u0430 \u0434\u043e \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 RC4.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043a\u043e\u0434 \u0438\u0437 IDA<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>void  Obfuscator_Init(int this, uint seed, uint mode, uchar *keystr, uint keylen) {   uint i; \/\/ ecx@9   uint v8; \/\/ dl@11   uint v9; \/\/ al@11   uchar key[80]; \/\/ [sp+14h] [bp-64h]@4   int v11; \/\/ [sp+64h] [bp-14h]@5   int v12; \/\/ [sp+68h] [bp-10h]@5    if (!mode)     mode = 1;   i = 0;   do     *&key[4 * i++] = seed;   while (i != 20);    if (mode_& 1) Obf_0(key, seed);   if (mode & 2) Obf_1(key, seed);    for (i = 0; ; key[i - 1] ^= keystr[i-1])   {     v8 = i &lt;= 79;     v9 = i++ &lt; keylen;     if (!(v8 & v9))       break;   }   ARC4::SetKey(this, key, 80); } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 Obf_0, Obf_1. \u0421\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u0441\u0434\u0432\u0438\u0433\u0438, xor-\u044b \u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f\u0445. \u0422\u0430\u043a \u0436\u0435 \u0438\u0445 \u043a\u043e\u0434 \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0442\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u0430 \u2014 \u044d\u0442\u043e seed, \u0440\u0435\u0436\u0438\u043c \u0438 \u043a\u043b\u044e\u0447, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 Diffie-Hellman. \u0414\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 CommLayer \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e 0xffffffff, \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0438\u0442 \u2014 \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u043e\u0432. \u0418\u0442\u043e\u0433\u043e, \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u044f \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 Skype \u0434\u043e 32 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f\u0445 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u044f. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 2 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. <\/p>\n<p>  \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 Skype \u043c\u043e\u0434\u0443\u043b\u044f\u0445 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c 4 \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438. \u042d\u0442\u043e 0xf \u0431\u0430\u0439\u0442, \u043d\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u044d\u0442\u043e 0x3 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0422.\u0435. \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 2 \u0440\u0435\u0436\u0438\u043c\u043e\u0432. \u041f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 CommLayer \u043f\u0438\u0440\u044b \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441-\u043e\u0442\u0432\u0435\u0442\u0430\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0432 \u043a\u0430\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u043c\u0435\u043d. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043f\u0438\u0440\u043e\u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 SupportedMode \u0438 RequiredMode.<\/p>\n<p>  SupportedMode \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u0432 Skype \u0431\u044b\u043b\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438 \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0432 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435, \u043e \u0442\u043e\u043c, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430. \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c Skype \u0442\u043e \u043b\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u043e\u0448\u0430\u043b\u0438\u043b, \u0442\u043e \u043b\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0437\u0430\u043c\u0435\u043d\u0430 \u043d\u0430 define SupportedMode, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0432\u0448\u0438\u0441\u044c \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 <br \/>  \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435. \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u0435\u0441\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0442\u044c \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e SupportedMode \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0441 \u043a\u0430\u043a\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0439 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440.<\/p>\n<h4>\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f skype<\/h4>\n<p>  \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u0432\u043d\u0443\u0442\u0440\u044c Skype. \u0421 2003 \u0433\u043e\u0434\u0430 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u043d\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 FELayer \u0438 CommLayer \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a\u0438\u043c\u0438, \u043a\u0430\u043a \u0438 \u043f\u0440\u0435\u0436\u0434\u0435. \u041c\u043d\u043e\u0433\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0442\u0430\u043a \u0436\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c, \u0437\u0430\u0442\u043e \u043c\u0443\u0442\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u0430 \u0432\u044b\u0440\u043e\u0441\u043b\u0430, \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u0447\u0442\u043e \u043f\u043e\u0440\u043e\u0434\u0438\u043b\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041f\u0440\u0435\u0442\u0435\u0440\u043f\u0435\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0430\u043c Backbone, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043b\u0438 \u0442\u043e \u0442\u0443\u0434\u0430, \u0442\u043e \u0441\u044e\u0434\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u043c\u043e\u0434\u0443\u043b\u044c BareBackbone, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u0418\u0437 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 Backbone \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0430, \u0432\u0438\u0434\u0438\u043c\u043e, \u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u0449\u0435 \u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f. \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f aes\/rc4\/bignum \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b.<\/p>\n<p>  \u0418\u0437\u0443\u0447\u0430\u044f \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b KaZaA \u0438 \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0441 \u0441\u0430\u0439\u0442\u0430 Joltid, \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f Skype. C\u0432\u043e\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f bignum, rsa, \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u044f rc4, \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0442\u044c\u044e, \u0445\u0435\u0448\u0438, \u0441\u043f\u0438\u0441\u043a\u0438 \u0438 \u0442.\u0434. \u0412\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u043c\u0443 \u0438 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e. \u0421\u0435\u0439\u0447\u0430\u0441 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0435\u0442, \u043e\u0431\u0438\u043b\u0438\u0435 boost, stl, openssl, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f <br \/>  \u0432 \u043c\u043e\u043d\u0441\u0442\u0440\u043e\u0432.<\/p>\n<p>  \u0418\u0437\u0443\u0447\u0430\u044f gift-FastTracker, \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e \u0440\u0435\u0431\u044f\u0442\u0430 \u0432 \u043b\u0438\u0445\u0438\u0435 2000 \u0441\u043c\u043e\u0433\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0432\u0435\u0440\u0441\u0438\u0442\u044c rsa-bignum \u043e\u0442 KaZaA (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u0438 \u0432 Skype), \u0442\u043e\u0433\u0434\u0430, \u043f\u0440\u0430\u0432\u0434\u0430, \u043e\u043d \u0431\u044b\u043b \u043f\u043e\u043f\u0440\u043e\u0449\u0435 \u0438 \u0443 \u043d\u0438\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0430 ida+hexrays. \u0415\u0441\u043b\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c, \u0442\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 bignum \u043e\u0442 Skype \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u043e\u0441 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u0422\u0430\u043a \u0436\u0435 \u0440\u0435\u0431\u044f\u0442\u0430\u043c \u0438\u0437 FastTrack \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u0440\u0435\u0432\u0435\u0440\u0441\u0438\u0442\u044c 4 \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438.<\/p>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0435\u0441\u043b\u0438 \u0441\u043d\u044f\u0442\u044c \u044d\u0442\u0438 \u0434\u0432\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445 \u0443\u0440\u043e\u0432\u043d\u044f, \u0442\u043e Skype \u0443\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a Skype. \u0411\u043e\u043b\u0435\u0435 \u0441\u043a\u0443\u0447\u0435\u043d \u0434\u043b\u044f \u0441\u0435\u043a\u044c\u044e\u0440\u0438\u0442\u0438 \u0440\u0435\u0441\u0435\u0440\u0447\u0430, \u043c\u0435\u043d\u0435\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u043d. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u044d\u0442\u043e\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u043b\u043e\u0439 \u0434\u0435\u043b\u0430\u0435\u0442 Skype \u0442\u0430\u043a\u0438\u043c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c, \u043a\u0430\u043a\u043e\u0439 \u043e\u043d \u0435\u0441\u0442\u044c.<\/p>\n<p>  \u041f\u0440\u0438 \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a. \u042f \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b Skype \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438 \u043d\u0435 \u0441\u043d\u0438\u043c\u0430\u043b \u0434\u0430\u043c\u043f\u044b \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u0412\u0441\u0435 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c ida+hexrays. \u0418 \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u0432 skype-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435, \u044f \u0441\u0447\u0438\u0442\u0430\u044e, \u0434\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c.             <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/261725\/\"> http:\/\/habrahabr.ru\/post\/261725\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>             \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u042f \u0437\u043d\u0430\u043a\u043e\u043c \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u043c\u0438 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 Skype. \u0417\u043d\u0430\u044e \u043e skypeopensource, \u0437\u043d\u0430\u044e \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0430 FakeSkype \u0438 \u0442.\u0434. <\/p>\n<p>  \u041f\u043e\u0434\u0445\u043e\u0434\u044b \u043c\u043d\u0435 \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c.<\/p>\n<p>  \u041a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435<br \/>  \u041a\u0430\u043a\u0438\u0435-\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<br \/>  \u0413\u0434\u0435-\u0442\u043e \u0447\u0442\u043e-\u0442\u043e<br \/>  \u041a\u0430\u043a-\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c<br \/>  \u042d\u0442\u043e \u043d\u0435 \u043c\u043e\u0439 \u043f\u0443\u0442\u044c<\/p>\n<p>  \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0430 \u043d\u0435 \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u044f \u043f\u0440\u043e\u0448\u0435\u043b \u0435\u0433\u043e \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0422\u0430\u043a \u0436\u0435 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043d\u0438 \u043e\u043f\u0440\u043e\u0432\u0435\u0440\u0433\u0430\u0442\u044c, \u043d\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c \u0441\u0445\u043e\u0436\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432. \u0414\u043b\u044f \u0441\u0435\u0431\u044f \u044f \u0441\u043c\u043e\u0433 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c Skype \u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e, \u043d\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-260640","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/260640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=260640"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/260640\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=260640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=260640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=260640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}