<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF143%3AAR_Drone</id>
		<title>LXF143:AR Drone - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF143%3AAR_Drone"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF143:AR_Drone&amp;action=history"/>
		<updated>2026-05-13T03:53:12Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF143:AR_Drone&amp;diff=14330&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Мы по­смот­рим, что внут­ри АR.Drone */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF143:AR_Drone&amp;diff=14330&amp;oldid=prev"/>
				<updated>2012-09-17T08:53:45Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Мы по­смот­рим, что внут­ри АR.Drone&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 08:53, 17 сентября 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=[[Изображение:LXF143_33_1.jpg|300px]] AR.Drone с на­са­жен­ным кор­пу­сом для за­пус­ка вне по­ме­ще­ний. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=[[Изображение:LXF143_33_1.jpg|300px]] AR.Drone с на­са­жен­ным кор­пу­сом для за­пус­ка вне по­ме­ще­ний. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Изображение:LXF143_33_2.jpg|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;300p&lt;/del&gt;]]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;x &lt;/del&gt;Корпус для по­ле­тов внут­ри по­ме­ще­ний вы­пол­нен так, что­бы не пе­ре­бить цен­ные ве­щи.|Ширина=300px}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Изображение:LXF143_33_2.jpg|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;300px&lt;/ins&gt;]] Корпус для по­ле­тов внут­ри по­ме­ще­ний вы­пол­нен так, что­бы не пе­ре­бить цен­ные ве­щи.|Ширина=300px}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;АR.Drone от Parrot добился колоссальных успехов с мо­мен­та вы­пуска в сен­тяб­ре 2010 го­да, и по­сто­ян­но по­ра­жа­ет иг­ро­вые со­об­ще­ст­ва и со­об­ще­ст­ва раз­ра­бот­чи­ков. Бо­лее то­го, по­ко­пав­шись в нем, мы об­на­ру­жи­ли, что AR.Drone ра­бо­та­ет под Linux. Здесь мы рас­смот­рим, что де­ла­ет этот гад­жет.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;АR.Drone от Parrot добился колоссальных успехов с мо­мен­та вы­пуска в сен­тяб­ре 2010 го­да, и по­сто­ян­но по­ра­жа­ет иг­ро­вые со­об­ще­ст­ва и со­об­ще­ст­ва раз­ра­бот­чи­ков. Бо­лее то­го, по­ко­пав­шись в нем, мы об­на­ру­жи­ли, что AR.Drone ра­бо­та­ет под Linux. Здесь мы рас­смот­рим, что де­ла­ет этот гад­жет.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF143:AR_Drone&amp;diff=14327&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF143:AR_Drone&amp;diff=14327&amp;oldid=prev"/>
				<updated>2012-09-17T08:47:56Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: Дрон на Linux&lt;br /&gt;
&lt;br /&gt;
==Мы по­смот­рим, что внут­ри АR.Drone==&lt;br /&gt;
&lt;br /&gt;
: Это ди­во-квад­ри­коп­тер – са­мая компактная и про­стей­шая из ле­таю­щих ко­пий Linux. Как по­нял '''Грэм Уэл­дон''', с ним еще и прико­льно.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF143_33_1.jpg|300px]] AR.Drone с на­са­жен­ным кор­пу­сом для за­пус­ка вне по­ме­ще­ний. &lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF143_33_2.jpg|300p]]x Корпус для по­ле­тов внут­ри по­ме­ще­ний вы­пол­нен так, что­бы не пе­ре­бить цен­ные ве­щи.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
АR.Drone от Parrot добился колоссальных успехов с мо­мен­та вы­пуска в сен­тяб­ре 2010 го­да, и по­сто­ян­но по­ра­жа­ет иг­ро­вые со­об­ще­ст­ва и со­об­ще­ст­ва раз­ра­бот­чи­ков. Бо­лее то­го, по­ко­пав­шись в нем, мы об­на­ру­жи­ли, что AR.Drone ра­бо­та­ет под Linux. Здесь мы рас­смот­рим, что де­ла­ет этот гад­жет.&lt;br /&gt;
&lt;br /&gt;
Под­клю­чить его к ва­ше­му ком­пь­ю­те­ру очень лег­ко, по­то­му что это уст­рой­ст­во Wi-Fi. Как та­ко­вое, он вы­гля­дит спе­ци­аль­ной се­тью, к ко­то­рой за­тем мож­но при­сое­динить­ся с лю­бо­го ком­пь­ю­те­ра, имею­ще­го бес­про­вод­ную се­те­вую кар­ту. От­ме­тим, од­на­ко, что ес­ли вы уже со­единили его с мо­биль­ным уст­рой­ст­вом, IP-ад­рес не бу­дет на­зна­чать­ся при под­клю­чении к се­ти, и к нему невоз­мож­но бу­дет под­сое­динить­ся. Что­бы обой­ти эту про­бле­му, за­пусти­те мо­биль­ное уст­рой­ст­во и от­клю­чи­те функ­цию спа­ри­вания в на­строй­ках при­ло­жения ''Free Flight'', или про­сто на­жми­те кноп­ку '''Ра­зо­рвать па­ру''' [Unpair] на уст­рой­ст­ве.&lt;br /&gt;
&lt;br /&gt;
Итак, что мы мо­жем по­черп­нуть из этой иг­руш­ки, не раз­би­рая ее на час­ти? Так как мы в его се­ти и зна­ем его IP-ад­рес, сканиро­вание пор­тов бу­дет хо­ро­шей от­прав­ной точ­кой. Вы­полнив это, мы уз­на­ем, ка­кие пор­ты от­кры­ты и доступ­ны, а так­же, ве­ро­ят­но, пой­мем, ка­кой доступ мы по­лу­чим для под­клю­чения к уст­рой­ст­ву.&lt;br /&gt;
&lt;br /&gt;
За­пуск ''nmap'' по­ка­зал два ин­те­ре­сую­щих нас пор­та:&lt;br /&gt;
&lt;br /&gt;
 21/tcp open ftp&lt;br /&gt;
 23/tcp open telnet&lt;br /&gt;
&lt;br /&gt;
По­пы­тав­шись уста­но­вить под­клю­чение к сво­бод­но­му пор­ту ''telnet'', мы по­па­дем в ''Bash'' без необ­хо­ди­мо­сти вво­да па­ро­ля. Ин­фор­ма­ция по вхо­ду по­ка­зы­ва­ет, что нам уда­лось под­клю­чить­ся к уста­нов­ке Linux c ''BusyBox'' и что есть доступ­ный но­мер вер­сии, по­это­му мы мо­жем про­ве­рить ин­тим­ные под­роб­но­сти и во­ про­сы безо­пас­но­сти, ес­ли это необ­хо­ди­мо.&lt;br /&gt;
&lt;br /&gt;
Дальней­шее рас­смот­рение по­ка­зы­ва­ет, что нас на са­мом де­ле непри­ну­ж­ден­но сбро­си­ли под root без па­ро­ля, и мы по­лу­чи­ли пол­ный доступ к уст­рой­ст­ву.&lt;br /&gt;
&lt;br /&gt;
 # echo $USER&lt;br /&gt;
 root&lt;br /&gt;
&lt;br /&gt;
Как-то уж слиш­ком лег­ко. Ле­де­нею при мыс­ли, что кто-то по со­сед­ст­ву мо­жет под­сое­ди­нить­ся к се­ти с не­тбу­ка и по­уби­вать про­цес­сы, пока я бу­ду па­рить на квад­ри­коп­те­ре в не­бе­сах.&lt;br /&gt;
&lt;br /&gt;
===Об­зор обо­ру­до­ва­ния===&lt;br /&gt;
&lt;br /&gt;
Да­вай­те взгля­нем на ин­фор­ма­цию по про­цес­со­ру и па­мя­ти:&lt;br /&gt;
 &lt;br /&gt;
 # cat /proc/cpuinfo&lt;br /&gt;
 Processor: ARM926EJ-S rev 5 (v5l)&lt;br /&gt;
 BogoMIPS: 233.47&lt;br /&gt;
 Features: swp half thumb fastmult edsp java&lt;br /&gt;
 CPU implementer: 0x41&lt;br /&gt;
 CPU architecture: 5TEJ&lt;br /&gt;
 CPU variant: 0x0&lt;br /&gt;
 CPU part: 0x926&lt;br /&gt;
 CPU revision: 5&lt;br /&gt;
 Cache type: write-back&lt;br /&gt;
 Cache clean: cp15 c7 ops&lt;br /&gt;
 Cache lockdown: format C&lt;br /&gt;
 Cache format: Harvard&lt;br /&gt;
 I size: 32768&lt;br /&gt;
 I assoc: 4&lt;br /&gt;
 I line length: 32&lt;br /&gt;
 I sets: 256&lt;br /&gt;
 D size: 16384&lt;br /&gt;
 D assoc: 4&lt;br /&gt;
 D line length: 32&lt;br /&gt;
 D sets: 128&lt;br /&gt;
 Hardware: Mykonos Parrot platform&lt;br /&gt;
 Revision: 0904&lt;br /&gt;
 Serial: 0000000000000000&lt;br /&gt;
&lt;br /&gt;
А так­же ин­фор­ма­ция от­но­си­тель­но па­мя­ти:&lt;br /&gt;
&lt;br /&gt;
 # cat /proc/meminfo&lt;br /&gt;
 MemTotal: 126072 kB&lt;br /&gt;
 MemFree: 105652 kB&lt;br /&gt;
 Buffers: 0 kB&lt;br /&gt;
 Cached: 3604 kB&lt;br /&gt;
&lt;br /&gt;
Здесь 128 МБ опе­ра­тив­ной па­мя­ти на бор­ту – немно­го боль­ше, чем вы ожи­дае­те най­ти на столь ма­лень­кой штучке. Па­мя­ти и вы­чис­ли­тель­ной мощ­но­сти хва­та­ет для достой­но­го встро­ен­но­го уст­рой­ст­ва, и мы зна­ем, что на нем как минимум ра­бо­та­ют де­мо­ны ''FTP'' и ''telnet''. По­ра про­смот­реть пол­ный спи­сок про­цес­сов и уви­деть, что еще есть внут­ри.&lt;br /&gt;
&lt;br /&gt;
===Под­бе­рем­ся по­бли­же===&lt;br /&gt;
&lt;br /&gt;
Взгля­нув на спи­сок за­пу­щен­ных про­цес­сов, мы най­дем не так уж мно­го по­лез­ных для нас, но среди них есть де­мон ''FTP'', а так­же ''Telnet'', DHCP-сер­вер и ''syslogger''. Кро­ме то­го, есть два ин­те­рес­ных про­цес­са, ко­то­рые вы­гля­дят спе­ци­фич­ны­ми для это­го уст­рой­ст­ва, и, гля­дя на пол­ный спи­сок всех за­пу­щен­ных про­цес­сов, мож­но заключить, что один из них от­ве­ча­ет за об­ра­бот­ку всех эле­мен­тов управ­ления и вы­во­да ви­део об­рат­но на ва­ше мо­биль­ное уст­рой­ст­во. Со­от­вет­ст­вую­щая ин­фор­ма­ция здесь при­во­дит­ся ни­же:&lt;br /&gt;
&lt;br /&gt;
 960 root 2736 S /bin/sh /bin/check_update.sh&lt;br /&gt;
 961 root 11824 S /bin/program.elf&lt;br /&gt;
&lt;br /&gt;
С ви­ду этот про­цесс ''program.elf'' по­хож на хостинг основ­но­го ко­да уст­рой­ст­ва. Здесь недосту­пен ис­ход­ный код, и он, ве­ро­ят­но, был при­ком­пи­ли­ро­ван к ма­те­рин­ской пла­те, что­бы за­крыть ис­ход­ный код от поль­зо­ва­те­лей.&lt;br /&gt;
&lt;br /&gt;
Про­цесс ''check_update.sh'' вы­гля­дит доступ­ным для чтения – по­чи­та­ем его, за­пус­тив ''vi'' или ''cat'':&lt;br /&gt;
&lt;br /&gt;
 # cat /bin/check_update.sh&lt;br /&gt;
&lt;br /&gt;
По­хо­же, что он кон­тро­ли­ру­ет ка­та­лог про­шив­ки в по­ис­ках но­вых вер­сий для об­нов­ления. Итак, остал­ся толь­ко один про­цесс – ''program.elf''. Он, ве­ро­ят­но, от­ве­ча­ет за всю ком­муника­цию и взаи­мо­дей­ст­вие с мо­биль­ны­ми уст­рой­ст­ва­ми.&lt;br /&gt;
&lt;br /&gt;
По вы­да­че от ''netstat'' мы уви­дим, есть ли от­кры­тые пор­ты, и ес­ли да, то ка­кие и к ка­ко­му ад­ре­су они при­вя­за­ны. Ста­рый до­б­рый ''netstat'' от­лич­но под­хо­дит для от­сле­жи­вания ис­поль­зуе­мо­го при­ло­жением пор­та и от­лад­ки се­те­вых про­блем. Да­вай­те по­смот­рим, что тут мож­но най­ти.&lt;br /&gt;
&lt;br /&gt;
Ко­ман­да ''netstat -р'' по­ка­зы­ва­ет, что у нас есть от­кры­тый порт TCP на 5559 и три UDP-пор­та – 5554, 5555 и 5556, все при­над­ле­жа­щие про­цес­су ''program.elf''. С уче­том функ­цио­наль­но­сти AR.Drone, на это есть це­лый ряд воз­мож­ных при­чин. Один порт ну­жен для управ­ления са­мим уст­рой­ст­вом, еще два – для ви­део­ка­на­лов пе­редней и нижней ка­мер. Это ох­ва­ты­ва­ет UDP-пор­ты, но что­бы бо­лее точ­но оп­ре­де­лить, для че­го ка­кой порт пред­на­зна­ча­ет­ся, сле­ду­ет смот­реть бо­лее при­сталь­но.&lt;br /&gt;
&lt;br /&gt;
При­ме­ча­тель­но, что един­ст­вен­ным ме­ханиз­мом безо­пас­но­сти, встро­ен­ным в уст­рой­ст­во, яв­ля­ет­ся техника спа­ри­вания уст­ройств, доступ­ная в на­строй­ках при­ло­жения: ''Free Flight''. Ее нуж­но вклю­чать для пре­дот­вра­щения вред­ных ху­ли­га­нов по Wi-Fi, ко­то­рые мо­гут за­хва­тить кон­троль над уст­рой­ст­вом, когда оно на­хо­дит­ся в по­ле­те.&lt;br /&gt;
&lt;br /&gt;
===Вы­со­кий по­лет===&lt;br /&gt;
&lt;br /&gt;
AR.Drone ве­ли­ко­леп­но обо­ру­до­ван – име­ет встро­ен­ный Linux, мно­го опе­ра­тив­ной па­мя­ти и на­деж­ную ме­ханиче­скую часть для обес­пе­чения по­ле­та. То, что на са­мом де­ле от­кры­ва­ет ряд воз­мож­но­стей для этой уди­ви­тель­но за­хва­ты­ваю­щей иг­руш­ки, доступ­но на встро­ен­ной уста­нов­ке Linux ''BusyBox''. С ко­пи­ей Linux, ле­таю­щей под ва­шим кон­тро­лем, вы по­лу­чае­те воз­мож­ность де­лать мно­го необыч­ных ве­щей.&lt;br /&gt;
&lt;br /&gt;
Вы­пол­няя про­стые сканиро­вания пор­тов и про­вер­ки от­кры­тых пор­тов и про­цес­сов, мож­но пе­ре­да­вать па­ке­ты ту­да и об­рат­но в уст­рой­ст­во, что по­тен­ци­аль­но по­зво­ля­ет соз­да­вать по­то­ко­вое ви­део и ме­ханиз­мы кон­тро­ля, ко­то­рые ис­поль­зу­ют­ся на вы­бран­ном язы­ке или плат­фор­ме. &lt;br /&gt;
&lt;br /&gt;
Че­го бы я ожи­дал от со­об­ще­ст­ва AR.Drone в бу­ду­щем – это основ­ное при­ло­жение с от­кры­тым ко­дом для управ­ления уст­рой­ст­вом. Это от­кры­ло бы же­ле­зо на ис­поль­зо­вание лю­бо­го ва­ри­ан­та Linux. А по­ка что это од­на из сла­бых сто­рон, ко­то­рая не долж­на ме­шать раз­ви­тию од­ной из са­мых увлекательных со­вре­мен­ных иг­ру­шек.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>