Перейти к содержанию

Antonshka

Пользователи+
  • Постов

    410
  • Зарегистрирован

  • Посещение

  • Победитель дней

    16

Весь контент Antonshka

  1. Порой он полезен. Кстати, как оказалось в оригинале книги пирамида не выравнивается по правому краю, а имеет вид - x xxx xxxxx У тебя правда она получилась немного кривоватая, наверно это от того, что разница между количеством "x" не 2 а 1..
  2. Наверно нашёл ответ в интернете - "Имена аргументов, при объявления прототипов являются необязательными." Вариант решения задания без for, while, do, recursive function, string(), но с тем же cout
  3. Сегодня начал читать главу "функции". Возник вопрос. @Xipho , почему в твоём скрипте код имеет такой вид вместо такого или такого? В книге автор пишет что объявление (прототип) функции должно содержать возвращаемый тип функции "void", имя функции и типы аргументов функции void DrawLine(int); а определение функции должно содержать возвращаемый тип функции "void", имя функции, типы и имена а̶р̶г̶у̶м̶е̶н̶т̶о̶в параметров функции в том же порядке. void DrawLine(int tabs) { } Больше всего мне интересно почему у тебя в объявлении функции указан не только тип, но и имя аргумента. Спрашиваю для того, чтобы понять как на самом деле нужно объявлять.
  4. Кто-нибудь сможет решить задание вообще без использования for, while, do, recursive function, string(), но с тем же cout?
  5. Работает исправно, но печатает со второй строки. По задумке нужно с первой.
  6. Конечно странно. Просто в книге Лафоре, это задание предваряет обьяснение std::string. Потому читающий не имеет возможности использовать такой метод. Отсюда и вопрос. А курсы - по отзывам я понял, что они равносильны самостоятельному обучению. Разница лишь в том, что на курсах даётся материал более правильно последовательный. Но за совет спасибо.
  7. Интересный вариант! Более простой чем у меня. Наверно это от того, что я не использовал string(). Впрочем немудрено - ведь до string() я ещё не дошел. Понял твою точку зрения. Возможно действительно так. Мне думается это задание на запоминание правил написания кода, на запоминание употребляемых выражений, - словом для практики, также и на развитие мышления. P.S. Написать без использования string() смог бы?
  8. Да, согласно заданию, пирамида должна быть выравнена по правому краю. Также с каждой новой линией количество символов 'x' должно увеличиваться не на 1, но таким образом х ххх ххххх Значит пока у вас нет решения. Вот еще чуть более изощренный вариант решения с моей стороны Скрипт Результат с пробелом Результат с '0' вместо пробела Как видно из последнего изображения, пирамида должна быть зеркальной, должна начинаться от левого края, должна выравниваться по правому краю, должна иметь 20 строчек. '0' - здесь просто для наглядности что пирамида зеркальная и что начинается от левого края.
  9. Antonshka

    С++ задание

    Задание из книги Лафоре Кто-нибудь пробовал его решить? У меня заняло это несколько часов. Непросто мне она далась. Скрипт Если кто-то из вас решал эту задачу, я с удовольствием посмотрел бы на ваши методы.
  10. С ковычками да, будет читать адрес переменной созданной в АА скрипте. Вот примеры разных результатов, если кому интересно Если я правильно понял из мануала, переменная Value4, которая объявлена здесь - function CheckAddress(Value4), видна только в теле этой функции, но не за её пределами. Это тоже что и объявить local value4 внутри функции. здесь переменная "a" является глобальной, и видна во всем проекте, во всех функциях. "b" - видна только в этом файле и в любых функциях этого файла "с" и "d"- видны только в этой функции Видны только в этой функции- значит вне этой функции невозможно получить доступ к этим переменным. Кроме того чтобы похвастаться, я написал это ещё и с тою целью, чтобы знающие люди найдя здесь неточности, указали мне на них, тем самым сделав наши познания более верными.?
  11. @Garik66 Я не совсем понял как работает эта часть скрипта В мануале по Луа такое описание: Value4 - область видимости этого параметра только функция CheckAddress. То есть Value4 в функции и Value4 созданный в АА скрипте - это разные переменные. return - возврат результата. Например вызов такой функции вернет 113. CheckAddress(111) - метод вызова функции с передачей в параметр Value4 значения 111 readInteger(Value4) ~= nil - это операция отношения, следовательно return readInteger(Value4) ~= nil вернет либо false, либо true. Такие вот описания там. @Garik66 В написанных тобою скриптах AA я не увидел вызова функции CheckAddress. Также на видео хотелось бы увидеть поведение туториала в случае если указатель указывает на nil.
  12. Antonshka

    Атака геморроя

    Кто как избегает болезнь геморрой, столь присущую программистам? Лично сам пробовал стоять, но это не помогает. От долгого стояние геморрой также развивается. Пробовал самодельное сидение с отверстием, прототип ортопедической подушки от геморроя, - не эффективно. Осталось опробовать полулежачее положение, которое правда немного неудобное для печатания. С одной стороны геморрой играет отрицательную роль опущенного якоря для движущегося корабля, с другой стороны положительную роль отсечки, для спортивного автомобиля.
  13. 7. Вариант использовать для проверки на ноль команду ""test" вместо "cmp". test - логическая "И" test reg,reg- проверка на ноль. Пример 1 (reg = 12345) test reg ,reg = test 12345,12345 = 12345 "И" 12345 = 12345 Пример 2 (reg = 0) test reg ,reg = test 0,0= 0"И" 0= 0
  14. Пока что кроме IMUL-шифрование параметров ничего не встречал. Вот еще адрес с шифрованным значение 90D8369C, его ключ imul 6FA85A41. Расшифрованное значение 4478B59C (float)994.8376465. Ключ для его зашифровки 9144B5C1. И так все "imul" адреса которые проверял.
  15. Это константа. Но я немного о другом. Я планирую сделать два приложения. Первое приложение для быстрого тестирования значений в памяти, для понимания их назначений.. Вот как оно должно работать - первый адрес, ставим бряк на чтение, получаем ключ типа B05C6C43, придумываем любое новое значение float, используя брутфорс получаем float в зашифрованном виде, записываем его вручную в память и смотрим что изменилось в поведении автомобиля, решаем нужен ли этот адрес для другого второго приложения. Далее идем на второй адрес, ставим опять бряк, берем новый ключ типа B05C6C43, float, брусфорс, наше решение, и так далее, третий адрес, четвертый, тестируем, отбираем. Во втором приложении будут использоваться только отобранные адреса. Для каждого отобранного адреса будет свой собственный ключ типа DA9A406B для зашифровки, и ключ типа B05C6C43 для расшифровки. Во втором приложении брутфорс не нужен. Первое приложение - для отсева параметров автомобиля от не параметров, и для нахождения ключей B05C6C43 и DA9A406B для каждого параметра. Второе приложение - для настройки отобранных параметров.
  16. @MasterGH, @partoftheworlD, интересные идеи. @Garik66, отличный скрипт получился. Как я понял он использует метод пользователя ParkourPenguin? 433C7EDD * DA9A406B mod 2^32 = BCF2465F // encrypt value BCF2465F * B05C6C43 mod 2^32 = 433C7EDD // decrypt value Спасибо за видео @Garik66, интересно было посмотреть. По поводу , я имел ввиду брутфорс для получения DA9A406B. Нужно протестировать много адресов в памяти, перед тем как понять нужны ли они для конечного инструмента или нет. В конечном инструменте будут использованы готовые ключи типа DA9A406B, для быстрой зашифровки. Но для "Коленвала", задача которого есть быстрое понимание назначения текущего значения в памяти по отношению к автомобилю - брутфорс получение DA9A406B для каждого нового B05C6C43 обременительно. Потому так написал. В "Коленвал" наверно нужно встроить опцию получения ключей зашифровки типа DA9A406B, для определенных ключей расшифровки типа B05C6C43. Затем добавить полученные ключи в конечный инструмент.
  17. Коленвал Загрузил бы таблицу и exe, но не знаю как.
  18. С форума СЕ. Автор - ParkourPenguin (float)188.4955597 = 433C7EDD // original value 433C7EDD * DA9A406B mod 2^32 = BCF2465F // encrypt value BCF2465F * B05C6C43 mod 2^32 = 433C7EDD // decrypt value Ключ B05C6C43 для расшифровки известен изначально из инструкции. Используя этот ключ и брутфорс метод, автор получил ключ DA9A406B для зашифровки любого нового значения. Брутфорс метод автора Недостаток такого метода, опять же занимающий некоторое время брутфорс.
  19. Работает быстро, исправно. Для настройки автомобиля правда не подойдет, там важны десятые/сотые доли.
  20. Итог тестирования многопоточности: 19 скриптов АА, в каждом свой отдельный поток (createthread(name)) - поиск для (float)152.4550018 = ~3 секунды. 1 скрипт АА с одним потоком - результат почти тот же. 19 скриптов дали прирост, но не большой.
  21. local x = 0 while x ~= 2684354560 do -- 2684354560 = A0000000 x = x + 1 end print(x) ~ 58 секунд до напечатания "x". Луа не подходит.
  22. (Float)555 - около секунды. В скрипте необычный порядок высвобождения стека, опечатка?
  23. Забыл переместить. То зацикливание которое мы делали в АА скрипте - работает на частоте процессора, с такой же частотой будет работать "while do" в луа скрипте. Такое предположение.
  24. Проверил, скрипт 1 быстрее скрипта 2, в 4-5 раза. Скрипт 1 Скрипт 2
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.