eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: sER, AlexsandrS (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Inqsoft Sign 0f Misery глюк проераммы или я туплю
Посл.ответ Сообщение

Ранг: 4.0 (гость)
Статус: Участник

Создано: 20 октября 2010 22:19 New!
Цитата · Личное сообщение · #1

Подскажите, может кто сталкивался с подобным.

В версии 2.7(тоже-самое и в ранних версиях)
нужно вычесть из четырех байтного 004029f0 четырех байтное 0137e204, если произвести вычитание в калькуляторе, то ответ FF0847EC.
В программе команда вычитания блока двоичных данных отсутствует, поэтому выполняю следующие команды:

перевожу вышеуказанные блоки в десятичную систему счисления
произвожу вычитание
перевожу результат в блок двоичных данных

В результате FE0847EC, соответственно сравнивая ответ с калькулятором- разница на 01000000 (в калькуляторе два старших байта FF, а в программе FE).

Что я делаю не так и как можно решить данную проблему??


Ранг: 1014.8 (!!!!)
Статус: Участник

Создано: 20 октября 2010 22:23 New!
Цитата · Личное сообщение · #2

двоичную арифметику для начала освойте

Ранг: 4.0 (гость)
Статус: Участник

Создано: 20 октября 2010 22:35 New!
Цитата · Личное сообщение · #3

вроде знаю, а что?


Ранг: 1014.8 (!!!!)
Статус: Участник

Создано: 20 октября 2010 22:44 New!
Цитата · Личное сообщение · #4

какие тогда могут быть сомнения?
пересчитайте вручную на белом листе бумаги


Статус: Пришелец

Создано: 20 октября 2010 22:45 New!
Цитата #5

reversecode
Он про баг в s0m говорит.


Ранг: 1014.8 (!!!!)
Статус: Участник

Создано: 20 октября 2010 22:49 New!
Цитата · Личное сообщение · #6

нет
он сомнивается кто из двух программ и него самого прав


Статус: Пришелец

Создано: 20 октября 2010 22:54 New!
Цитата #7

А что делаете вы в данный момент?

Ранг: 4.0 (гость)
Статус: Участник

Создано: 20 октября 2010 23:15 New!
Цитата · Личное сообщение · #8

reversecode
не надо писать ересь.

Меня интересует как решить проблемму не переписывая 5 тыс строк.
В сом есть масса глюков и ограничений, но их благополучно обхожу, а в данной ситуации значения динамически меняются и немогу указать явное значение 014029f0 дабы обойти данную проблему.
Меня интересует решение вопроса и совет, а не глупые бесмысленные посты.


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 20 октября 2010 23:32 · Поправил: PE_Kill New!
Цитата · Личное сообщение · #9

Явно баг в том, что s0m не умеет вычитать по модулю. Надо подумать как обойти.

Подумал. Попробуй такой вариант:
Переводишь всё в десятичную систему.
Отнимаешь от числа 0137e204 число 004029f0.
Отнимаешь от 0 то, что получилось выше.
Переводишь результат в блок двоичных данных.


Ранг: 1014.8 (!!!!)
Статус: Участник

Создано: 20 октября 2010 23:37 New!
Цитата · Личное сообщение · #10

vlad312131
ересь несете вы
с самого начала еще в топике темы
или я туплю
если уверены что глюк программы нужно с того и начинать
- программа глючит как исправить
а вы начинаете свои рассуждения
кто из трех, программа, калькулятор или вы - глючит
я вам и предложил, пересчитат на бумаге в ручную - что бы точно быть увереным кто их вас троих не голючит

int
для начала я пытаюсь разобратся что хочет ТС
телепатическими способностями для угадывания желания - я не обладаю


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 20 октября 2010 23:44 New!
Цитата · Личное сообщение · #11

Еще подумал.

Переводишь всё в десятичную систему.
Отнимаешь от числа 4294967295 число 0137e204 (<-в десятичной только системе)
Отнимаешь от полученного числа 004029f0 (<-в десятичной только системе)
Прибавляешь единичку
Переводишь результат в блок двоичных данных.


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 20 октября 2010 23:50 New!
Цитата · Личное сообщение · #12

а чо не сделать так?
Записать целое число в переменную 0 4205040
Записать целое число в переменную 1 20439556
Вычесть вторую переменную из первой 0 1

Ранг: 4.0 (гость)
Статус: Участник

Создано: 21 октября 2010 00:01 New!
Цитата · Личное сообщение · #13

reversecode
я нерассуждал кто из трех программ глючит.

Я интересовался что в программе я делаю нетак (например неправильно использую команды прграммы , учитывая ее ограничения)

А начинать топик с уверенности, что глючит программа- слишком самонадеяно, я привык искать проблему в правильном использование функцирнала проги а пото грешить на нее.
Фраза "или я туплю " относилась к возможному моему непониманию реализации и использования комманд программы.
Вам лучше не отвечать на вопроссы, так-как у вас отсутсвует элементарная логика и завышенна самооценка.


PE-Kill, BoRoV
спасибо попробую, но значения динамичны и зачастую разица не 01000000 а например 00000100 или 00100000.


Статус: Пришелец

Создано: 21 октября 2010 00:06 New!
Цитата #14

vlad312131
Явно не калькулятор))

Ранг: 4.0 (гость)
Статус: Участник

Создано: 21 октября 2010 01:24 · Поправил: vlad312131 New!
Цитата · Личное сообщение · #15

PE-Kill
Подумал. Попробуй такой вариант:
Переводишь всё в десятичную систему.
Отнимаешь от числа 0137e204 число 004029f0.
Отнимаешь от 0 то, что получилось выше.
Переводишь результат в блок двоичных данных.


неподходит при вычетании чисел получаем E7B814 должно F7B814

Переводишь всё в десятичную систему.
Отнимаешь от числа 4294967295 число 0137e204 (<-в десятичной только системе)
Отнимаешь от полученного числа 004029f0 (<-в десятичной только системе)
Прибавляешь единичку
Переводишь результат в блок двоичных данных.


неподходит


BoRoV
а чо не сделать так?
Записать целое число в переменную 0 4205040
Записать целое число в переменную 1 20439556
Вычесть вторую переменную из первой 0 1


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


как мне кажется в случае если одно из чисел равно или больше 01000000(16) то сом к старшему байту вычетаемому большему чем 0 прибавляет 1
пример
01100000(16) вычетаем 00100000(16) в результате должно быть 01000000(16) а получится 0F00000(16) так-как вычтется 00200000(16)

в итоге у меня на примере 4029f0-137E204- сом вычетает 237E204, вот и получаем старший байт FE вместо FF,
если вычетать 137E204 - 4029f0 - сом вычитает 5029f0, также получаем старший байт E7 вместо F7


Как это обойти?(кажется никак?)


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 21 октября 2010 03:34 · Поправил: PE_Kill New!
Цитата · Личное сообщение · #16

А проверить там нельзя что число хреновое и к результату прибавить 01000000 ?


Ранг: 539.6 (!)
Статус: Участник
оптимист

Создано: 21 октября 2010 08:34 New!
Цитата · Личное сообщение · #17

vlad312131
vlad312131 пишет:
004029f0 четырех байтное 0137e204

Про то что число получается отрицательное надеюсь не забыл?
при получении отрицательного числа срабатывает флаг СF,
vlad312131 пишет:
неподходит при вычетании чисел получаем E7B814 должно F7B814

потом добавь комманду

not E7B814
inc E7B814


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 21 октября 2010 10:04 New!
Цитата · Личное сообщение · #18

А что s0m поддерживает асмовые команды? Так тогда всё намного проще.

Ранг: 162.4 (ветеран)
Статус: Участник

Создано: 21 октября 2010 12:09 · Поправил: SWR New!
Цитата · Личное сообщение · #19

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

===addd==========
S0m вроде нет асма но у этих двух инструкций должен быть эквивалент (иначе плохая прога)

Ранг: 4.0 (гость)
Статус: Участник

Создано: 21 октября 2010 12:10 New!
Цитата · Личное сообщение · #20

сом не работает с командами асма,

А проверить число средствами сома - проблимотично в следствии ограничений сома, я и так часть переписал на асме, а если я вычисления адреса jmp буду переписывать на асм то тогда и все остальное стоит переписать и вообще сом ненужен.
Хочется решить проблему с спомощи сом.


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 21 октября 2010 12:14 New!
Цитата · Личное сообщение · #21

тогда остаётся только одно, учи какой-то ЯП и пиши всё сам, а не юзай конструкторы


Ранг: 539.6 (!)
Статус: Участник
оптимист

Создано: 21 октября 2010 13:39 · Поправил: ClockMan New!
Цитата · Личное сообщение · #22

vlad312131
Cчас зашёл на сайт s0m.narod.ru/ там автор пишет что InqSoft Sign 0f Misery устарел
и пишет новую программу InqSoft Neo Sign 0f Misery пробуй её темболее там он добавил кучу комманд.


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 21 октября 2010 13:44 New!
Цитата · Личное сообщение · #23

ClockMan пишет:
пишет новую программу InqSoft Neo Sign 0f Misery

эй тоже сто лет в обед )


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 21 октября 2010 17:23 New!
Цитата · Личное сообщение · #24

Ещё можно попробовать AutoIt. Этот скриптовый язык тоже ориентирован в сторону автоматизации рутинных задач, на на много гибче.

Ранг: 4.0 (гость)
Статус: Участник

Создано: 21 октября 2010 22:16 New!
Цитата · Личное сообщение · #25

Спасибо за советы.

Neo Sign 0f Misery- действительно обладает мощным по сравнению с сом функционалом и постоянно обновляется (последняя от 12.6.2010), но конвертора из старой версии в нее нет. В предыдущих версиях neo небыло функций записи по адресу динамическе меняющемуся, а в соме с помощью трех команд реализуемо, именно этим и был обусловлен выбор сом вместо neo, а теперь переписывать все на нео или куда еще -трудоемко(4 скрипта по 5-6 тыс строк и несколько тысяч строк асма напрямую заточенные под особенности сом)

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


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 22 октября 2010 07:46 New!
Цитата · Личное сообщение · #26

Многое, что не умеет автоит изначально реализуется с помощю UDF (User Defined Function)
Для памяти существует NomadMemory.au3 (сам не пользовался, не знаю подойдёт ли)
Но раз уже столько написано на S0M, геморно всё переписывать.
 eXeL@B —› Основной форум —› Inqsoft Sign 0f Misery глюк проераммы или я туплю

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS