Резюме від 6 лютого 2023 PRO

Андрей

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

Зайнятість:
Повна зайнятість.
Вік:
60 років
Місто проживання:
Дніпро
Готовий працювати:
Дистанційно, Дніпро

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

Шукач вказав телефон, ел. пошту та адресу.

Прізвище, контакти та світлина доступні тільки для зареєстрованих роботодавців. Щоб отримати доступ до особистих даних кандидатів, увійдіть як роботодавець або зареєструйтеся.

Досвід роботи

C# (.NET) developer

з 10.2022 по нині (1 рік 8 місяців)
Ulyss.Club, Дніпро (IT)

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

Разработчик

з 01.2022 по нині (2 роки 5 місяців)
Проект 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 по нині (2 роки 5 місяців)
Проект 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 по нині (2 роки 5 місяців)
Проект 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 по нині (2 роки 5 місяців)
Проект 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 років 2 місяці)
AGRONOVA EUROPE AG, Zug, Швейцария (Минеральные удобрения: производство и торговля)

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

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

з 01.2011 по нині (13 років 5 місяців)
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#).

Схожі кандидати

Усі схожі кандидати


Порівняйте свої вимоги та зарплату з вакансіями інших підприємств: