Вживання російської небезпечне

Чому ми так вважаємо
Перейти на українську
Назустріч — платформа взаємодії ветеранів та роботодавців
Переглянути
  • PRO

Андрей

Программист .Net, C++, 1С

Вид занятости:
полная
Возраст:
60 лет
Город проживания:
Днепр
Готов работать:
Днепр, Удаленно

Контактная информация

Соискатель указал телефон , эл. почту и адрес.

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

Опыт работы

.Net developer

с 03.2023 по 09.2023 (6 месяцев)
Devart, Дистанційно (IT)

C# (.NET) developer

с 10.2022 по наст. время (2 года 5 месяцев)
Ulyss.Club, Дніпро (IT)

Backend development of web application (https://ulyss.club).

Разработчик

с 01.2022 по наст. время (3 года 2 месяца)
Проект AnyHook (C++, https://github.com/kachamkin/AnyHook), Дистанційно (IT)

x64-библиотека (dll), позволяющая устанавливать произвольные Windows-хуки на вызовы произвольных функций любых модулей Windows. Хук может быть:
1)локальным, — когда целевая функция и заменяющий ее обработчик находятся в адресном пространстве одного процесса;
2)удаленным, — когда устанавливается перехват вызова целевой функции из другого процесса, отличного от процесса, в адресном пространстве которого находится обработчик;
3)глобальным, — когда устанавливается перехват вызова целевой функции всеми процессами в пределах одной сессии (вернее, всеми процессами сессии, вызывающими функцию получения оконных сообщений Windows GetMessage).
Библиотека может быть использована как управляемым (.NET Framework, .NET Core, .NET), так и неуправляемым приложением (напр., разработанным на C++); более того, допустимы любые комбинации «целевая функция -> обработчик»: native target -> managed callback, native target -> native callback, managed target -> managed callback, managed target -> managed callback.
Установка хука может производится любым из способов: передачей имени модуля и имени функции (и имени делегата для управляемого кода); передачей адреса функции в адресном пространстве целевого или устанавливающего хук процесса (для управляемого кода — адреса делегата); передачей самого экземпляра делегата для вызова из управляемого кода.
И native-, и managed- части проекта реализованы в пределах единственной dll (она содержит и экспортируемые Win32 методы и свойства, и метаданные об управляемых методах и свойствах, доступных извне).
Хук устанавливается путем замены первых четырнадцати байтов целевой функции («трамплин») инструкцией перехода по адресу функции-обработчика:
ff 25 00 00 00 00 <8 байтов адреса обработчика>. т. е. JMP <адрес обработчика>.
Для «прыжка» могут быть также использованы инструкции вида MOV RAX + JMP RAX или PUSH + RET, но использование JMP кажется предпочтительным: 1) одна инструкция вместо двух; 2) не меняется состояние системы (ни регистры процессора, ни стек).
При удалении хука «трамплин» возвращается на свое место.
Установкой свойства UseStealth = true включается “stealth”-режим: для подключения библиотеки к целевому процессу не используется функция CreateRemoteThread, поскольку ее вызов может показаться подозрительным anti-malware приложениям. Вместо этого берется любой активный поток целевого процесса, замораживается, состояние регистров и стека на этот момент сохраняется, RIP-регистр процессора заполняется адресом первой инструкции функции: 1) загружающей библиотеку во вновь созданном потоке целевого процесса; 2) возвращающей на место исходное состояние стека и регистров процессора; 3) передающей управление инструкции, перед которой поток был заморожен.
Библиотека поддерживает любое количество хуков с любым количеством целевых процессов, сохраняя информацию о них и обеспечивая корректное межпроцессное и межпоточное взаимодействие с помощью средств синхронизации: событий, мьютексов и межпроцессной общей памяти.

Разработчик

с 01.2022 по наст. время (3 года 2 месяца)
Проект SignTool (C#, https://github.com/kachamkin/SignTool), Дистанційно (IT)

.NET 6 cryptographic utility

Attached and detached digital file signatures (CMS/PKCS#7): signing and verification.
Self-signed certificates creation: RSA and ECDSA.
AES: file encryption and decryption.
Certificate formats conversion: PFX, PEM, CRT, CER.
RSA: direct file encryption and decryption (by blocks).
ECDH keys generation.
GUID creation.
File hash computing: MD5, SHAxxx.
String conversion tool ("Text Wizard").
Cryptographic library (managed and COM-available).
Applications signing (.exe, .dll, .msi etc.)

Разработчик

с 01.2022 по наст. время (3 года 2 месяца)
Проект DragDropRemoteHook (https://github.com/kachamkin/DragDropRemoteHook), Дистанційно (IT)

Задача: обеспечить пользователю способ прикреплять к документам «1С» файлы-вложения, представляющие собой почтовые сообщения MS Outlook целиком, или выбранные пользователем attachments. Способ должен требовать от пользователя минимального количества действий мышью и клавишами.
Очевидно, что простейшее решение — это перетаскивание сообщения или вложения мышью или импорт его в «1С» через буфер обмена (Ctrl + C / Ctrl + V). Оказалось, однако, что Outlook помещает в данные перетаскивания (или в буфер) не привычный file drop list, распознаваемый большинством приложений-приемников (в частности, «1С»), а объекты, структурированные как compound-файлы, — т. е. реализующие интерфейсы IStream & IStorage.
Задача решается внедрением в процесс Oulook хука, который:
- перехватывает вызов Windows-функций OleSetClipboard (Ctrl + C) и DoDragDrop (начало перетаскивания);
- читает содержимое compound-файла через интерфейсы IStream & IStorage;
- записывает прочитанное содержимое в физические файлы на диске (в каталог временных файлов);
- заменяет содержимое буфера или данных перетаскивания (IDataObject) на обычный file drop list, содержащий пути к файлам, записанным на диск на предыдущем этапе.

Разработчик

с 01.2022 по наст. время (3 года 2 месяца)
Проект RunAsSvc (C++, https://github.com/kachamkin/RunAsSvc), RunAsClient (C#, https://github.com/kachamkin/RunAsClient), Дистанційно (IT)

Проект предоставляет средства удаленного управления компьютером-сервером с компьютера-клиента через TCP/IP. Серверная часть написана на C++ как служба Windows, запускаемая с максимальными локальными правами (от имени NTAuthority\LocalSystem). Клиентская часть реализована как Desktop-приложение .NET 6.
Обмен данными между клиентом и сервером полностью безопасен. На каждый запрос клиент формирует новый ключ симметричного шифрования AES 256; содержимое запроса шифруется этим ключом, сам ключ шифруется с помощью RSA-сертификата, хранящегося как ресурс клиента и сервера, и прилагается к запросу. Ответ сервера на текущий запрос клиента шифруется тем же ключом AES. Сертификат и соответствующий ему закрытый ключ хранятся в виде PFX-пакета, зашифрованного паролем пользователя. Вход в клиентское приложение осуществляется с помощью этого пароля: допуск разрешается, если с помощью введенного пароля удалось расшифровать PFX-пакет и создать на его основе сертификат. Т. обр., ни пароль, ни какой-либо его хэш не хранятся клиентским приложением.
Клиент может с наивысшими правами:
- запустить любой процесс на сервере (если нужно, предварительно загрузив на сервер исполняемый файл);
- получить список процессов, выполняющихся на сервере, и управлять ими (в т. ч. принудительно прекратить выполнение любого процесса, изменить его приоритет etc.); получить списки потоков процесса и загруженных им модулей;
- получить список пользователей, выполнивших вход на удаленный компьютер, и управлять ими (в т. ч. принудительно завершить сессию пользователя, отправить сообщение пользователю etc.);
- получить информацию об удаленной системе;
- получить использование памяти удаленной системой;
- перезагрузить удаленную систему или завершить ее работу;
- управлять файловой системой удаленного компьютера (реализован интерфейс, принципиально не отличающийся от стандартного интерфейса проводника Windows, — в т. ч. перетаскивание мышью и работа с буфером обмена);
- управлять пользователями удаленной системы (создание/удаление пользователей и групп, назначение прав, включение в группы/исключение из групп, пароли);
- управлять любыми характеристиками системы, доступ к которым можно получить средствами WMI, и выполнять любые доступные методы WMI с заданием параметров для них.

Реализован механизм предотвращения остановки работы службы (в т. ч. через TerminateProcess) или изменения параметров ее запуска (Automatic -> Manual, System -> different user).

Middle .NET & C++ Developer

с 01.2019 по 08.2022 (3 года 7 месяцев)
PM SoftSuite, Дніпро (IT)

Development of .NET Core MVC web applications and services, interfaces for MS SQL databases. Development of Windows services (C++) and desktop applications (C# .NET Core): automatic encrypted data transfer between computers in local network and through Internet, tools of remote control and cryptographic tools. Creation of complex installers for Windows desktop products.

Разработчик

с 01.2013 по 12.2014 (1 год 11 месяцев)
Партнеры фирмы "1С": "Wise Advice", "Infosuite", Дистанційно (IT)

Разработка разнообразных многоцелевых решений на платформе "1С: Предприятие".

Разработчик, консультант

с 04.2011 по наст. время (13 лет 11 месяцев)
AGRONOVA EUROPE AG, Zug, Швейцария (Минеральные удобрения: производство и торговля)

Разработка и внедрение оригинальной бухгалтерской конфигурации на базе платформы "1С: Предприятие 8", ориентированной на международные стандарты бухгалтерского учета, интеграция с другими информационными системами.

Разработчик, консультант

с 01.2011 по наст. время (14 лет 2 месяца)
SUEK AG, St. Gallen, Швейцария (Добыча и продажа угля)

Разработка и внедрение оригинальной учетной системы для трейдеров на платформе "1С:Предприятие 8", интеграция с другими информационными системами.

Разработчик, консультант

с 01.2010 по 12.2011 (1 год 11 месяцев)
Bovis Lend Lease, Москва, РФ (Строительство, архитектура, дизайн интерьера)

Внедрение и доработка типовых решений "Бухгалтерия предприятия КОРП" и "Зарплата и управление персоналом".

Разработчик, консультант

с 10.2008 по 10.2009 (1 год)
Zeppelin - Russland, Москва, РФ (Машиностроение)

Внедрение и сопровождение решения "Зарплата и управление персоналом" ("1С: Предприятие 8.1"). Модификация и доработка типовой конфигурации. Широкий спектр внешних отчетов и обработок. Интеграция с другими информационными системами.

Разработчик, консультант

с 09.2007 по 10.2008 (1 год 1 месяц)
Консалтинговая компания "Киода", Москва, РФ (Бизнес-консалтинг)

Разнообразная работа с клиентами компании в части разработки оригинальных и поддержки и доработки типовых решений на базе "1С: Предприятия 8".

Разработчик

с 09.2004 по 01.2005 (4 месяца)
Фирма "1С", Москва, РФ (IT)

Разработка первых Web-приложений для платформы "1С: Предприятие 8" с использованием Web-расширения (C#).

Ведущий программист, технический руководитель проекта

с 09.2001 по 08.2007 (5 лет 11 месяцев)
Группа компаний "Полипластик", Москва, РФ (Производство полимеров)

Разработка и внедрение оригинальных учетных систем на базе "1С: Предприятие 7 - 8" (производство, продажи, кадровый учет), интеграция с другими информационными системами.

Образование

Днепропетровский государственный университет

Механико-математический, Днепр (Днепропетровск)
Высшее, с 1981 по 1986 (4 года 9 месяцев)

1986 — 1989: аспирантура; 1989 — 1993: преподавание и научная работа.

Знание языков

Английский — выше среднего

Дополнительная информация

https://github.com/kachamkin

Помимо опыта разработки в среде "1С" имею опыт web-разработки (PHP, JavaScript), а также опыт разработки Windows-приложений (native C++, .NET C#).

Telegram, Skype, Whatsapp: @kachamkin +38 99 602 90 15
Предпочтительный способ связи — Telegram

Похожие кандидаты

Все похожие кандидаты


Сравните свои требования и зарплату с вакансиями других компаний: