[{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-20 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"Facta loquuntur.","signatureHTML":"Facta loquuntur.","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.979,"absoluteRating":109927,"dynamicRating":1678.012,"dynamicRatingStars":10,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-24T09:20:19.5442828+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":6551,"questions":12,"questionsPosts":18345,"questionsAnswers":6663,"questionsPostsEvaluations":2831,"forumPosts":5697},"isRfproUserClass":true,"id":17387,"name":"Гордиенко Андрей Владимирович","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-04-23T06:46:53","photo":"users/17387/f4979bc95a484b9f43f75cfe66538acd.jpg","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"users/17387/200_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview120":"users/17387/120_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview100":"users/17387/100_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview80":"users/17387/80_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview40":"users/17387/40_f4979bc95a484b9f43f75cfe66538acd.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-20 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\nЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","aboutHTML":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\u003Cbr\u003EЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.935,"absoluteRating":25753,"dynamicRating":461.239,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-24T09:20:19.5445398+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":5583,"questions":25,"questionsPosts":7459,"questionsAnswers":1225,"questionsPostsEvaluations":788,"forumPosts":399},"isRfproUserClass":true,"id":259041,"name":"Алексеев Владимир Николаевич","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-01-30T15:24:45","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-20 мин."},"isBanned":false,"roleString":"Старший Модератор","roleIcon":"fa-user-tie","socialMedia":[],"aboutText":"634034, г.Томск, ул.Красноармейская 122, кв.173","aboutHTML":"634034, г.Томск, ул.Красноармейская 122, кв.173","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.985,"absoluteRating":21746,"dynamicRating":412.798,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-24T09:20:19.5446254+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":13,"counters":{"daysAtPortal":5267,"questions":1,"questionsPosts":1973,"questionsAnswers":1283,"questionsPostsEvaluations":588,"forumPosts":91},"isRfproUserClass":true,"id":312929,"name":"Коцюрбенко Алексей Владимирович","email":"","role":12,"registDate":"1000-01-01T00:00:00","lastDate":"2023-11-05T17:20:40","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-20 мин."},"isBanned":false,"roleString":"Советник","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":5,"absoluteRating":9460,"dynamicRating":387.543,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-24T09:20:19.5447157+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":10,"counters":{"daysAtPortal":2441,"questions":0,"questionsPosts":472,"questionsAnswers":398,"questionsPostsEvaluations":298,"forumPosts":1},"isRfproUserClass":true,"id":401284,"name":"Михаил Александров","email":"","role":9,"registDate":"1000-01-01T00:00:00","lastDate":"2024-04-21T19:50:04","photo":"users/401284/48171011af39b6bb3a74df8c0fcf97d0.jpg","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"users/401284/200_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview120":"users/401284/120_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview100":"users/401284/100_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview80":"users/401284/80_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview40":"users/401284/40_48171011af39b6bb3a74df8c0fcf97d0.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-20 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.987,"absoluteRating":6052,"dynamicRating":222.543,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-24T09:20:19.544813+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":2719,"questions":0,"questionsPosts":527,"questionsAnswers":250,"questionsPostsEvaluations":155,"forumPosts":0},"isRfproUserClass":true,"id":400669,"name":"epimkin","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-02-19T23:46:05","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-20 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"[i]С уважением[/i]\n[i]shvetski[/i]","signatureHTML":"\u003Ci\u003EС уважением\u003C/i\u003E\u003Cbr\u003E\u003Ci\u003Eshvetski\u003C/i\u003E","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.963,"absoluteRating":11493,"dynamicRating":201.284,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-24T09:20:19.5449247+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":5709,"questions":35,"questionsPosts":1567,"questionsAnswers":588,"questionsPostsEvaluations":324,"forumPosts":44},"isRfproUserClass":true,"id":226425,"name":"Konstantin","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-04-20T13:29:47","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false}]
Здравствуйте! Прошу помощи в следующем вопросе: Подскажите пожалуйста, как правильно надо делать это задание? Прикрепляю отчет и саму программу. В отчете написано само задание и те действия докуда я смогла дойти. Я понимаю что нужно делать дальше, но мне кажется что у меня неправильно дальше срабатывает или даже вообще не срабатывает программа.
Да Вы правы, я не совсем поняла весь этот процесс.
Я даже пробовала делать так: Открываю exe файл в программе, далее нажимаю комбинацию ctrl + n и нахожу в списке функцию GetWindowTextA, дважды щелкаю кнопкой мыши по этой функции и оказываемся в том месте где есть эта функция в коде. Сразу после этого ставлю точку останова, запускаю программу и начинаю кнопкой F8 проверять все строчки. Моя проблема в том, что я хочу проверить строчку в которой написано CMP ESI, 7 , но я не могу на ней не точку останова поставить, не просмотреть ее. Меня почему-то перекидывает на другой блок сразу.
Я прикрепила скриншот и там пометила строчки 1 и 2. Когда я стою на строчке один и хочу попасть на выделенную желтым строчку, то меня перебрасывает на вторую строчку
Проблема этой защиты, в том что она что-то вводит, раз вводит, значит есть адрес, куда введенная строка будет записана. [code lang=asm].idata:004040B0 ; int __stdcall GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount) .idata:004040B0 extrn GetWindowTextA:dword ; CODE XREF: sub_401130+165p[/code] В данном случае Вас должен интересовать второй параметр LPSTR lpString, это адрес куда будет записан введенный Вами пароль. Первый бряк должен поймать функцию ввода, смотрим адрес. Поставив бряк на чтение этого адреса(не на запись, т.к. можно попасть в дебри системной функции, а потом долго от туда выбираться). Отпускаем программу, срабатывание бряка даст сам механизм контроля пароля - наш пароль будет сравниваться с чем-то, вот это и есть правильный зашифрованный пароль.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Это оконное приложение, которому для создания окна нужно регистрировать свой класс. Запустив IDApro получаем следующий код: [code lang=asm h=200]sub esp, 4Ch push esi mov esi, [esp+50h+hInstance] push edi mov edi, ds:LoadIconA push 7F00h ; lpIconName push 0 ; hInstance mov [esp+5Ch+var_30.cbSize], 30h mov [esp+5Ch+var_30.style], 3 mov [esp+5Ch+var_30.lpfnWndProc], offset sub_401130 mov [esp+5Ch+var_30.cbClsExtra], 0 mov [esp+5Ch+var_30.cbWndExtra], 0 mov [esp+5Ch+var_30.hInstance], esi call edi ; LoadIconA push 7F00h ; lpCursorName push 0 ; hInstance mov [esp+5Ch+var_30.hIcon], eax call ds:LoadCursorA push 0 ; i mov [esp+58h+var_30.hCursor], eax call ds:GetStockObject push 7F00h ; lpIconName push 0 ; hInstance mov [esp+5Ch+var_30.hbrBackground], eax mov [esp+5Ch+var_30.lpszMenuName], 0 mov [esp+5Ch+var_30.lpszClassName], offset Caption ; "PopPad1" call edi ; LoadIconA mov [esp+54h+var_30.hIconSm], eax lea eax, [esp+54h+var_30] push eax ; WNDCLASSEXA * call ds:RegisterClassExA[/code] Его аналогом есть код С(слизан с другого сайта):
Код:
HWND hwnd; // дескриптор окна MSG msg; // структура сообщения WNDCLASS w; // структура класса окна // Регистрация класса окна memset(&w,0,sizeof(WNDCLASS)); w.style = CS_HREDRAW | CS_VREDRAW; w.lpfnWndProc = WndProc; // имя оконной функции w.hInstance = hInstance; w.hbrBackground = (HBRUSH)(WHITE_BRUSH); w.lpszClassName = "My Class"; RegisterClass(&w);
В коде интересным местом является оконная процедура определенная в строке [code lang=asm]mov [esp+5Ch+var_30.lpfnWndProc], offset sub_401130[/code] Именно она будет обслуживать созданное окно, обрабатывая все его события.
Код:
LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam) { switch (Message) { case WM_Event://событие, которое обрабатывает оконная процедура //далее подстановка из кода mov eax, hWnd push ebx ; nMaxCount push edi ; lpString push eax ; hWnd call ds:GetWindowTextA cmp byte ptr [edi+esi-1], 0Ah//проверяется конец ввода jnz short loc_4012FE cmp esi, 7 jnz short loc_4012D//проверяется длина введенной строки xor eax, eax lea ecx, [esp+20h+var_14]//считается эффективный адрес в стеке loc_4012AD: mov dl, [ecx]//что-то читается, из стека mov bl, [edi+eax]//что-то читается со строки xor dl, 25h//изменяется cmp bl, bl//сравнивается jnz short loc_4012D5//не совпало переход inc eax add ecx, 4 cmp eax, 5 jl short loc_4012AD//проверка продолжается // break; default: return DefWindowProc(hwnd, Message, wparam, lparam); } return 0; }
Перейдя по ссылке получаем предел совершенства защиты: [code lang=asm]sub esp, 14h mov eax, [esp+14h+Msg] mov [esp+14h+var_14], 0C1h cmp eax, 5 mov [esp+14h+var_10], 0D6h mov [esp+14h+var_C], 0CAh mov [esp+14h+var_8], 0CEh mov [esp+14h+var_4], 0CBh[/code] Но мы пароль пока не знаем. Хитрость в том, что когда что-то происходит с окном, пароль заносится в стек, а потом когда событие обработано, стек освобождается. И там как-бы ничего нет. Такое поведение характерно для программ написанных на С.
Но если обратить внимание, на esp+20h+var_14, то можно предположить, что это и есть пароль.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Запускаем OllyDbg вместе с отлаживаемой программой. Переходим в режим:
Находим функцию, которая читает информацию с поля ввода пароля, в данном случае - GetWindowTextA. Находим её в коде и ставим брейкпоинт. Нам важен второй параметр, передаваемый в функцию, т.к. функция может вызываться из нескольких мест, если ПКМ-нуть на регистре EDI выбрать поле Follow in Dump, то после каждого нажатия клавиши, её код будет отображаться в памяти. Т.е. это наша функция, которая нам нужна. За ней идет код: [code lang=asm] cmp byte ptr [edi+esi-1], 0Ah jnz short loc_4012FE cmp esi, 7 jnz short loc_4012D5 xor eax, eax lea ecx, [esp+20h+var_14] loc_4012AD: mov dl, [ecx] mov bl, [edi+eax] xor dl, 25h cmp bl, dl jnz short loc_4012D5 inc eax add ecx, 4 cmp eax, 5 jl short loc_4012AD[/code] Первый смр, проверяет нажата ли клавиша Enter, т.е. закончен ли ввод. Второй смр, проверяет количество введенных символов, Enter записывается в память кодами 0Dh и 0Ah, т.е. в пароле 5-ть символов. Выполняя код в шаговом режиме наблюдаем за регистром ЕСХ, как только он измениться, ПКМ-каем и выбираем пункт Folow in Stack, будет показано содержимое стека, см. рисунок.
Найдя механизм защиты, теперь можно: - ввести правильное слово: - заставить этот механизм сравнивать эталонное слово с самим собой; - изменить условный переход, так, чтобы при вводе не правильного слова, выдавалось правильное сообщение. Ну вот и всё. Удачи!
5
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Константин Николаевич, у меня осталось несколько вопросов по вашему ответу. Можно с вами как-то по Skype связаться, чтобы задать Вам сразу все мои вопросы и Вы ответили на них. Так как у нас с Москвой разница во времени на 7 часов, то сообщениями обмениваться не совсем удобно. А сама я с Дальнего востока
{"canUserNotesAccess":false,"canUserAdminsNotesAccess":false,"canAskQuestion":false,"canEditQuestions":false,"canSeeQuestionsComplains":false,"isSuperAdmin":false,"isAdmin":false,"isModer":false,"canCreateNewUser":false,"canConfirmUser":false,"canEditUserName":false,"canEditUserRole":false,"canEditUserEmail":false,"canEditUserPhone":false,"canEditUserBirthdate":false,"canEditUserCountry":false,"canEditSocialMedia":false,"canDeleteUserPhoto":false,"canDeleteUser":false,"canEditUserAbout":false,"canBanUser":false,"canResetUserPassword":false,"canEditRegistDate":false,"canChangeUserRating":false,"canAccessToAdmin":false,"canAnnouncements":false,"canManageQuestionPosts":false,"canManageForumSections":false,"canManageForumThreads":false,"canManageForumPosts":false,"canCreateForumThreads":false,"canSeeUserEmail":false,"canSeeUserPhone":false,"canSeeIPAddress":false,"canSeeUserRegistDate":false,"canSeeUserSocialMedia":false,"canSeeBirthDate":false,"canSeeUserCountry":false,"canSeeUserSettings":false,"canSeeDeletedPosts":false,"isEmailConfirmed":false,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":0,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-20 мин."},"isBanned":false,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":0,"absoluteRating":0,"dynamicRating":0,"dynamicRatingStars":0,"timezone":{"id":283,"baseUtcOffset":"03:00:00","displayName":"(UTC\u002B03:00) Москва","linuxid":"Europe/Moscow"},"currentDateTime":"2024-04-24T12:20:19.5453799+03:00","isValid":false,"isUnconfirmed":true,"isConfirmed":false,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":1,"counters":{"daysAtPortal":0,"questions":0,"questionsPosts":0,"questionsAnswers":0,"questionsPostsEvaluations":0,"forumPosts":0},"isRfproUserClass":true,"id":0,"name":"Неизвестный","email":"","role":0,"registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":false,"isNewUser":false,"isExisted":false,"isExpert":false}