Бабахинг в реверс-инжиниринг: опыт обратной разработки

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Почему никому и никогда не удастся скопировать чужое изделие «в ноль», даже китайцам. И как самим сделать лучше, чем оригинал. 

Года полтора назад нас слегка закидали на Хабре тапками за инструкцию по легальному реверс-инжинирингу. Вытаскивайте тапки из-под дивана, сейчас покажем, как реверс-инжиниринг работает на практике. Можно порадоваться: там далеко не все так просто, как вам кажется. 

Дисклеймер. Расскажем в том числе о гарантированном способе облажаться при реверс-инжиниринге; о том, зачем китайского специалиста привезли на стрельбище и там оставили, почему на производстве изо всех сил лупили кувалдой по трубе. 

И дадим мини-руководство, как сделать, чтобы обратная разработка удалась. 

«У вас продается китайский шкаф?»

Итак, железный шанс запороть реверс-инжиниринг — это поверить в волшебный китайский шкаф. 

Ведь многие воспринимают производство в Китае именно как некий волшебный шкаф: если засунуть в него пакет КД, техзадание или даже просто образец того, что надо сделать, то потом ты вынешь из этого шкафа именно то, что тебе надо. Оно получится там таким само по себе и чудесным образом, ведь в Китае можно сделать абсолютно все, и уж там-то, с их опытом, это «всё» прекрасно знают. 

На деле все надо делать самим и ручками. Иначе получится как на обложке к этой статье (нейросеть edition): знаменитые шесть пальцев видите? Вот примерно так и волшебный китайский шкаф вам сделает, если сунетесь в него с наскока.   

Смотрите на примере проекта по реверс-инжинирингу приклада. Запустил его наш партнер, от его лица и будем рассказывать. Соберем все важное: что надо, цены, материалы, время и тонкости. 

С виду задача простейшая: есть профиль «трубы», на котором закрепляется изделие-копия. Оно должно сесть на «трубу» жестко, без люфта. Внешний вид изделия определяется оригиналом. Но есть нюансы…

Приклад должен сесть на «трубу» жестко
Приклад должен сесть на «трубу» жестко

Вводные данные 

Направление реверс-инжиниринга: оружейный тюнинг — спортивного, охотничьего оружия. Например, есть «бабахинг» — такой стиль владения оружием, когда ты на охоту не ходишь, в соревнованиях не участвуешь, а просто периодически жжешь патроны. 

Фото: magpul.com
Фото: magpul.com

Справка. В мире есть две основные оружейные платформы: АК-платформа (автомат Калашникова) и АR-платформа — американская, это карабины М-16, AR-15, AR-10 и пр. Оружие изначально армейское, но «огражданено» и модифицировано так, что не позволяет вести автоматический огонь. Только одиночные выстрелы.

Оружейный тюнинг — это изделия, которые позволяют использовать оружие под свои эргономические показатели; такая кастомизация под владельца. Ведь изначально оружие создавалось под нужд армии. Значит, все должно быть дешево и универсально, для некоего среднестатистического человека, имеющего среднестатистическую длину руки, форму и длину пальцев. 

А остальным, несреднестатистическим, неудобно (как кирзовые сапоги). Пример «неудобно» — автомат Калашникова. Он создан таким образом, чтобы из него было одинаково некомфортно стрелять, когда ты в футболке и когда в тулупе; когда ты держишь автомат голыми руками и в меховых варежках. Поэтому тебе нужна разная длина приклада, иначе — он должен регулироваться. Такие есть, продаются отдельно. 

За основу реверс-инжиниринга был взят приклад Magpul CTR (считай, это золотой стандарт: он функциональный, эргономичный, в его конструкции вообще нет ничего лишнего, его одинаково хотят и спортсмены, и всякие спецподразделения). 

Оригинальный Magpul CTR 
Оригинальный Magpul CTR 

Есть китайские копии магпуловских прикладов — сами понимаете, какого качества (подробности о том, почему они именно такие, тоже будут ниже); есть турецкие — что-то среднее между Китаем и оригиналом, но все равно не то.

Китайский Magpul. Похож на оригинал, похож
Китайский Magpul. Похож на оригинал, похож
Но есть нюансы! Китай — самый левый
Но есть нюансы! Китай — самый левый

Лучше сделать свой. Но не точную копию, а — внимание! — улучшить «золотой стандарт». 

Несите штангенциркуль!

В самом начале встал вопрос — как хорошо скопировать приклад? Эта деталь — сопрягаемая, она, как уже сказали, «надевается» на универсальную трубу, которая вкручивается в карабин. 

Универсальная «труба» 
Универсальная «труба» 

Непосредственно в прикладе есть внутренний механизм, который обеспечивает его фиксацию на трубе, смену положения и отсутствие люфта. 

Итак, есть внешний вид, который нужно повторить, функционал, который тоже нужно повторить, и качество, которое надо бы улучшить, потому что оригинальный Magpul — даже несмотря на то, что он зе бест, на трубе слегка болтается. Оружие — штука требовательная, и люфт так или иначе намекает на дешевизну продукта. Нам такое не надо. 

Первое, что на ум приходит, — конечно, 3D-сканирование. Но у нас был опыт с пистолетной рукояткой: мы ее отсканировали и получили такое, что конструктору все равно пришлось прорабатывать все внутренние детали, и от отсканированной модели ничего не осталось. 

Поэтому решили сразу брать линейку и штангенциркуль и образмеривать «ручками».

После образмеривания приступили к конструкторской документации — с допусками и посадками на «внутренности» — это фрезерованные и штампованные детали (втулки, стопоры, пружины и пластины), а дизайнерскую модель делали параллельно. 

Штампованная металлическая деталь из конструкции приклада
Штампованная металлическая деталь из конструкции приклада

Штамповую оснастку заказывали. В конструкции приклада были и покупные элементы — подпружиненный стопор и штифты, например.

Макет печатать не стали — он бы нам ничего не дал: слишком жесткие допуски. 

Может быть, какие-то радиусы мы скопировали с донорского приклада не совсем в ноль, но наша основная задача — сделать работоспособный продукт, который подходит под трубу. 

Труба хитрая — она универсальная (еще и в двух стандартах — Mil и Com spec), ее делают десятки, если не сотни производителей, и у всех эти трубы немножко разные, потому что делаются с разными допусками. Поэтому в жизни приклад либо просто болтается, либо сильно болтается на этой универсальной трубе.

Все дело в допусках

Все, набор конструкторской документации готов (прим. авт. —  всегда всем говорим и на своем стоим: модель без чертежей для производства не катит). 

Начинаем делать форму у наших китайских партнеров. Параллельно ищем материал для приклада, потому что требования к нему серьезные: способность выдерживать большие нагрузки, высокая прочность, негорючесть, морозостойкость, устойчивость к высоким температурам от +50 до -50°C. 

И снова: все будет делаться в жестких допусках. Это в товарах народного потребления или даже в корпусах электронных устройств обычно таких требований нет: там отсутствует кинематика. Корпус закрыли, винтами скрутили, все внутри статично. А  здесь «внутренности»  в постоянном движении, и их много: например, пластиковая деталь фактически является втулкой, внутри которой ходит другая втулка, а внутри той втулки — пружина; и вся эта конструкция должна двигаться по трубе.

Версия ноль

Китайцы получили конструкторскую документацию и начали делать пресс- формы на пластиковые детали: сам приклад, тыльник, две клавиши. Вместе с  пакетом КД в Китай поехали образцы: деталь в сборе и та самая труба, на которую приклад должен садиться без люфта. 

Получили первые отливки. На таких отливках нет шагрени (структурной поверхности), есть утяжины (дефекты при литье), нет закладных элементов и втулок. Но — кинематика рабочая, приклад двигается. Однако люфтит и взад-вперед (зазор на втулке), и на скручивание (нет достаточного поджима передней клавишей). То есть получилось все… как на дешевой китайской копии. 

Зачем тогда эти первые отливки нужны?

Первые отливки нужны, чтобы:
а) убедиться, что деталь «проливается»;
б) решить возникшие проблемы (например, перенести точки впрыска);
в) убедиться в отсутствии воздушных полостей в толстостенных элементах.


О точках впрыска и том, зачем их переносить, читайте здесь.


Версия 1

После того, как мы проанализировали первые отливки, выбрали несколько материалов, поправили КД (уточнили допуски + металлические детали стали чёрными: на них нанесли покрытие) и перешли к отливкам v1. 

Отливка V1
Отливка V1

На V1 тоже еще нет шагрени. На деталях еще остаются дефекты, рваные края, но уже четко выдержаны все размеры. 

На этом этапе мы начали экспериментировать с подбором материала. Нужен был, как помните, ударопрочный. Попробовали пластик со стекловолокном в пропорции от 10 до 30% — видите, как у детали с надписью GF изменился внешний вид.

Деталь из материала со стекловолокном — v1
Деталь из материала со стекловолокном — v1

Отливки были из трех материалов — PA6 (ударопрочный), PA+30% стекла, PA66 (ударопрочный). На каждом из них отрабатывались режимы литья — для получения нужных классных размеров. 

Собрали. И нате вам: приклад всё равно болтался.

Про материалы

Относительно материалов  — можно покрутить пальцем у виска и спросить: а зачем вы их подбирали, если просто можно взять такой же пластик, как и у Magpul? 

Прикол в том, что и непросто, и взять нельзя. Да, мы можем отправить исходник в институт пластмасс, получить спектральный анализ. Нам скажут: «В вашем образце есть полипропилен, в нем столько таких добавок, столько таких, столько таких». А дальше (максимум): «Этот материал похож на марку такого-то производителя». И причем то, насколько обширна у этого института база материалов разных производителей, мы не знаем.

Подробности про пластик

Если брать АБС-пластик, то его производят сотни компаний — европейские, корейские, китайские; даже в России есть. Химия у всех одна, но добавки разные. В свою очередь, все это дает разные свойства. 

Есть также специальные группы материалов (например, израильские), разработанные и применяемые именно в оружейной тематике. Так, например, в одном изделии (штурмовой винтовке) могут быть использованы разные марки или даже материалы, они все должны быть суперпрочными, но есть нюансы. 

Например:

  • приклад не должен ломаться, но большим температурным нагрузкам он не подвергается.

  • цевье тоже должно быть прочным, но надо учесть, что внутри него — ствол, который разогревается докрасна.

  • крышка ствольной коробки должна быть очень жесткой (ведь на нее постоянно будет устанавливаться оптика) + у нее должна быть высокая стойкость к химическому воздействию (средства для чистки, кислые пороховые газы, смазка и т.д.) и пр.

У специализированных поставщиков таких материалов есть своего рода база, по которой они могут сказать, какие производители какую марку материала используют и для каких элементов.

Ну и приходим к выводу, что материал для реверс-инжиниринга по-любому придется ПОДБИРАТЬ. Взять тот же самый не получится. Никак. 

Правильный подход к подбору материала 

Придется исходить из того, что вы хотите получить. Например, мы китайским поставщикам материала сказали, что хотим полиамид — негорючий, устойчивый к низким и высоким температурам, суперпрочный, — да такой, чтобы им можно было дверь выбить. 

И объяснили еще нагляднее: поставьте приклад на цельнофрезерованную алюминиевую трубу и просто долбите по нему кувалдой. Они и долбили, все на гифке:

Получилось так, что там скорее автомат рассыплется, чем приклад сломается. 

Наши партнеры работают с американскими и израильскими производителями оружия (делают им формы и иногда поставляют контрактные изделия), поэтому несколько годных материалов подобрать сумели.

Все равно «Жигули»

Также китайцы нам сделали тестовые фрезерованные детали и закупили стандартные элементы — штифты. И мы смогли впервые собрать приклад. 

В процессе сборки и испытаний стало понятно, что на детали нужно наносить покрытие, потому что должно все должно быть черным, не блестеть и не бликовать. Это, по сути, оружейный стандарт. Выбрали покрытие. 

Наконец, из Китая пришли образцы v2.

Фрезерованные детали дорабатывались: убирались острые кромки и т.д. Изначально мы не предполагали, что так будет. Все стало понятно только непосредственно при сборке и на натурных испытаниях. 

V1 и V2
V1 и V2

Получили, собрали и… получили деталь, которая люфтит на трубе, опять. Как в том анекдоте: что ни собирай, все равно «Жигули» выходят. 

И это — после пары недель ежедневных обсуждений: тут добавить допуск, тут убрать зазор. Из-за сложной кинематики не было очевидно, почему система не работает: ведь все же детали с выверенными допусками. Ну почему люфтит — то ли из-за неверной геометрии металлической пластины, то ли пластиковые губки недостаточной толщины, то ли ещё что-то?!

Зачем китайца возили в Москву

Пришлось вызывать китайского спеца в Москву и везти его на стрельбище. Расстреливать, понятно, не стали: просто показали детали конкурентов и оригинал вживую на оружии, объяснили, что и где нужно убрать. Посидели на пеньках, покрутили детали, послушали стук и щелчки, которых быть не должно…. И всё! Только путем «натурного» испытания на стрельбище до изготовителя форм и технолога дошло, что и где должно ходить свободно, где должно сидеть без люфта, что к чему мы подгоняем. 

Понимаете, у вас нет возможности приехать в Китай и там пострелять: там жесткий контроль, и даже страйкбольное оружие фактически под запретом. Поэтому чтобы объяснить ключевому специалисту, чего же мы хотим получить, пришлось везти его сюда. 

Вывод: есть вещи, которые не всегда можно объяснить удаленно — ни в письме, ни по видеосвязи даже составлением жесточайшего ТЗ. Нужен именно опыт использования. Как если «делаешь для себя». В нашем случае: есть стандартная труба, которая сделана с определенными допусками.  Есть пластиковая деталь, которая надевается на трубу и которая тоже делается с допусками. В зависимости от материала и режима литья мы можем получить разную усадку пластика; соответственно, люфт будет разный. 

При этом с той фабрикой, которая нам делала приклад, наш технолог уже лет восемь взаимодействует, и это люди, которые друг с другом постоянно контачат и уже почти без слов друг друга понимают. Но все равно получилось так, что пока изготовитель и технолог не подержали деталь в руках и не понял досконально ее функционал, сделать нормально ее не могли. 

Причина в том, что для изготовителя форм и технолога ваша уникальная форма — просто очередная пресс-форма. Им без разницы, приклад это, бампер от машины, корпус монитора или что-то еще. Главное — делай по чертежу (читай, допускам) — не будет 3,14здежу…

Вот только после этого можно было переходить к тестовой партии — несколько сотен штук.

Цены и время

Сколько все это удовольствие стоило: производство комплекта пресс-форм и штампов — около 40 тысяч долларов.  Разработка КД — около 1,5 тысяч, покупные детали, которые по одной штуке не продаются. Накладные расходы были заложены китайцами в стоимость тестовой партии. Бонусом китайский спец получил возможность подышать чистым тверским воздухом и эмоции на всю жизнь (огнестрельное оружие- лучший антистресс)

Итого по стоимости: вышло примерно 45 тысяч долларов — за все. 

По времени: 9 месяцев, из них две недели — разработка первоначального пакета  КД, изготовление формы — полтора месяца. Все остальное – это подбор материала, внесение изменений в пресс-форму, танцы с люфтом, подбором покрытия.  

Почему нельзя, даже если очень хочется

А теперь подробно о том, почему нельзя реверс-инжинирингом  сделать полную копию оригинала. На примере китайского приклада. 

Китайская копия приклада Magpul изготовлена, по-видимому, через волшебный шкаф: туда зашвырнули образец и сказали: «Копируйте!». Шкаф сработал, но по-восточному оригинально (или как нейросеть — человек на картинке вроде бы человек, но с шестью пальцами). 

Например, в китайской версии один подпружиненный сопор  заменен на такой же, но просто отлитый из пластика. 

Этот стопор находится в составе пружинного элемента, который отвечает за регулировку приклада. Что все элементы на месте, возможность регулировки у приклада вроде бы есть, но он… не фиксируется.

Слева — продукт реверс-инжиниринга. Все как у Magpul — металлический шарик. Справа — изделие из Китая. Просто шарик пластиковый — экономия! 
Слева — продукт реверс-инжиниринга. Все как у Magpul — металлический шарик. Справа — изделие из Китая. Просто шарик пластиковый — экономия! 

Зато китайская копия стоит порядка 3,5 тысяч рублей против 140 с лишним долларов, за которые в РФ продают оригинал. 

Если убрать традиционную китайскую экономию на всем и вся ради удешевления, то причина того, почему реверс-инжинирингом нельзя сделать точно так же, как оригинал, начинает проясняться. 

Почему ты не сможешь клонировать оригинал

  1. Разные материалы в итоге. «Тот же самый пластик» ты в большинстве случаев не подберешь.

  1. Соответственно, разные технологии производства, которые зависят от материалов, а от технологии производства зависит результат.

  1. Вынужденная либо сознательная замена одних материалов другими (как это может отразиться на функционале, видно на примере китайского приклада). 

  1. Разные допуски, вскользь или туманно оговоренные в ТЗ. 

  1. Сопутствующие сюрпризы, например, проблемы в процессе сборки. Какие именно, узнаешь непосредственно на сборке, потому что о них может только сборщик сказать.  

В общем, для хорошего, годного копирования чужого продукта недостаточно просто скопировать его внешний вид и геометрию. Даже если снять самые точные размеры, одно это не обеспечит того функционала, который нужен. 

А что надо, чтобы сделать хорошо? 

Чуть изменить точку зрения на процесс. 

  1. Реверс-инжиниринг — это не копирование. Это формулировка технических требований к изделию. Во-первых, в точности ты не скопируешь. Во-вторых, мир материалов обширен до безобразия. Если у тебя прозрачный корпус, это не обязательно должен быть поликарбонат. Все зависит от твоих требований. Если он не должен быть супер прочным, это может быть прозрачный полистирол. Производителю не надо задавать конкретную марку материала (если вы не военные или медики с сертификацией), опишите требования к нему и экспериментируй с разными. 

  1. Пакет КД обязателен к изготовлению. Забудь про китайский шкаф. Волшебство не работает. У тебя должны иметься:

    1. конструкторская документация на изделие;

    2. техническое задание. 

В документах максимально подробно должны быть прописаны функционал продукта, все его сопрягаемые детали — как эти детали должны сопрягаться, с зазором или внатяг; допуски и прочее. 

  1. Стремись улучшить исходник. Допустим, этот продукт как копию приклада CTR мы не можем поставлять, — потому что авторские права и тому подобное. Но мы можем изменить дизайн, например, и перенести полученный в этом проекте опыт на другой приклад.  

  1. Не ленись контактировать с фабрикой лично. 1200-1500 долларов на поездку в Китай при стоимости проекта даже в 50-60 тысяч отобьются на раз и сэкономят месяц времени. Не все можно объяснить по зуму, телеге  или мейлу. 

  1. Приготовься потратить время и ресурсы на доводку изделия до ума. 

От автора: в общем-то так обычно и бывает: кажется одно, а получается немного другое. И — внимание, деталь: этот проект занял 9 месяцев от образмеривания до тестовой партии, и это очень хорошо. Быстрее не получится, учитывая изготовление пресс-форм.  

Если вам нужно больше цифр по изготовлению деталей из пластика, читайте эту статью, там есть калькулятор стоимости производства и разработки корпусов (по нескольким технологиям).  

Есть что сказать об этом опыте? Или вы тоже хотели бы заняться реверс-инжинирингом, но стесняетесь боитесь где-то навернуться? Мы уже не боимся. Велкам в комментарии, расскажем, как побороть страх. 

Источник: https://habr.com/ru/articles/797269/


Интересные статьи

Интересные статьи

Сегодня я хотел бы поделиться с вами опытом, который мы приобрели в компании «Магнит» при загрузке данных из внешних источников в корпоративное хранилище данных. Расскажу о проблемах, с которыми мы ст...
Личный опыт выгорания.
В статье мы рассказали о внедрении ML-платформы Kubeflow в кластере Kubernetes на площадке заказчика. Инструменты, которые мы использовали в рамках проекта, являются программным обеспечением с от...
Для начинающих Unity-разработчиков, гейм-дизайнеров, игровых аналитиков и тестировщиков игр. В краснодарской студии Plarium на эти вакансии можно устроиться без опыта раб...
Алексей Найдёнов, CEO ITooLabs, рассказывает про разработку телекоммуникационной платформы для операторов связи на языке программирования Go (Golang). Алексей также делится опытом развертывания и...