М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 24 мая 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

8 Кб, 419x325

Reverse engineering # OP 10 Дек, 15:40 #891716 В конец треда | Веб

В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: реверс-инженеринг.

Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС? Вам сюда.
Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.

Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.

Ответы891719891749892128897846911684930664931863938761938827943963945553946177946376949398955112960712

10 Дек, 15:47 #2 #891719

>>891716 (OP)
Вкатился, кто знает, что может означать инструкция "jmp ." в GAS? В гугле не нашел.

Ответы891749891957900394

10 Дек, 15:53 #3 #891728

1. Реквестирую гайды по фасму и его макросам.
2. Что-нибудь о программровании на асме под x64, а то васм со статьями закрылся.

Ответы891749

10 Дек, 16:19 #4 #891749

>>891716 (OP)
Плохой заголовок для треда, не одобряю. Пожалуюсь модератору, пусть переименует.
>>891719
>jmp ." в GAS
Мегабыстрое гугление говорит, что
jmplabel1
Может быть, это метка? Скомпелируй и посмотри результат.
>>891728
>2. Что-нибудь о программровании на асме под x64, а то васм со статьями закрылся.
Прямо программирование? Или ты подразумеваешь реверс?

Ну и у меня вопрос. Как реверсить приложение (x64 в данном случае), напичканное антиотладочными приёмами? Нужен нормальный отладчик. Глючный x64dbg такой глючный, что лучше без него. Какой-нибудь эмулятор цп?

Ответы891754891759891786

10 Дек, 16:23 #5 #891754

>>891749
>Прямо программирование? Или ты подразумеваешь реверс?
И то, и другое. Например, хочу разбираться в том, как настраивается контекст процессов на x64.

Ответы891760

10 Дек, 16:29 #6 #891759

>>891749
>>jmp ." в GAS
>Может быть, это метка? Скомпелируй и посмотри результат.
Это уже листинг декомпельнутого ядра. Системщики опять забыли принять таблетки.
>Как реверсить приложение (x64 в данном случае)?
Только с MSIL работал, декомпил в C#, далее стандартные средства рефакторига студии, после этого решарпером пройтись. Становится вполне читабельным.

Ответы891761

10 Дек, 16:30 #7 #891760

>>891754
Ссылок не подскажу, т.к. меня только реверс интересует. Но отличий от x86 не настолько и много. Если умеешь в него, то и с этим асмом проблем быть не должно.
>как настраивается контекст процессов на x64
Это что значит?

Ответы891792

10 Дек, 16:32 #8 #891761

>>891759
>Только с MSIL работал, декомпил в C#
А если обфусцирован? ConfuserEx'ом каким-нибудь модифицированным?

Ответы891768891786

10 Дек, 16:38 #9 #891768

>>891761
Прям с изменённой структурой кода? Ну вообще обычно такое не юзается в языках, где важен порядок операторов(многопоточность и всё такое). Я видел только с изменёнными идентификаторами по типу axxxx, но большая часть из них восстанавливается.

Ответы891774

10 Дек, 16:48 #10 #891774

>>891768
Не знаю, что там было. Пытался его декомпилировать, но не получилось. В IDA так же не понятно, потому что код приложения запакован.
Но мне интересно про декомпиляцию не C# приложений, а нативных. Какой отладчик, кроме WinDbg ещё можно использовать?

Ответы891785891786

10 Дек, 16:58 #11 #891785

>>891774
Раньше юзали OllyDbg.

Ответы891797

Имя 10 Дек, 16:58 #12 #891786

>>891749
>Плохой заголовок для треда, не одобряю. Пожалуюсь модератору, пусть переименует.
Ага, обосрался с ним.
>>891761
>А если обфусцирован?
Ищи деобускатор. Если его нет- пишешь его и выкладываешь на радость остальным.
>>891774
>Какой отладчик, кроме WinDbg ещё можно использовать?
OllyDbg.

Ответы891797

10 Дек, 17:02 #13 #891788

Зачем здесь вызову ZeroMemory передается адрес указателя и размер этого указателя? Защита от нублолов?

Ответы891789891813

10 Дек, 17:02 #14 #891789

>>891788
Забыл код http://ideone.com/1UBYbw

10 Дек, 17:04 #15 #891792

>>891760
>Это что значит?
Настройка структуры CONTEXT при инжекте в процесс. Видел, как у кого-то возникли проблемы на XP при настройке процесса в приостановленном состоянии.

Ответы891813

10 Дек, 17:09 #16 #891797

>>891785
>Раньше юзали OllyDbg.
>>891786
>OllyDbg.
x86-64. Про OllyDbg знаю, само собой.

Имя 10 Дек, 17:11 #17 #891801

Собственно ради чего я создал тред. Сейчас я ковыряю ядро винды, мечтаю подпилить его для запуска семёрочных приложений. Интересуют 64 битные версии. В итоге должно получится что-то типа
http://blog.livedoor.jp/blackwingcat/archives/1706829.html
Это патч от японского хакера, но он для 32 битной версии.

Для создания подобных патчей на х64 не хватает инструментов, а именно
1) Возможность добавления записей в ExportTable
2) Перемещение и изменение размера таблицы секций
3) Релокации для функций, чтобы после выполнения предыдущих действий всё работало
4) Контрольные суммы для PE.
Собственно я их разыскиваю.
В идеале следовало бы декомпилировать нужные файлы полностью, или допилить соответствующие исходники вынь2000.

Так же я разыскиваю дебажные сборки семёрки и десятки, авось пригодятся. Такие сборки для XP x32 SP2 и Server 2003 x64 beta у меня есть, но не откажусь от XP x64 и релиза Server 2003.

Ответы891956892644949620

10 Дек, 17:13 #18 #891805

Посоветуйте книг ньюфагу

Ответы891808891947

Имя 10 Дек, 17:16 #19 #891808

>>891805
С.В. Зубков: Assembler. Язык неограниченных возможностей.

Ответы891840891864

10 Дек, 17:22 #20 #891813

>>891788
Ошибка там. Хотели, наверное ZeroMemory(data, strlen(data)). Потому что указатель можно занулить и без использования ZeroMemory. Но тред не об этом, тебе в прикреплённый.
>>891792
Что значит "настройка"? Ты и так можешь установить любые значения регистров в нём, чего настраивать то? Сейчас такую программу реверсю, в ней через векторные исключения проверяется состояние регистра dr7 и сбрасывается флаг TF (а ещё он же устанавливается для чего-то). Чтобы установить контекст, нужно вызвать GetThreadContext приостановленного потока (в документации так написано). Или через исключения. Но всё заранее должно быть создано, что нужно для передачи управления на инжект-код. Ты сформулируй вопросы, а то очень уж общий вопрос задаёшь. Или даже так: в чём у тебя возникли сложности?

Ответы892644

10 Дек, 18:19 #21 #891840

>>891808
Благодарю

10 Дек, 19:09 #22 #891864

>>891808
А есть по-новее?

Ответы891996

10 Дек, 20:17 #23 #891947

>>891805
Платформа?

10 Дек, 20:22 #24 #891956

>>891801
Немного специфичные требования к софту.
1, 2 и 4. LordPE посмотри.
3. Это не знаю. Наверное, тебе придётся самому написать.
Посмотри книгу К.Касперски "Техника отладки программ без исходного кода". Он как раз рассматривает способы внедрения кода в чужое приложение. Книга хотя и старая, но формат исполняемого файла остался тот же.

Ответы892039

10 Дек, 20:25 #25 #891957

>>891719
Сначала я решил, что это текущий адрес, потом я пошёл в гугол и нашёл, что это текущий адрес. Либо оно зацикливается, либо ничего не делает, в зависимости от того, что подразумевается под текущим адресом в этом случае.
http://tigcc.ticalc.org/doc/gnuasm.html#SEC49

10 Дек, 21:09 #26 #891996

>>891864
А для чего? Это нестареющая классика, актуальная и через века. Нубы будут программить мышкой в очередном говнофреймворке, делая приложения,пожирающие гигабайты и гигагерцы, а аксакалы по старым методикам писать на асме проги в 30кб.

10 Дек, 22:01 #27 #892039

>>891956
>1, 2 и 4. LordPE посмотри.
Смотрел. Может только редактировать, добавлять в таблицу экспортов не умеет. При работе с секциями побил файл нафиг.

Ответы892288

11 Дек, 00:39 #28 #892128

>>891716 (OP)
Наканецта
год учил си, и ждал пока ктонибудь запилить нужный тред по RE

Ответы892155

11 Дек, 01:17 #29 #892155

>>892128
А надо было учить асм.

Ответы892159

11 Дек, 01:36 #30 #892159

>>892155
> учить асм
Надо учить все, до чего дотянешься. Особенно если хочется в реверсинг. Кроме 32-битных x86 процессоров существует IA-64, кроме нее существуют и широко распространены ARM и MIPS, кроме кода для реальных процессоров часто приходится иметь дело с байтокодом CLR/JVM/Dalvik/AVM и прочими виртуальными машинами, поэтому нужно более-менее знать язык, который в это скомпилировался. Бывает, что байткод каждый раз новый (протекторы), а бывает, что ебать приходится USB- или Blutetooth- протоколы или структуры файла, а не код.
Так что сишечкой и асмом ограничиваться ни в коем случае не стоит.

Ответы892189892288

111 Кб, 960x720

11 Дек, 03:05 #31 #892177

Лучше бы тред по демосцене запилили.

Ответы892189

11 Дек, 04:01 #32 #892189

>>892159
>существует IA-64
Он официально мёртв.
>Так что сишечкой и асмом ограничиваться ни в коем случае не стоит
А вот это верно.
>>892177
Так запили.

Ответы892302

11 Дек, 11:37 #33 #892288

>>892039
Тогда вариант - написать самому.
>>892159
>протоколы или структуры файла, а не код
Как без реверсинга можно разреверсить протокол или структуру файла? Это же набор (не)случайных байт, попробуй пойми, что к чему относится.
Вот ещё вопрос. Кто как реверсит сетевой протокол? У меня очень не эффективно, как мне кажется. Просто без реверса даже и не поймёшь ничего. Сначала IDA, дебаггер, а только потом какой-то результат. А ещё для упрощения работы пишу диссектор для Wireshark. Удобней становится.

Ответы892302

11 Дек, 11:54 #34 #892302

>>892189
Да, я имел в виду Intel 64 (x86-64), постоянно названия путаю.

>>892288
> Как без реверсинга можно разреверсить протокол или структуру файла?
Предназначение файла известно, иначе зачем его реверсить. В протоколах тоже чаще всего знаешь хотя бы общую картину происходящего. Берешь тот же Kaitai или 010 и разбираешь. Ищешь офсеты и длины, флоаты, строки, zlib брутфорсом неплохо находится. Иногда кода на руках нет, но можно нарыть много файлов и искать корреляции. Хотя если пошифровано правильно а не ксором каким-нибудь, то, конечно, без кода хуй что сделаешь.

11 Дек, 13:41 #35 #892362

Ладно, если вы не против, я покидаю сюда всякого говна по теме, которого насобирално так и не приступил к изучению
Должен предупредить, что все это в целом ньюфажное

11 Дек, 13:45 #36 #892366

Блог дядьки написашвего RE for begginners, ссылка на книгу там же.
https://yurichev.com/blog/

Тут подборка книг
https://www.goodreads.com/shelf/show/reverse-engineering

Не совсем RE, но все таки
http://security.cs.rpi.edu/courses/binexp-spring2015/

Ответы892584

11 Дек, 15:56 #37 #892456

Тред будет неполон без ссылок на:

https://www.hex-rays.com/ - лучший в мире дизассемблер, с хуевым отладчиком, и каким-никаким, но декомпилятором. Позволяет реверсить код под любую архитектуру, а в тех редких случаях, когда архитектура все-таки не поддерживается - позволяет за вечер запилить процессорный модуль на крестах или питоне.

http://radare.org/ - безумная смесь дизассемблера, hex-редактора и отладчика, затмевающая даже vim своим умением все портить и пикатьмолча. Но из бесплатного - это самое годное, что существует.

Ответы911984

11 Дек, 17:24 #38 #892517

Посоветуйте современных и годных книг по ассемблеру

Ответы892578

11 Дек, 18:33 #39 #892571

Дан массив из 3 байт. Рассматривая его как массив из 8 трёхразрядных
слов, найти “исключающее или” всех 8 слов для выражения “101”. Помогите пожалуйста с ассемблером. Нужен массив в 8 итераций. В благодарность скину шекели на сотовый.

Ответы892578

11 Дек, 18:43 #40 #892578

>>892517
Выше кидали ссылку. Если тебе по новым возможностям процессоров, то бери мануал от Intel и смотри его.
>>892571
Даже не понятно, что тебе надо. Надо зашифровать массив последовательностью 101?

Аноны, TitanHide.sys есть у кого сконпелированный и плагин от него же для x64dbg?

Ответы892587

11 Дек, 18:46 #41 #892584

>>892366
Так, навреное все таки уменя больше ссылок не по реверсу, а по байнари эксплоитейшон

не знаю даже, надо ли такое кидать
http://programminggroundup.blogspot.ru/

http://althing.cs.dartmouth.edu/local/www.acm.uiuc.edu/sigmil/RevEng/ch01.html

http://www.program-transformation.org/Transform/ReengineeringWiki

http://dobrochan.com/s/res/45693.xhtml

http://asm.shadrinsk.net/index.php?par1=3&par2=0&par3=0&par4=0&par5=14762263

https://forum.reverse4you.org/

11 Дек, 18:49 #42 #892587

>>892578
Мне нужно сделать операцию XOR к каждому 3-хразрядному слову из массива в 3 байта. Прилагаю свой код. Только мне нужно сделать цикл в 8 итерацию.data segment
mass1 db 11001100b, 10101011b, 00011101b
data ends
code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
mov bx,2
mov cl,8
a0:
mov al,mass1[bx]
mov ah,00000101b
sub cl,8
neg cl
cmp cl,3
jb a1
sub cl,3
a1:
shr ah,cl
xor al,ah
sub cl,3
neg cl
cmp 1
ja a3
add cl,3
mov ah,00000101b
shl ah,cl
xor al,ah
a3:
mov ah,00000101b
shl ah,cl
xor al,ah
shl ah,3
xor al,ah
mov mass1[bx],al
dec bx
jns a0
quit:
mov ax,4c00h
int 21h
code ends
end start

11 Дек, 18:49 #42 #892587

>>892578
Мне нужно сделать операцию XOR к каждому 3-хразрядному слову из массива в 3 байта. Прилагаю свой код. Только мне нужно сделать цикл в 8 итерацию.data segment
mass1 db 11001100b, 10101011b, 00011101b
data ends
code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
mov bx,2
mov cl,8
a0:
mov al,mass1[bx]
mov ah,00000101b
sub cl,8
neg cl
cmp cl,3
jb a1
sub cl,3
a1:
shr ah,cl
xor al,ah
sub cl,3
neg cl
cmp 1
ja a3
add cl,3
mov ah,00000101b
shl ah,cl
xor al,ah
a3:
mov ah,00000101b
shl ah,cl
xor al,ah
shl ah,3
xor al,ah
mov mass1[bx],al
dec bx
jns a0
quit:
mov ax,4c00h
int 21h
code ends
end start

Показать весь текст
Ответы892615892629

11 Дек, 19:27 #43 #892615

>>892587
Плачу 500 рублей. Очень нужно, помогите.

11 Дек, 19:52 #44 #892629

>>892587
Условие неполное. Можно разбивать, начиная со старших бит 110 011 00'1, а можно с младших бит 100 001 11'1.

Ответы892634

11 Дек, 20:06 #45 #892634

>>>89262>>892629
Со старших. Слева направо 110 011 00b, 1 010 101 1b, 00 011 101b

Ответы892642

11 Дек, 20:28 #46 #892642

>>892634
http://pastebin.com/qSngVQ5q фасм, комментарии не писал принципиально, тут реверса тред лол алсо читай шапку.

122 Кб, 1333x971

11 Дек, 20:32 #47 #892644

>>891801
Поищи пикрелейтед.
>>891813
>Ошибка там. Хотели, наверное ZeroMemory(data, strlen(data)).
Все там правильно написано, долбоебина, а вот у тебя - полная хуета. Не знаешь - не пизди.

Мамкины какеры, лол.

Ответы892652892653

11 Дек, 20:46 #48 #892652

>>892644
>Не знаешь - не пизди.
Объясни.

Ответы892808

11 Дек, 20:47 #49 #892653

>>892644
PETools ему экспорты тоже не добавит. Я уже говорил в ньюфаг треде, что лучше сразу написать кастомный линкер под такую задачу. Руками он править заебется на второй день.

> Все там правильно написано
Ты забыл спросить, нахуя вообще обнулять указатель таким странным способом, когда можно просто присвоить, и нахуя вообще обнулять указатель, который в худшем случае до следующего вызова какой-нибудь функции в стеке пролежит. И ты мог бы догадаться, что оба аргумента ZeroMemory изначально были неправильные, и имелось в виду именно то, что ты процитировал. Хотя возникает вопрос, нахуя обнулять буфер с отосланным текстом.

Ответы892808

12 Дек, 01:24 #50 #892808

>>892652
>>892653
И действительно. Извиняйте, котаны, обмишурился.

21 Кб, 671x508

13 Дек, 11:22 #51 #893525

Для x64dbg скачал плагин TitanHide. Во-первых, приложение отладку продолжает определять (через исключения, проверка регистра dr7). Во-вторых, пикрелейтед. Что не так? Уже надоело искать места, где проверка происходит.

Ответы893531893534

13 Дек, 11:37 #52 #893531

>>893525
А что отлаживаешь? Там какой-то кастомный протектор?

Ответы893538

sage 13 Дек, 11:39 #53 #893534

>>893525
Алсо, в ридми титанхайда написано, что нужно оторвать у винды патчгард, ты оторвал?

Ответы893538

13 Дек, 11:44 #54 #893538

>>893531
>А что отлаживаешь?
Поделие от Blizzard.
>>893534
>ты оторвал
Не дочитал до туда. И так пришлось столько движений сделать, чтобы собрать и запустить драйвер. Сейчас попробую.

Ответы893669944422

13 Дек, 14:21 #55 #893588

Посоны, помню когда-то в пр мелькала ссылка на древний блог какого-то хуя, который анон горячо всем рекомендовал, помню ещё, там дезигн был совсем топорный и сам блохер типа обучался по ходу написания постов, а ещё писал, что проганьем до этого никогда не занимался. Никто не вспомнит и не поделиться?

Ответы893589893590

13 Дек, 14:21 #56 #893589

>>893588
Блог по асму и реверс инжинирингу, есессно.

13 Дек, 14:22 #57 #893590

>>893588
>поделится
qfix

13 Дек, 16:31 #58 #893637

Компиляю я ядро WRK.
Оно поставляется со своим компилятором cl.exe версии 14.0, ml64.exe 8.0 и т.д.
Я решил обновить тулзы, взяв их из установленной Visual Studio 2010, а именно cl.exe 16.0, ml64.exe 10.0 и т.д.
Само собой вылетают ошибки. Некоторые из которых я пофиксил сам, типа
\amd64\procstat.asm(325): error A2022: instruction operands must be the same size
Вот строка в исходниках:
https://github.com/stephanosio/WRKRazzle/blob/master/base/ntos/ke/amd64/procstat.asm#L325
Тут я в определении структуры выше заменил SavedXmm6 db 16 dup (?) на SavedXmm6 OWORD (?) (это вообще корректно? И разве это не одно и тоже?), и этот файл скомпилировался.
Но вот ошибка
..\amd64\trap.asm(2134): error A2156: constant value out of range
Повергает меня в пучины отчаяния- она указывает на пустую строку, и что с ней делать- ХЗ. Строка в исходниках:
https://github.com/stephanosio/WRKRazzle/blob/master/base/ntos/ke/amd64/trap.asm#L2134
Кто-нибудь знает, что ему нужно?

Если скомпилировать эти фалы отдельно старой версией и подсунуть при компиляции новой, то они нормально линкуются, ядро рабочее, и меньше на пару сотен килобайт относительно компиляции старой версией.

Ответы893669893734

13 Дек, 16:43 #59 #893647

Что нужно для того, чтобы стать хорошим системных программистом? Надо ли уметь реализовать свой менеджер потоков под что-то вроде распберри или stm32?
inb4: написать в контактике "системный программист"

Ответы939558

9 Кб, 587x129

13 Дек, 17:22 #60 #893669

>>893538
>Сейчас попробую.
Всё запустилось. Только опять dr7 не пустой (смещение 70h). Что интересно, при модификации (занулении dr7) hardware breakpoinnt не сбрасывается. Можно пропатчить в таком случае.
>>893637
Ничем даже помочь не могу. А зачем обновлять инструмент?
.allocstack 0 - почему тут ноль?

Ответы893734

13 Дек, 19:38 #61 #893734

>>893669
>А зачем обновлять инструмент?
>>893637
>меньше на пару сотен килобайт относительно компиляции старой версией.
То есть в новых инструментах новые оптимизации.
>.allocstack 0 - почему тут ноль?
Функция ничего не делает, вот и стек нулевой. Но действительно, нафиг не нужно. Спасибо, скомпилял.

Чем можно протестировать производительность ядра ОС? Какие-нибудь проги, дрючащие функции API. Интересно сравнить производительность родного ядра с WRK и с WRK, скомпилированным новым инструментом.

Ответы896370

14 Дек, 01:47 #62 #893965

Ах, да
https://www.reddit.com/r/ReverseEngineering/comments/hg0fx/a_modest_proposal_absolutely_no_babies_involved/

Ответы893986

sage 14 Дек, 02:45 #63 #893986

>>893965
Там все порядком протухло. Недавно вроде пасту посвежее в этом же сабреддите постили.

Ответы893996

14 Дек, 03:13 #64 #893996

>>893986
А я не глядел, если честно, давно уже туда, якак-то азы сейчас ботаю

14 Дек, 03:23 #65 #893998

Я не знаю, надо ли это тут, но вот http://www.programminggroundup.blogspot.fi/

15 Дек, 19:43 #66 #894851

65 сообщений, и ещё никто не упомянул Криса Касперски? Непорядок, пофиксил.

Ответы894887894891

148 Кб, 529x607

15 Дек, 20:12 #67 #894887

>>894851
А криска жив еще или таки сторчался?

Ответы895188949944

15 Дек, 20:17 #68 #894891

>>894851
А кто это? Автор антивируса штоле?

Ответы894928

15 Дек, 20:48 #69 #894926

>2к16
>ассемблер
Ржу.

Ответы895533

15 Дек, 20:50 #70 #894928

>>894891
Ньюфаг чтоле? http://web.archive.org/web/20070305173922/http://kpnc.opennet.ru/

Ответы894930

15 Дек, 20:54 #71 #894930

>>894928
Т.е. уже неактуально? Ну а нафиг тогда надо?

Ответы895533

16 Дек, 11:34 #72 #895188

>>894887
Жив, с парашютом прыгать приноровился

Ответы895216953269

sage 16 Дек, 12:40 #73 #895216

>>895188
> с парашютом прыгать
Шо опять? Помнится, лет пять назад на васме он обещал без парашюта прыгать.

Ответы895225

16 Дек, 13:07 #74 #895225

>>895216
Ну видимо передумал. Вон, естьвидосы на тытрубе на его канале.

16 Дек, 20:22 #75 #895533

>>894926
Ну попробуй пореверсить на C++.
>>894930
Научись реверсить хотя бы как он, а уж потом пиши, что не актуально.

Ответы895629

16 Дек, 23:27 #76 #895629

>>895533
Зачем учится какой-то устаревшей технологии?
Она не востребована на рынке => зря проебешь время.

Ответы895634

16 Дек, 23:39 #77 #895634

>>895629
Реверсинг сам по себе не востребован на рынке. Заказов мало, желающих много, и для того, чтобы этим зарабатывать, знать нужно овердохуя. Алсо, это ваши модные нодежс превращаются в устаревшие технологии, а ассемблер как был в 60-х прошлого века, так и в 60-х нашего века никуда не денется.

Ответы895652895777

17 Дек, 00:24 #78 #895652

>>895634
>Реверсинг сам по себе не востребован на рынке.
Серьёзно?

Ответы895668

sage 17 Дек, 00:51 #79 #895668

>>895652
Ну смотри. Есть computer forensics разного рода, но это не совсем реверсинг. Есть AV, но это работа за еду, хуже PHP-макак. И есть разовая полулегальная работа. Алсо есть куча ололо-секьюрити-рисерчеров, которые реверсят все подряд в качестве хобби, чаще всего для себя и бесплатно. Что-то еще назвать сможешь?

Ответы895760895855

17 Дек, 07:18 #80 #895760

>>895668
поиск и эксплуатация зеродеев. грейхэты

17 Дек, 09:08 #81 #895777

>>895634
>Реверсинг сам по себе не востребован на рынке.
Тот же Крис Касперски вполне себе съебался в СШАшку и работает там на удалёнке. Был бы он нахуй никому не нужен, его бы туда не взяли.

Ответы895804

sage 17 Дек, 11:52 #82 #895804

>>895777
Крис - крайне хуевый программист и ничем не выдающийся реверсер. Он выехал исключительно на имени (написал книжки, по которым училось целое поколение, потому что других книжек нихуя не было) и на этой его охуительной истории про эксплуатацию бага в микрокоде.

Ответы895954

17 Дек, 13:53 #83 #895855

>>895668
>Есть AV
Что означает сия аббревиатура?
>Что-то еще назвать сможешь?
Банальное - кейген. Не банальное - формат файла, сетевого протокола, работа драйвера с устройством.
Другой уровень - реверс существующих устройств. Прошивка, взаимодействие компонентов и прочее.
Ещё один вариант - установка ПО и ОС на устройства, это ПО и ОС изначально не поддерживающих. Например, какой-то навигатор в автомобиль, в котором ОС Windows Mobile.
В общем, очень много всего. Учитывая, что (в последнее время особенно) полно закрытых проприетарных устройств, программ, ОС, которые не дают возможность сделать что-то, что разработчик не разрешил.

Ответы895902

sage 17 Дек, 15:04 #84 #895902

>>895855
> AV
Разработка антивирусного ПО. Полуавтоматический анализ сэмплов вредоносного ПО посредством различных утилит, скриптов и полутора-двух килограмм биомассы, которую пока заменить нечем.

> установка ПО и ОС на устройства, это ПО и ОС изначально не поддерживающих
Экономически невыгодно, даже если найдется толпа некрофилов, которые на это скинутся. Такое только для энтузиастов, которым некуда девать свое время, а времени для таких финтов нужно овердохуя.

> Банальное - кейген
Мы там выше говорили про востребованность на рынке, это подразумевает что-то хотя бы слегка легальное и приносящее некий доход.

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

17 Дек, 16:53 #85 #895954

>>895804
>Крис - крайне хуевый программист и ничем не выдающийся реверсер.
Как видишь, даже такие люди могут съебать в США.

Ответы895978

17 Дек, 17:48 #86 #895978

>>895954
А ещё, не смотря на лёгкий аутизм, у него была (а возможно и есть) тян. Что за несправедливость, да?

Ответы895979

sage 17 Дек, 17:49 #87 #895979

>>895978
Нет, ну я, конечно, первый про Криса начал, но мы тут какбэ реверсинг собирались обсуждать, а не его негритянокмулаток.

Ответы896007

17 Дек, 18:46 #88 #896007

>>895979
Ты бы лучше сажу отклеил.

219 Кб, 1280x2996

18 Дек, 04:23 #89 #896370

>>893734
>Чем можно протестировать производительность ядра ОС? Какие-нибудь проги, дрючащие функции API. Интересно сравнить производительность родного ядра с WRK и с WRK, скомпилированным новым инструментом.
В общем использовал PassMark PerformanceTest, результаты в пределах погрешности.

20 Дек, 20:58 #90 #897771

Bump.

Ответы897824

20 Дек, 21:58 #91 #897824

>>897771
Это мои слова! Правда не понял, чего тут бампать, когда ответов никто не задавал.
ОП

20 Дек, 22:29 #92 #897846

>>891716 (OP)
Что там с драйверами на микроволновку? Вирус говорят уже есть, драйверы чтобы к компу подключить напишете?

Ответы897859

sage 20 Дек, 22:54 #93 #897859

>>897846
Переходник спаяй - подключим.

58 Кб, 300x300

20 Дек, 23:33 #94 #897878

cпасисбо за тред поцоны.

сам вкатился в асм недавно, ибо доебали проблемы с производительностью\оверхедом в высокоуровневых языках.

удивляюсь как ещё нет фреймворка для разработки приложений под асм x86-64? и пакетного менеджера либ\макросов\сниппетов, по типу pip\npm.

может посоветуйте ресурс со списком библиотек? а то единственное более-менее полезное что я нашёл это BASELIB.

алсо может есть _современная_ книга по имлементации алгоритмов на intel x86-64?

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

алсо как вы думаете кряк-сцена загнётся лет через 5? все переходят на веб приложения, которые не хранятся на десктопе.
молодёжь предпочитает покупать софт в интернете у оффициальных дистрибьюторов и не задумывается об использовании пираток.

Ответы897983898281

sage 21 Дек, 09:44 #95 #897983

>>897878
> проблемы с производительностью\оверхедом
Ты что-то делаешь не так. Сишные компиляторы как миниум идут наравне с тем, что ты способен написать. А учитывая, что твой код все равно более, чем полностью состоит из вызовов либ, какая тебе разница, кто будет аргументы в стек/регистры пихать - ты или компилятор?

21 Дек, 18:51 #96 #898281

>>897878
>молодёжь предпочитает покупать софт в интернете у оффициальных дистрибьюторов и не задумывается об использовании пираток.
То чувство, когда ощущаешь себя стариком, который даже предустановленную винду с омерзением сносит, чтобы поставить пиратку.

Ответы898315

21 Дек, 19:53 #97 #898315

>>898281
Просто ты долбоеб.

Ответы898379

21 Дек, 20:55 #98 #898379

>>898315
Что поделать, если это проще, чем вычищать тонны блоатвари, а порезанные домашние винды ввергают в пучины отчаяния?

Ответы898535898606

22 Дек, 05:35 #99 #898535

>>898379
Но ведь... большинство знакомых сидят на этой блявари и винде, и им норм.
Т.е. жрать говно - это нормально, а ненормальные - это мы, избалованные могуществом не жрать говно.
Но ведь ненормальным быть плохо. Нужно приучать себя жрать говно, чтоб не выделяться, как все. Бить по рукам, когда они тянутся к очередному системному инструменту или диску с виндой. Устраивать 10-ти часовые сеансы работы с нагскрином/баннером посреди экрана. И всякие такие экзекуции. Ну вы поняли.

Ответы898591

22 Дек, 10:23 #100 #898591

>>898535
>Но ведь ненормальным быть плохо.
Вовсе наоборот, нормальным быть плохо.

Ответы898625

22 Дек, 10:40 #101 #898606

>>898379
А ты вон о чем. Извиняй, братан, попутал. Только смысла покупать пиратку нет - бери оригинальное.

22 Дек, 10:58 #102 #898625

>>898591
Нормальным быть легко - весь мир рассчитан под нормальных.
А ненормальным быть тяжело - ты сам под себя должен адаптипровать весь мир.

Ответы898649

22 Дек, 11:41 #103 #898649

>>898625
>весь мир рассчитан под нормальных.
И рассчитан ненормальными.
Так оно и работает.
^_^

Ответы898695

87 Кб, 850x338

22 Дек, 12:51 #104 #898695

>>898649
Каковы инженеры...

59 Кб, 300x300

22 Дек, 23:24 #105 #899154

fasm

есть сабрутина
print :

mov rax, sys_write ;sys_write
mov rdi, 1 ;stdout
lea rsi, [msg] ;msg
mov rdx, msg_size ;get count from fasm example
syscall
ret

segment readable writeable

msg rb 100
msg_size = $-msg

и есть ещё моё незнание асма. Как в рантайме присвоить поменять значение переменной?
хочется написать макрос в котором будет (или прямо в main)
msg = "sometext" или msg = %1, или mov msg, "sometext" похуй

как это сделать? а то у меня максимум что получалось это одну букву записать mov [msg], "L" если больше одной то фасм выдавал ошибку то invalid operand size, то ещё что то.

тут мне пару корешей предлагают вызвать sys_read, но нахуй он мне нужен если у меня всратая переменная значение которой код будет генерировать на лету, и нету файлового дискриптора с которого её считать.

59 Кб, 300x300

22 Дек, 23:24 #105 #899154

fasm

есть сабрутина
print :

mov rax, sys_write ;sys_write
mov rdi, 1 ;stdout
lea rsi, [msg] ;msg
mov rdx, msg_size ;get count from fasm example
syscall
ret

segment readable writeable

msg rb 100
msg_size = $-msg

и есть ещё моё незнание асма. Как в рантайме присвоить поменять значение переменной?
хочется написать макрос в котором будет (или прямо в main)
msg = "sometext" или msg = %1, или mov msg, "sometext" похуй

как это сделать? а то у меня максимум что получалось это одну букву записать mov [msg], "L" если больше одной то фасм выдавал ошибку то invalid operand size, то ещё что то.

тут мне пару корешей предлагают вызвать sys_read, но нахуй он мне нужен если у меня всратая переменная значение которой код будет генерировать на лету, и нету файлового дискриптора с которого её считать.

Показать весь текст
Ответы899184900359900362

22 Дек, 23:49 #106 #899184

>>899154
mov rax,msg2
mov [msgptr],rax
...
msgptr dq msg
msg2 db "yoba",0

Или чего ты хочешь?

25 Дек, 02:47 #107 #900359

>>899154
Классный кстати был отладчик- можно было при наличии определённого скилла и из BSODа выйти с его помощью.

25 Дек, 02:58 #108 #900362

>>899154
Побайтно копируя в цикле из одного места в другое. В rsi кладёшь ссылку на источник, в rdi ссылку на место, куда писать, и поехал:

mov rsi, OFFSET source
mov rdi, OFFSET dest
xor rcx,rcx

loop:
mov al, [rsi+rxc]
mov [rdi+rcx], al
cmp al, 0
jne loop

Как-то так.

Ответы900364

25 Дек, 02:59 #109 #900364

>>900362
Перед cmp там ещё 'inc rxc', забыл.

25 Дек, 03:55 #110 #900394

>>891719
Переход в текущий assembly point.

5.4 The Special Dot Symbol
==========================
The special symbol `.' refers to the current address that `as' is
assembling into.

8 Кб, 402x168

25 Дек, 11:30 #111 #900457

Ну вот что в оригинале было? Согласно http://www.openrce.org/articles/full_view/23 должно быть: ссылка на таблицу виртуальных функций, данные класса. Почему здесь подряд идут? Это что-то вроде:
class Some_Class : public Abstract_Class_1, public Abstract_Class_2, ...
При переходе в функцию все данные начинают отсчитываться от смещения таблицы виртуальных функций, а не от начала класса. Как следствие, смещение нужного мне элемента должно быть 0xC8, а становится 0xC4. Как в Иде такие моменты разрешать?

Ответы900548

25 Дек, 15:23 #112 #900548

>>900457
> должно быть
Никому не должно. Ватком вон вообще в конец класса таблицу совал раньше.

> Как в Иде такие моменты разрешать?
Никак, лол. Сделай структуру Fields, сложи туда данные класса, сделай ClassView, положи туда указатель на vft, дырку нужного размера и Fields). Сделай структуру Class, сложи туда ссылки на vft и все Fields классов. Когда сделаешь это в десятый раз, напиши скрипт.

26 Дек, 09:20 #113 #901094

30 Дек, 13:19 #114 #903550

Столкнулся с ARM и не знаю, чего ему не хватает.
1. Ida не может правильно дизассемблировать файл. Частично сделано правильно, частично оставлено как массив байт. Ручное дизассемблирование (клавиша "C") не работает. Подозреваю, что это Thumbs и Ida не может работать с такой смесью кода в одной секции. Костыльное решение с моей стороны - взял отдельную секцию из файла и дизассемблировал. Получилось. Название функций и прочее перенёс с помощью IDC файла.
2. Надо посмотреть, как работают некоторые участки кода. Попробовал с помощью QEMU - не помогает, отладка отваливается после первого же шага.
>FFFFFFFF: process has started (pid=4294967294)
>Debugger: attached to process <GDB remote process> (pid=4294967294)
>Network error: Удаленный хост принудительно разорвал существующее подключение.
Судя по отрицательному PID, не видит отладчик. Пытался гуглить, но описания подобного не нашёл.

Ответы903740904935

30 Дек, 19:00 #115 #903740

>>903550
> Ручное дизассемблирование (клавиша "C") не работает.
Значит, это не ARM, или тыкаешь не там.
> Подозреваю, что это Thumbs
В нужном месте Alt+G, T, 1, OK, потом уже C и т. п. Тебе об этом написали, когда только грузил файл.

Ответы903796

30 Дек, 19:52 #116 #903796

>>903740
>Значит, это не ARM, или тыкаешь не там
Написал же, что Ida частично код дизассемблировала. Это ARM. Когда отдельно секцию скопировал и дизассемблировал её, Ida всё правильно начала распознавать. Почему так - не знаю.
>В нужном месте Alt+G, T, 1, OK, потом уже C
Не работает.

Ответы903800

30 Дек, 20:10 #117 #903800

>>903796
Может быть, покажешь файл?

Ответы903820

30 Дек, 21:08 #118 #903820

>>903800
Файл не могу выложить. В принципе, дизассемблировал, пусть и таким кривым способом.
У меня другой вопрос - почему не подключается к QEMU? Есть ещё какой-нибудь способ выполнить произвольную часть кода (скорректировав регистры, само собой)?

Ответы904935

03 Янв, 02:47 #119 #904935

>>903550
>>903820
А у тебя QEMU насколько древний?

Ответы905207

03 Янв, 17:00 #120 #905207

>>904935
Брал старый (0.13, хотя в документации написано, что нужно 0.10.6 или 0.11) и свежий (2.8.0). Всё равно не получалось с отладкой ничего. Поэтому пошёл по ещё более простому пути - скачал Keil и "проэмулировал" в нём, копируя интересующие меня куски кода.
Но, вообще, беда какая-то с эмуляторами под ARM. Ни один не смог заставить работать.

Ответы905369

03 Янв, 20:17 #121 #905369

>>905207
Ну хуй знает - у меня стандартный способ, когда ты выбираешь тип отладчика GDB, в настройках отладки выбираешь запуск QEMU и там же конфигурацию, выделяешь код функции и нажимаешь запуск - отлично работает сейчас IDA 6.x/QEMU 2.8, но и раньше проблем не было.

03 Янв, 20:34 #122 #905376

RE- Гад тир!
Моя несбыточная места в 31 год.
Уважаю этих бойцов невидимого фронта.

Возился с Lena151 туториал и русским курсом от какого то типа. Всё есть на торрентах.
И есть еще форум четкий - должен гуглиться по RE в гугле.

Пацаны РЕ инженеры - это сливки ИТ.

Ответы905632

sage 04 Янв, 04:44 #123 #905632

>>905376
Сам себя не похвалишь - никто не похвалит, да? Мамке позвони.

06 Янв, 11:18 #124 #907028

37 Кб, 717x224

06 Янв, 17:20 #125 #907180

Граф в иде. Такие вот методы обфускации лол. с дефкона, выступление называлось "психологические методы давления на реверс-инженера"

356 Кб, 1088x705

06 Янв, 17:22 #126 #907181

...Мне хочется плакать, мне хочется смеяться
Мне хочется прыгать. Бодаться и брыкаться...

Ответы907221907259

2978 Кб, 1440x850

06 Янв, 17:24 #127 #907185

А как вам такое: х86 ехешник в 3д.

Ответы907191

06 Янв, 17:30 #128 #907191

>>907185
порвал демо сцену?

Ответы907196

06 Янв, 17:35 #129 #907196

>>907191
причем тут демо сцена?

Ответы907202

06 Янв, 17:44 #130 #907202

>>907196
я просто через призму глянул, и тут навеяло

Ответы907204

06 Янв, 17:47 #131 #907204

>>907202
ты хотел сказать через усеченную пирамиду, видимо.

06 Янв, 18:32 #132 #907221

>>907181
А зачем нужен этот граф? Ищешь же определённые функции, а как они друг с другом связаны, не всегда надо. А если это был C++ с виртуальными функциями? call eax там только будет.

Ответы907225907292

06 Янв, 18:36 #133 #907225

>>907221
свое вкатывание в РЕ просто я начал (и не закончил лол) именно с этой софтины. а то что там надо найти хэш-функцию и recv - это уже стало ясно(стало ли?) потом.

Ответы907551

06 Янв, 19:44 #134 #907259

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

Ответы907291907551

602 Кб, 828x417

06 Янв, 20:19 #135 #907291

>>907259
ПИЗДА.
сколько за такое заплатят?

Ответы907551908082

06 Янв, 20:21 #136 #907292

>>907221
шарп
причем функционал этой проги умещается навскидку в 1-2к строк максимум на питоне.
впечатление такое что 90% кода - чисто обфускация. это чё - нормально на рынке софта типа?

07 Янв, 09:25 #137 #907551

>>907225
>именно с этой софтины
Так это не IDA? Точнее, один из её модулей, wingraph.
>>907259
500 строк в оригинале? Если больше - завязнешь надолго. А может ты профи в своём деле, кто тебя знает.
>>907291
От центов до десятков тысяч далларов. Хотя, если программа большая, то быстрее, дешевле и проще написать всё заново. А реверсинг использовать для необходимого - узнать как работает алгоритм, как происходит взаимодействие с сервером и прочее.

Ответы907748908082

07 Янв, 19:16 #138 #907748

>>907551
>Так это не IDA? Точнее, один из её модулей, wingraph.
имел в виду не ИДУ (это инструмент) а сам софт который надо было расчекрыжить.

Ответы907762

07 Янв, 19:34 #139 #907762

>>907748
Вот ты о чём, всё понятно. Сам и не помню, что у меня за первая программа была. Зато помню, что первое, что смог разреверсить до результата - это CS1.6, создал для него генератор ключей, который так и остался на моём компе. На момент создания (наверное, 2008-2009 год был) действующего генератора не нашёл, что несколько странно для такой мегапопулярной игры, ведь у меня на тот момент и опыта было чуть-чуть (хотя, его и сейчас не много). Видимо, реверсеры не играют в CS.

Ответы907876

07 Янв, 21:42 #140 #907876

>>907762
Годно
а я недели две потратил, набирая хотя бы словарь для понимания, чтто нужно делать в рамках поствленной задачи. после того как на дерево это ебучее взлянул.
вот щас отдыхал пару дней, установил идапитон. через час в бой и не знаю, когда уже в следующий раз остановлюсь, анон. затарился колой, сисинтерналсами, вайршарком, оллидебагом, виндоус сдк тулзами. в бой хули

08 Янв, 02:35 #141 #908040

Посоветуйте сишную библиотеку для дизассемблирования кусков машинного кода так, чтобы между инструкциями можно было вставлять мусор.

08 Янв, 07:10 #142 #908082

>>907291
Ноль, это хобби. Выше, ковыряющий ведро венды- это я и есть.
>>907551
>500 строк в оригинале?
45 млн. Говорят, столько строк в XP.
Хотя конечно расковыривать буду не всё, только основное- ядро и главные библиотеки, подрачивая на WRK, ReactOS и прочие вайны.
Самая сложная функция тут будет в коде патч-гуарда, там 11к строк кода, написанного самыми запутанными патернами. А без него ядро ОС будет дырявым как решето.

Хочу прикрутить возможность запускать некоторые новые проги и дрова.
>>907551
>А может ты профи в своём деле, кто тебя знает.
Нуб, заглядывающий в справку за тем, чтобы почитать, что такое звёздочка.
Инфибо Не осилишь, бросай

Ответы908167

08 Янв, 12:49 #143 #908167

>>908082
>некоторые новые проги
Они должны запускаться просто после замены версии в заголовке. Если не запустятся, значит в системе нет необходимых функций (тот же iwicimage появился в винде только с третьего сервиспака хр). В общем, ты не туда копаешь.

Ответы908319

08 Янв, 18:24 #144 #908319

>>908167
>Если не запустятся, значит в системе нет необходимых функций
Их я и собираюсь добавлять. А чтобы их добавить, нужно компилить исходники, которые я и собираюсь сделать.
>>908167
>тот же iwicimage появился в винде только с третьего сервиспака хр
Во втором версии х64 тоже должен быть.

Ответы908859

09 Янв, 17:20 #145 #908859

>>908319
Пока я тут ядро ковырял, кто-то запилил враппер для прог:
https://habrahabr.ru/company/reactos/blog/319110/

10 Янв, 00:11 #146 #909081

Как отключить контроль вызовов, чтобы компилировались инструкции типа __asm call 0x00000000?

20 Кб, 873x637

13 Янв, 22:29 #147 #911549

Сап, Ананасы. Поставил себе Иду. Как сделать так, чтобы в псевдокоде отображались значения переменных из других функций? Не просто "dword_3D08E04", а именно содержимое этой переменной, например, "хуй".
Сначала всё так и работало, но затем я решил поковыряться в настройка и где-то напортачил

Ответы911561

13 Янв, 23:01 #148 #911561

>>911549
Проблема решена, это я дурак.

14 Янв, 04:05 #149 #911684

>>891716 (OP)
Ура, два года все го прошло, тред появился. Научите как написать свою ОС на ассемблере? Почитал там калашникова, вот это все, про прерывания, флаги, регистры про 2^8.
Вообщем мне интересно с чем именно взаимодействует ассемблер, во что преобразовывается, как IDE(а fasm, masm и прочие это IDE которые преобразует буковки в машинный код) как они заставляют работать процессор, вот это все. Не, ну понятно что там машиный код хуе-мое но все же.
Алсо, реквестирую способы как написать свой ассемблер с нуля. Также всегда было интересно как погромировали самый первый в мире комп? Это щас ты юсб пограматор запустил, 2 провода в микроконтролер засунул и все есть и ты такой крутой мигаешь гирляндой.

Ответы911812911814911819911914911957911960

14 Янв, 11:25 #150 #911812

>>911684
Тененбома читал? Операционные системы, архитектуру*

14 Янв, 11:25 #151 #911814

>>911684
>Также всегда было интересно как погромировали самый первый в мире комп

Надыбай писульки Адушки, она там для манямашины что-то накодила

14 Янв, 11:33 #152 #911819

>>911684
По чертежам Бэббиджа и фон Неймана собирали, вручную создавали электрическую схему вместо набора кода.

14 Янв, 13:00 #153 #911914

>>911684
Нахуй иди, быдлан из /b/.

sage 14 Янв, 13:56 #154 #911957

>>911684
Васм (найдешь где-нибудь) дамп. Заклинание кода от Аквилы.

14 Янв, 14:01 #155 #911960

>>911684
По написанию ассемблера (и пердолинг сигналов) - nand2tetris на курсере. Более глубоко (и сложно) - Computation Structures от мита на едх. По осям - научись в асм и читай "процессор интел в защищённом режиме" с васм.ру и, наверное, Таненбаума.

14 Янв, 14:19 #156 #911978

Про защищенный режим Зубкова же читать надо.

14 Янв, 14:23 #157 #911984

>>892456
А оли? Еще в 32 битной винде есть консолька дебаг.

Ответы911986

14 Янв, 14:27 #158 #911986

>>911984
Я в Оле так и не понял, как искать значения в памяти (по типу ArtMoney).

14 Янв, 14:32 #159 #911991

https://habrahabr.ru/post/230359/
Поясните за эту вещь, аноны. Сори, я не такой уж знаток но как я понел тут специально для тупых запилили тот же ассемблер, но работающий на высокоуровневых языках. В чем тогда профит учить асм в 2017?

Ответы912006912164

14 Янв, 14:56 #160 #912006

>>911991
> В чем тогда профит учить асм в 2017?
Для взлома чужих прог, как правило.

14 Янв, 19:21 #161 #912164

>>911991
Это обычный редактор. Как notepad++, например.

14 Янв, 19:58 #162 #912194

Очередной раз сталкиваюсь с программой, защищённой протектором и не знаю, что делать дальше. Прошлый раз это была Enigma 3.70. С ней было проще - нашёл скрипт для OllyDbg, хотя мне и не удалось снять защиту, но нужные данные вытащил. Здесь же тот же самый скрипт пишет, что версия 5.50 и, естественно, завершается досрочно. Как тут действовать? Через GetWindowTextW нужного окна перехватил момент получения текста. Но дальше он как минимум в пять разных мест копируется, какие-то действия выполняются и всё - ключ не правильный, программа завершается. В OllyDbg только один брекпойнт на память можно ставить. Подскажите, в какую сторону копать.

15 Янв, 02:53 #163 #912441

Доставьте все книги и статьи мыщъха, а то я проебал.

Ответы912463

sage 15 Янв, 05:15 #164 #912463

>>912441
lmgtfy https://yadi.sk/d/CxzdM1wyea4WP

9 Кб, 519x356

15 Янв, 23:56 #165 #912858

Посоветуйте мануал по ассемблеру интел. Интересуют опкоды инструкций и раскуривание адресации в вызовах (прямая адресация, косвенная, дальняя и т.д. + опкоды вызовов и отличия E8, E9 от FF15).

Алсо, какой опкод отвечает за вызов функции из кернеля, но не FF15? FF15 использует косвенную адресацию.

Ответы912895913106

16 Янв, 01:43 #166 #912895

>>912858
SYSENTER/SYSCALL ?

Ответы913154

sage 16 Янв, 14:15 #167 #913106

>>912858
> Посоветуйте мануал по ассемблеру интел
Советую:
https://software.intel.com/en-us/articles/intel-sdm
Формат инструкций и опкоды во втором томе.

16 Янв, 15:50 #168 #913154

>>912895
Как используется этот буллшит SYSENTER? Как при помощи него вызывать функи из kernel32?

__asm
{
push 0;
mov eax, ExitProcess;
;mov edx, esp;
SYSENTER;
};

PS. Юзал SYSCALL под никсами, но там все немного по-другому.

Ответы913159913201

16 Янв, 15:53 #169 #913157

Студент в треде. Возникла проблема с турбо ассемблер для процессора intel 8086.
Суть проблемы в умножении слова на двойное слово. Все консультации проебаны, как и отношения с преподом. Вся надежда на тебя, анон.
Пока моих скудных знаний хватает только но то, чтобы в AX занести младшие 2 байта двойного слова и умножить на слово. Что делать со старшими разрядами представляю смутно. Результаты отдельных действий заношу в ячейки размером в двойное слово. конечный результат имеет длину четверного слова.
(d2+w3)-b1(w1b2-b1)/b3/w3 - Вот формула по которой вычисляю. b,w,d - переменный длинной в байт, слово и двойное слово.

Ответы913201

16 Янв, 15:55 #170 #913159

>>913154
Алсо, про нейтив апи знаю, но вызов Nt/ZwExitProcess что-то не получается. Это говно в хедере определено?

Ответы913201

16 Янв, 16:01 #171 #913162

Булшит

void *zwExit = GetProcAddress(LoadLibraryA("ntdll.dll"), "ZwTerminateProcess");
__asm
{
push 0;
mov eax, zwExit;
mov edx, esp;
SYSENTER;
};

Ответы913195913204

16 Янв, 16:13 #172 #913167

Как определить индекс системного вызова по нужному мне апи? Пишу вспомогательный шеллкод для вызова апи по хэшу. Почти все готово, но вызов апи костыльный. Хочу сделать хорошо.

16 Янв, 16:59 #173 #913195

>>913162
А, ты хочешь напрямую функции из ядра вызывать минуя ntdll? У меня тут есть кодец готовый - http://pastebin.com/vAY6KW0r

Ответы913200

16 Янв, 17:06 #174 #913200

>>913195
Смотри, что я хочу сделать. Вызов апи по хэшу для дополнительной антиотладки.

http://paste.ofcode.org/EzJbj84TmgiJHsVBZ7fnpn

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

Ответы913204

16 Янв, 17:07 #175 #913201

>>913154
>Как при помощи него вызывать функи из kernel32
Никак. sysenter нужен для перехода из ring3 в ring0. В регистр eax заносится число, по которому ядро определяет, какую функцию вызывают. Крайне системозависимо.
>>913157
А в чём проблема расширить слово до двойного слова и перемножить? Или у тебя там 16 битный процессор?
>>913159
>вызов Nt/ZwExitProcess что-то не получается
А посмотреть, как реализовано в ОС нельзя?

Ответы913206

16 Янв, 17:13 #176 #913204

>>913200
Ааа, понял.

>Но не знаю, как правильно вызвать функцию, адрес которой получен
Запушить аргументы, и потом:
mov eax, funcAddr
call eax

Но если ты хочешь вызывать функции ядра через SYSENTER как тут >>913162 то тебе первым делом надо SDT индекс этой функции получить. А потом вызвать её можно вот так на х86 системе - http://pastebin.com/9CrNQZKj
Соответственно callgatex86 вызывать вот так:

return callgatex86(sdtIndex, 5, 0, ProcessHandle, BaseAddress, ProtectSize, NewProtect, OldProtect);

Ответы913209

16 Янв, 17:15 #177 #913206

>>913201
16 битный процессор, в этом все сложность.

Ответы913210

16 Янв, 17:19 #178 #913209

>>913204
>mov eax, funcAddr
>call eax

Так и думал, что придется увеличивать число команд. А как лучше потом вызвать этот шеллкод? Если через CallWindowProc, то придется в начале шеллкода извлекать четыре переданных аргумента из стека. Создавать поток как-то слишком громоздко и я не уверен, что получится одной строчкой получить то, что вернула функция.

16 Янв, 17:21 #179 #913210

>>913206
google:умножение 32 битных чисел на 16 битном процессоре
Первая же ссылка http://asmworld.ru/isxodniki/32-bitnoe-umnozhenie/

Ответы913214

16 Янв, 17:23 #180 #913214

>>913210
Аригато

Ответы913216

16 Янв, 17:24 #181 #913216

>>913214
Зачем выебываться японским языком, из которого ты знаешь пару слов?

Ответы913227

16 Янв, 17:56 #182 #913227

>>913216
Нани? Аната ва ватаси мо паверулевелу га вакаримасен!

Ответы913340

16 Янв, 21:08 #183 #913340

>>913227
>Что? Ты, я тоже, паверлевел не понимает!

17 Янв, 10:36 #184 #913641

Помогите, пожалуйста. Я хочу просмотреть пошагово выполнение процедуры в игре с помощью отладчика, но как только я переключаюсь на его окно, процесс игры приостанавливается. Само собой, выполнить программу нормально не получается, так как программа сразу же переключается на библиотеку ntdll. Как сделать так, чтобы окно программы было активно и при этом её можно было просматривать с помощью отладчика? Я использую OllyDbg.

Ответы913685

17 Янв, 12:48 #185 #913685

>>913641
1. Запускай игру в оконном режиме.
2. Ставишь точку остановки на нужную процедуру.
3. Когда срабатывает точка остановки, переходишь в отладчик и пошагово проходишь интересующий тебя код.

20 Янв, 00:02 #186 #915482

Как восстановить (создать) таблицу импорта у dll? Есть адреса, где вызываются, есть название функций. Попробовал через CFF Explorer, но это вручную надо вбивать сотни строк. Через ImpRec не получилось, пишет, что невозможно прочитать данные, когда указываю адрес загруженной dll.

Ответы915677

20 Янв, 13:26 #187 #915677

>>915482
Адрес IAT правильно указал в ImpRec? Если знаешь IAT - сможешь хоть вручную скриптом на каком-нибудь питоне сгенерить таблицу импортов, там простой формат. Но в целом, ImpRec должен работать. Покажи скриншот ольки и imprec с прописанными адресами.

Ответы915724

114 Кб, 1024x768

24 Кб, 472x432

20 Янв, 15:29 #188 #915724

>>915677
Как этой программой пользоваться, не пойму. Нашёл, что нужно выбрать dll отдельно. Искал в гугле, но картинок нет, есть только текст.
dll загружено по адресу 10000000. IAT в отдельной секции (если правильно понял) 1003E000. Т.е. там содержатся ссылки на функции. Эту секцию (адрес) надо указывать? Строк с названиями функций у меня нет, всё сожрал злобный протектор.

Ответы915755

20 Янв, 16:30 #189 #915755

>>915724
Должно все работать. Адрес ты указал правильный, он относительно базового адреса модуля должен быть. Названия импортов нинужны, оно само находит, но нужен правильный размер (не могу проверить). В любом случае оно должно по Get Imports хотя бы первые импорты правильно находить. Разверни невалидный узел, посмотри, что внутри пишет, какие адреса там и какие в ольге. Посмотри лог повнимательнее, обрати внимание на image size.

Ответы915910

20 Янв, 21:02 #190 #915910

>>915755
ImpRec не понравилось, что у меня программа была приостановлена через отладчик и из-за этого не получалось? Потому что сейчас указал те же данные и всё получилось. Только F9 нажал перед этим. Отлично, секцию импорта восстановил. Уже вручную пытался, действительно, всё просто, но очень долго. А вспомогательный скрипт писать нисколько не хотелось.
А вот что делать с релоками? Есть один на всю dll. И тот, подозреваю, нужен был для энигмы. Когда энигма релоки переназначает, не понятно. После распаковки, но до копирования распакованного кода обратно в секцию или после распаковки и копирования? Компилятор VS располагает их в отдельной секции .reloc, которая последняя в файле и идёт после .rsrc. Но в моём файле после .rsrc идёт код энигмы.
Ещё и потерял, где настоящая точка входа. Находил ведь, а записать забыл. А как нашёл - не помню.

Ответы915924915927

20 Янв, 21:17 #191 #915924

>>915910
> релоки
Если ничего не поможет, есть старый трюк: ищешь OEP, ставишь бряк, дампишь. Меняешь у исходного файла базу (или занимаешь чем-то этот адрес до загрузки длл), пересчитываешь OEP на новую базу, ставишь бряк, еще раз дампишь. Ищешь различия, генеришь релоки.

Ответы915927

20 Янв, 21:23 #192 #915927

>>915910
>потерял, где настоящая точка входа
Нашёл по константе 0BB40E64E. Хорошо, что VS оставляет один и те же константы.
>>915924
Благодарю за совет.

Ответы916241

12 Кб, 240x703

21 Янв, 13:22 #193 #916241

>>915927
Нашёл что-то похожее на таблицу перемещаемых элементов. Энигма не старается скрыть её. Точка остановки на память в месте, где должен быть релок - и тут же находится функция работы с ним.
Только не получается простым копированием.
>LoadLibrary() reports error 000000C1 (ERROR_BAD_EXE_FORMAT)
Как всё муторно.

Ответы916319

21 Янв, 15:04 #194 #916319

>>916241
Возьми gflags.exe из Platform SDK/Debugging Tools For Windows и включи Show loader snaps для того exe, который грузит твою длл. Алсо скриншот нечитаемый.

Ответы916323916347

sage 21 Янв, 15:10 #195 #916323

>>916319
А, ок, на скриншоте вполне валидные релоки. Посмотри еще, может в флагах образа IMAGE_FILE_RELOCS_STRIPPED стоит. Ну и размер директории релоков проверь.

20 Кб, 893x573

21 Янв, 15:59 #196 #916347

>>916319
Копировал-правил, в виртуалку (там запущен не распакованный оригинал), обратно, туда-сюда, ну что ещё надо тебе, загружаю правленый файл, F9 и заработало. Вот что ему не хватало? Столько времени просидел зря.
А антивирусы крайне не любят Энигму, точнее дамп программы с ней. Знаю, что зловреды прячут в протекторе и они не детектятся, а у меня наоборот, выкусил из протектора и детект был 8 или 9, пока секции кода и данных протектора не удалил. Сейчас один чего-то ругается. Может быть, ему не нравится, что получилось? Файл-то дырявый получился, между секциями ничейное пространство. Ещё у меня есть подозрение, что можно распаковать файл из Энигмы без правильного ключа и вообще без ключа, но это можно потом поэкспериментировать. Хреновый из меня реверсер, столько дней угрохал на это.

21 Янв, 18:10 #197 #916409

Господа реверсеры, если я получу HINSTANCE библиотеки kernel32 и скопирую секцию кода в другое место, я смогу вызывать функции оттуда по их смещениям?

Ответы916427

21 Янв, 18:35 #198 #916417

Аноны, не нашел "основной" тред, о котором говорится в шапке, поэтому пишу сюда. Нужно реализовать алгоритм Берлеке-Месси на Ассемблере nasm. Не бесплатно, имеется 3к. Дедлайн - 24.

Ответы916424916427

21 Янв, 18:41 #199 #916424

>>916417
railmaildaiZvPlANUSg<KKmailPUNCTUMc`;Iom или id373341334
Отлипли контактные данные.

sage 21 Янв, 18:51 #200 #916427

>>916417
> не нашел "основной" тред
Прикрепленный ньюфаг-тред. gcc -S тебе все реализует, что захочешь.

>>916409
Скорее всего тебе повезет. Но могут попасться относительные ссылки на секцию данных, например.

22 Янв, 01:25 #201 #916693

Возможно ли в masm реализовать симуляцию нажатия ЛКМ / Клавиши клавиатуры - ?

Ответы916696

sage 22 Янв, 01:27 #202 #916696

>>916693
SendInput()

Ответы916976

22 Янв, 03:07 #203 #916728

Как вкатиться в низкоуровневое программирование и ревёрс? Пока есть поверхностное представление о архитектуре компьютеров и такое же знание ассемблера 8086 (уровня написать итеративный алгоритм Эвклида).
Читать Талмуд Таненбаума не хочется, хочется, чтобы было повелее, и главное, побольше практики, задачек, каких-нибудь laba1.asm писать.

Ответы916729916746

22 Янв, 03:13 #204 #916729

>>916728
повеселее
фикс

22 Янв, 08:53 #205 #916746

>>916728
Просто берёшь и вкатываешься. Для начала научись пользоваться Идой, если ещё не умеешь. А потом сам себе ставишь задачи. И учишь то, что для этого необходимо.

66 Кб, 460x613

22 Янв, 14:02 #206 #916976

>>916696
А по подробнее, не так давно въехал в asm.

Ответы916979917013

22 Янв, 14:11 #207 #916979

>>916976
Вот держи https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms646310(v=vs.85).aspx , погуглил за тебя. Это через WinAPI делается.

Ответы916981

22 Янв, 14:13 #208 #916981

>>916979
Oops , извеняюсь за свою тупость. Весьма благодарен.

22 Янв, 14:55 #209 #917013

>>916976
Возникла проблема с восприятием этой функции(точее с параметрами),
как к примеру отправить нажатие NumLock / просто нажатие ЛКМ - ?

Ответы917021

22 Янв, 15:02 #210 #917021

>>917013
Что я должен поместить в unsigned int - Массив клавиш - ?

Ответы917034

22 Янв, 15:19 #211 #917034

>>917021
Там же всё элементарно, ты чего на ровном месте застрял? Первый параметр - количество передаваемых структур INPUT, второй - сам массив инпутов, третий - размер структуры INPUT. Щёлкаешь на INPUT и смотришь, что там должно быть. Первый параметр - тип инпута и так далее. Всё расписано же.

Ответы917090

22 Янв, 16:25 #212 #917090

>>917034
Допустим, мне нужно симулировать простое нажатие лкм ->
invoke SendInput, 1,;(кол-во передаваемых структур);massiv,0;(т.к мне нужно использовать INPUT_MOUSE);
Так вот, я не совсем вникаю в то, как должен выглядеь массив, и он должен располагаться в .data сегменте или .code
Массив должен быть типа:
massiv struct
LButton = 0x01
ends
-?

Ответы917099917105

22 Янв, 16:32 #213 #917099

>>917090
или там где уменя 0 должно быть x,
где x=$-massiv - ?

22 Янв, 16:36 #214 #917105

>>917090
Ну написано же в документации, ну. Зачем ты в асм полез, если не можешь документацию читать? Ну возьми тогда mouse_event, keybd_event они проще, система за тебя сама SendInput соберет.
> он должен располагаться в .data сегменте или .code
Да хоть в .rsrc, всем похуй.

> как должен выглядеь массив
Как массив. Структуры городить не обязательно.

start: invoke SendInput,2,events,28
invoke ExitProcess,0

events dd INPUT_MOUSE ; INPUT.type
dd 0, 0 ; MOUSE_INPUT.dx/dy
dd 0 ; MOUSE_INPUT.mouseData
dd MOUSEEVENTF_LEFTDOWN ; MOUSE_INPUT.dwFlags
dd 0, 0 ; MOUSE_INPUT.time/dwExtraInfo

dd INPUT_MOUSE ; INPUT.type
dd 0, 0 ; MOUSE_INPUT.dx/dy
dd 0 ; MOUSE_INPUT.mouseData
dd MOUSEEVENTF_LEFTUP ; MOUSE_INPUT.dwFlags
dd 0, 0 ; MOUSE_INPUT.time/dwExtraInfo

22 Янв, 20:55 #215 #917409

Как в asm выглядит синтаксис Point структуры, что бы получить x и y через GetCursorPos - ?
Забил покуда из за недостатка знаний на SendInputs(т.к так и не разобрался, как это работает),
использую "устаревшие" как мне говорят mouse_event, вот.

Ответы917413

22 Янв, 20:57 #216 #917413

>>917409
Да , забыл сказать, работаю в masm32 , использовать int33 и использовать CX и DX - не получится .

Ответы917428

22 Янв, 21:17 #217 #917428

>>917413
.data
POINTER STRUC
X DD ?
Y DD ?
POINTER ENDS
XX DD ?
YY DD ?

.code

start:
invoke GetCursorPos, POINTER
Mov eax,POINTER.X
Mov XX,eax
mov eax,POINTER.Y
mov YY,eax
MOV edx,XX

Что делаю не так?

Ответы917466

22 Янв, 21:50 #218 #917466

>>917428
С чем связана запись в Y - Нуля, а в X - 4-ех ?

Ответы917476

sage 22 Янв, 21:59 #219 #917476

>>917466
Я вот вижу, как ты определил структуру (тип), но не вижу, где бы ты создавал переменную этого типа. Не знаю масма, если что.

Ответы917479

22 Янв, 22:04 #220 #917479

>>917476
Переменные должны были быть long , но как их вписать в асм'е покуда хз.
Решил путем
offset'a а точнее ADDR.

в MyPoint.x записываются координаты x,
а в MyPoint.y записываются координаты в y,

.data
MyPoint POINT <>

.code
start:

invoke GetCursorPos, ADDR MyPoint
mov eax,MyPoint.x
mov ebx,MyPoint.y
invoke ExitProcess,0
end start

Ответы917485

sage 22 Янв, 22:10 #221 #917485

>>917479
Ну вот, сам решил, мог бы и не спрашивать в треде.

> Переменные должны были быть long , но как их вписать в асм'е покуда хз.
Очевидно, что никак (хотя в масме вроде были алиасы). Все эти int/uint/long/ulong/size_t и указатели в 32-битном коде - это дворды, т.е., dd.

Ответы917502

22 Янв, 22:19 #222 #917502

>>917485
>Очевидно, что никак (хотя в масме вроде были алиасы). Все эти int/uint/long/ulong/size_t и указатели в 32-битном коде - это дворды, т.е., dd.
За это благодарен.
>Ну вот, сам решил, мог бы и не спрашивать в треде.
Я ожидал что мне поможет кто-то более опытный, и мне не нужно будет копаться на всяких форумах/бордах/электронных книгах и тратить время.

36 Кб, 638x298

22 Янв, 22:25 #223 #917506

Вообще , было бы приятно, если бы кто-нибудь поделился источником где можно прочитать о создании POINT стрктур в ASM, т.к не совсем понятно как создается и выглядит MyPoint структура по примеру
" MyPoint POINT <> " Как на пике , или - ?

26 Янв, 15:10 #224 #919819

Где может храниться информация о регистрации? Приложение написано на VB5 в далёком 2003 году, компиляция в Native. ProcessMonitor ничего дельного не показывает, брекпойнт на CreateFileW ничего не дал.

C:\Windows\Registration\R000000000006.clb - погуглил, "файлы зарегистрированной базы данных COM+ элементов", не то.
HKCR\CLSID\{00000010-0000-0010-8000-00AA006D2EA4} - фигня
HKCU\Software\Classes\Licenses\F4FC596D-DFFE-11CF-9551-00AA00A3DC45 - опять не то, свободно гуглится GUID
И прочее в таком же виде.

Как ещё может проверяться регистрация и где может храниться? Брекпойнт на память на строке "Trial" всплывает очень глубоко внутри kernel32 на подсчёте её длины, а до этого в MSVBVM60.DLL. Это создание окна. Неужели есть отдельная полнофункциональная версия?

Ответы919957

sage 26 Янв, 19:20 #225 #919957

>>919819
Так есть жи декомпилятор от русского автора. Много интересного показывает, и native ему не помеха.

Ответы920030

26 Янв, 21:13 #226 #920030

>>919957
VB Decompiler Pro? Его и использую. Ида так же дизассемблирует. Но проблема в том, что не могу найти ни место генерации ключа, ни место хранения данных о регистрации. В программе (отдельном модуле, их много, но ничего другого не загружается) всего несколько десятков функций. Но нет ничего. Не пойму, как программа определяет, что она не зарегистрирована. Как в VB может такое быть? Может быть, получается помимо отладчика через p-code что-то выполнить? Нет идей.

Ответы920100920102

sage 26 Янв, 23:56 #227 #920100

>>920030
Что за программа? Уверен, что она вообще умеет превращаться в полную версию, а не качать апдейт при вводе правильного ключа, например?

Ответы920102

27 Янв, 00:04 #228 #920102

>>920030
А нет, что-то нашёл. Очень уж непонятен этот Native VB. После замены условия программа завершилась сообщением об ошибке "No current record." Значит, в базе данных где-то должен ключ храниться. А база данных "Standard Jet DB".
>>920100
Да ни в чём не уверен, разве кроме скачивания чего-то из интернета, потому что в то время это было не распространено. У меня даже не получается посмотреть, что будет после завершения триала, т.к. счётчик не уменьшается.

27 Янв, 19:19 #229 #920403

Посоветуйте литературу(видеокурсы,статьи и прочие ресурсы)для новичка.(хочу вкатиться в ас. хз с чего начать).

Ответы920418

sage 27 Янв, 19:33 #230 #920418

>>920403
Ассемблер: абсолютно похуй, как его учить - можно хоть с Human Resource Machine начать, продолжить TIS-100, а потом уже что-то серьезное читать. Реверсинг: beginners.re, а потом уже сам поймешь, надо ли оно тебе, и что учить дальше.

36 Кб, 699x473

64 Кб, 759x563

32 Кб, 755x506

29 Янв, 16:06 #231 #921519

1. Скопировал из гайда такой код , в fasm его скомпилировал.
2. Сделал образ диска .iso и в VirtualBox поставил его в виртуальную машину, чтобы с него считывалась эта ОС, выводящая hello world.
3. Выводит ошибку.
Что я делал не так?

Ответы921545

29 Янв, 17:37 #232 #921545

>>921519
Сделай образ дискеты, а не диска.

30 Янв, 09:59 #233 #921878

Поцаны, а на каком году изучения асма появляется способность понимать чо происходит в реверснутых программах?
Когда сам асм пишешь понимаешь, что происходит. А понять ту мешанину, после декомпиляции очень сложно.

Ответы922365922422

6 Кб, 364x150

30 Янв, 20:14 #234 #922365

>>921878
Ни на каком. Для поднятия скилла реверса нужно, как ни странно, реверсить, и чем больше, тем лучше.
Мимо ньюфаг и ОП

sage 30 Янв, 21:00 #235 #922422

>>921878
> А понять ту мешанину, после декомпиляции очень сложно.
Чтобы понять выхлоп HexRays, нужно не лениться восстанавливать и прописывать типы функций и прототипы, не лениться убирать дубликаты переменных нажатием =.
Чтобы научиться понимать дизасм, можно в комментариях к дизасму писать псевдокод, подражая HexRays:
mov edx,eax ; edx = eax
shl edx,2 ; edx = eax × 4
add edx,eax ; edx = eax × 4 + eax = eax × 5
shl edx,1 ; Епт, да это же умножение на 10!
А потом, с опытом, придет способность делать то же в уме (а также пользоваться правильными инструментами или писать их самому, чтобы не делать этого в уме).

Ответы922871

31 Янв, 10:51 #236 #922871

>>922422
Вот эт интересно, а не то что анон выше посоветовал, чтоб приседать на бутылку было не больно, нужно приседать на бутылку. Ахуительные советы блять. Но ведь есть жи особенности как чо делать. Сам то наверное как родился первую прогу реверснул и все понял епт.

Ответы923303923385

31 Янв, 19:57 #237 #923303

>>922871
>чтоб приседать на бутылку было не больно, нужно приседать на бутылку.
Тут ты обосрался.
Судя по местным заседалам из /po/ эта тактика работает.

З.ы пока не искатаешь дисциплину ЭВМ хотя бы поверхностно, хуй ты станешь адекватным реверсером.
Да и к тому же что бы понять ну "мешанину" после декомпиляции нужно хотя бы немного изучить структуру компилятора которым и была "написана" программа.
Ну и как совет больше практикуйся приседай на бутылку , не в реверсе а в написании программ на ASM.

31 Янв, 21:13 #238 #923381

Кто-нибудь кроме меня тут вообще пытался декомпилировать винду?
А то в одиночку как-то медленно выходит.

Ответы923391

31 Янв, 21:18 #239 #923385

>>922871
>Сам то наверное как родился первую прогу реверснул и все понял епт.
Расскажу свою историю.
Реверс давно меня заинтересовал, поэтому плохо помню, как учился.
Сначала кодил на С(++). Даже не понимал, зачем нужен этот Debug, мне и Release подходит. Как-то потихоньку заинтересовался асмом, когда нажимаешь "Go to disassembly" в Visual Studio интересно было смотреть, во что превращается исходный код. Даже каким-то образом скачал Иду, наверное 5.2, а может и из 4 версии. Но ничего не было в этой программе понятно. Благодаря книге "Образ мышления - дизассемблер Ida" разобрался в этой программе. Но до этого мне понадобилось около 2 месяцев на изучение ассемблера, потому что было абсолютно непонятно, то там происходит. Не помню, почему так долго, может быть, из-за учёбы, а может быть некуда было спешить. Постепенно увлекался, это было как хобби.
А вот сейчас, когда пытаюсь зарабатывать с помощью реверса, стало понятно, что все эти годы занимался фигнёй. Не было у меня практики. Разреверсить функцию или сетевой протокол в незащищённой программе могу. С некоторым трудом могу восстановить формат файла. Может ещё чего по мелочи. Но если программа как-то зашифрована или накрыта протектором, то уже не знаю, что делать. Приходится отказываться от приличного количества работы только из-за того, что не знаю, как её выполнять. Так что прав тот анон. Только практика может сделать из тебя реверсера. Когда постоянно сталкиваешься с чем-то незнакомым. А не так, как получилось у меня. Теперь приходится навёрстывать. А ещё на асме не пишу.

Ответы923648

31 Янв, 21:20 #240 #923391

>>923381
Иногда смотрю, как в kernel32.dll или user32.dll выполняется функция или почему возвращает неверный результат. Но не так глобально, как у тебя. Тебе в ReactOS надо вливаться. Или слишком разные у вас пути?

Ответы923398

31 Янв, 21:23 #241 #923398

>>923391
Конечно разные. Они со своей политикой не подсматривания в сырцы и не дизасма саих файлов далеко не уедут. Собственно по их прогрессу и так видно.
Да и видел я сырцы Вынь2000 и WRK, поздно мне туда.

Ответы923400

sage 31 Янв, 21:26 #242 #923400

>>923398
> политикой не подсматривания в сырцы
У них скорее политика "не пойман - не вор". Внутренние структуры и функции совпадают - они же не из астрала эти данные взяли? Или у них clean room с двумя командами?

Ответы923405

31 Янв, 21:31 #243 #923405

>>923400
>Или у них clean room с двумя командами?
Таки да, иначе бы их давно пидорнул МС. Только чистая комната спасёт их от озалупливания Майкрософтом, и они это прекрасно понимают. Поэтому у них до сих пор глючный клон 16 летней ОС.
Впрочем, совпадение там весьма условное. Я как-то сравнивал пару рандомных функций с кодом WRK- совсем иной подход.

Ответы923555

01 Фев, 00:05 #244 #923555

>>923405
Ну в общем процесс идёт, появилось пару вопросов. Надекомпилял как смог функцию IovUnloadDrivers, из Win2k3 SP2 x64, вот результаты:
http://pastebin.com/uH1gD8jE
В общем вопросы таковы:
Что за взаимная мастурбация с переменными v16 и v17? Что я тут проебал?
Какой тип выставить переменной Object? Функция KeWaitForSingleObject жрёт PVOID, но тут явно что-то большее должно быть. Может это связано с дрочкой v16 и v17.
И вообще, скажите, что я сделал не так. В реверсе полный дуб.

Ответы923583

sage 01 Фев, 00:58 #245 #923583

>>923555
> Object
Очевидно, что это структура, и ты ее не задефайнил. Гугли DISPATCHER_HEADER для начала.

Ответы923955

01 Фев, 08:07 #246 #923648

>>923385
> Только практика может сделать из тебя реверсера
>Приходится отказываться от приличного количества работы
Дохуя напрактиковал отказы от работы?

01 Фев, 17:23 #247 #923955

>>923583
>DISPATCHER_HEADER
Ага, подошло. Правда в ядре чаще юзают KEVENT и ему подобное, но ничего кроме лишнего уровня она не добавляет. Так же заметил функцию в заголовочном файле, которая сворачивает всю инициализацию объекта ожидания до вызова одной строчки. Жить стало лучше, жить стало веселее.
Вот вопрос- а как такое отгадывать? Остальное я достал из вызываемых функций, которые хотя бы как-то описаны, а вот этот объект юзается только в функции, принимающей PVOID, то есть никакой информации толком нет. Правда конкретно эту я бы мог отгадать сам по примерам другого кода, использующего функцию KeWaitForSingleObject, но как быть с кодом, где никаких подсказок нет? Как реконструировать структуры по коду?

Так же я заметил, что проебался с маппингом переменных, так как строки
driverObject = 0i64;
have_next_device = 0;
while ( driverObject )
{
Явно ошибочны. Размаппил одну из них, переименовал по вкусу, вроде теперь всё нормально. Зацените:
http://pastebin.com/exhumh83

Ответы924101

sage 01 Фев, 20:30 #248 #924101

>>923955
> как быть с кодом, где никаких подсказок нет
Из названия очевидно, что KeWaitForSingleObject хочет объект, а PVOID должен на что-то указывать. Гуглим или реверсим KeWaitForSingleObject, чтобы узнать, что у объекта должен быть заголовок, и какой тип в этом заголовке типу какого объекта соответствует.
> ничего кроме лишнего уровня она не добавляет
Будешь лениться - запутаешься.
> Как реконструировать структуры по коду?
Найти код, который структуру создает (если повезет) и код, который ее использует. Поля структуры можно восстанавливать полуавтоматически (правой кнопкой, Reconstruct type возможно, это HexRaysCodeXplorer добавляет, не помню), есть еще Create struct from data. Назначение полей выясняется долгим и мучительным анализом работающего с ними кода (или, в случае винды, гугл и символы весьма помогают).

Ответы924262

01 Фев, 23:30 #249 #924262

>>924101
>или, в случае винды, гугл и символы весьма помогают
Да вот у меня сейчас такие функции, про которые гугл выдаёт 3,5 ссылки, из них одна сюда и одна на выложенный мною код. Вообще странно, что никто не выкладывал свои раскопки в этом направлении. Не верю, что я первый тут копаюсь.
АЛСО, зачем сагаешь? Тред хороший же.

Ответы935318

41 Кб, 1262x555

02 Фев, 20:00 #250 #924883

Пробовал ли здесь кто вручную запускать длл напрямую из памяти, накрытую темидой? У меня почему-то крашится на пикрелейтеде. Если загружать длл через LoadLibrary то всё отлично пашет. Для запуска длл юзаю https://github.com/tishion/mmLoader

Ответы924946925377

02 Фев, 21:04 #251 #924946

>>924883
Там проблема какая-то со структурными исключениями.
https://habrahabr.ru/company/xakep/blog/260577/
>для реализации поддержки исключений в динамически размещаемом коде на x86 платформе можно выделить минимум три способа:
>Установка/подмена флага ImageDispatchEnable для процесса.
>Подмена типа региона памяти на MEM_IMAGE (для PE-образа без SafeSEH).
>Реализация собственного диспетчера исключений в обход всех проверок.
Может быть, это оно?

03 Фев, 14:07 #252 #925377

>>924883
Короче разобрался. Нашёл другую либу для загрузки PE из памяти - https://github.com/DarthTon/Blackbone/ С ней всё заработало.

03 Фев, 16:11 #253 #925472

Господа /pr/ограммисты
Немного не по теме но подкиньте какой-нибудь литературы для вкатывания в дизассемблирование
Благодарю покорно :3

Ответы925552925570

03 Фев, 17:37 #254 #925552

>>925472
http://bfy.tw/9s7g
Неблагодари :3

Ответы925570

03 Фев, 18:02 #255 #925570

>>925472
>Немного не по теме
На самом деле по теме. Это я проебался с названием.
>>925552
Не ходите по этой ссылке, там вирус! У меня от этой фигни брат на функциональных языках писать стал. И говорить.

03 Фев, 18:28 #256 #925581

Путём читания небольшого гайдика "Как написать свою ОС часть 1" и экспериментов я сделал программу, которая работает без опероционной системы и выводит на экран некоторое число, сохранённое в регистре ax. А затем выводит "press any key..." и ждёт когда кто то нажмёт эникей. Но ведь больше 510 байт программного кода написать нельзя. Чтобы дальше пойти, надо на месте этих 510 байт остаьные 2 — сигнатура написать загрузчик операционной системы. Но как это сделать? Что он из себя вообще представляет?

Ответы925748928266

03 Фев, 18:29 #257 #925584

С тех пор как я начал изучать ассемблер я начал переставать понимать си. Мне кажется что си это вообще какой то бредовый эзотерический язык. И как я раньше на нём мог программировать?

03 Фев, 21:04 #258 #925748

>>925581-кун
Распишу свою проблему подробнее. Я хочу для себя писать программки, работающие без специальной ОС чтобы создать армию дронов-автоматчиков. И при этом мои программы будут, естественно больше 510 байт. Так как же загрузить в оперативную память код из участков памяти после первого (загрузочного) сектора?

Ответы925882

03 Фев, 22:37 #259 #925882

>>925748-кун
Уже, похоже, решил проблему. Но я ещё не проверял, спать хочу. Вот здесь http://metanit.com/assembler/articles/MiniOS.php я нашёл код и загрузчика и ядра и даже программы для изменения текста.
Надеюсь меня не зобанют за рекламу сайта, на который только что наткнулся

Ответы927138

05 Фев, 16:57 #260 #927128

Какие функции в биосе чтобы выводить пиксели, а не буковки?

Ответы927137

05 Фев, 17:08 #261 #927137

>>927128
NEKOKIE. так в видеопамять напрямую и писали.

05 Фев, 17:10 #262 #927138

>>925882
Посмотри ещё http://osdev.ru/viewtopic.php?f=4&t=808
Это загрузчик ядра OS/2 (кто-то помнит такую?) - со своей собственной функциональностью запуска модулей и проч... в итоге получился такой небольшой DOS. Может жить и отдельно от OS/2 - на FAT/FAT32 разделе.

05 Фев, 17:13 #263 #927141

Опять протектор, VMProtect версии 2.07. Как пишут на васме, сложнее протектора нет. Определяет отладчик (OllyDbg с плагином StrongOD в Windows XP успешно скрывается), определяет виртуальную машину (а тут уже не знаю, что делать, разве что устанавливать второй ОС WinXP). Даже дамп не снять.
У кого-нибудь есть эта версия протектора? Сам нашёл только 2.1.0.

Ответы927215

49 Кб, 739x488

60 Кб, 580x570

138 Кб, 739x488

05 Фев, 18:34 #264 #927188

Не понимаю. Почему у меня выходит бесконечный цикл? По идее cx должен уменьшаться.

Ответы927189927212927329

05 Фев, 18:35 #265 #927189

>>927188
Случайно 2 одинаковые картинки прикрепил из-за бага двача

05 Фев, 19:16 #266 #927212

>>927188
бамп, срочно надо. А то завтра смогу только после 15:00 вернуться к программе, но на завтра я запланировал просмотр анимы.

05 Фев, 19:23 #267 #927215

>>927141
>Как пишут на васме
Он же лежит уже несколько месяцев?

АЛСО, отличный сайт для изучающих глубины Windows:
http://geoffchappell.com/
Описание структур со смещениями для всех версий венды от NT 3.5 до десяточки, функции и ещё много всего. Я охуел от полезности этого сайта и решил его себе скачать целиком.

Ответы927242927259955112

05 Фев, 20:02 #268 #927242

>>927215
>Описание структур со смещениями для всех версий венды от NT 3.5 до десяточки
http://msdn.moonsols.com/winxpsp3_x86/PEB.html

Ответы927274955112

05 Фев, 20:26 #269 #927259

>>927215
>Он же лежит уже несколько месяцев?
http://wasm.in/forum/threads/kto-nibud-lomal-vmprotect.20683/

Ответы927274

05 Фев, 20:40 #270 #927274

>>927242
Там только до спермооси, десяточки тонет.
>>927259
Что и доказывает, что wasm.ru лежит.
А на том форуме проебали 4 года форума и весь сайт.

05 Фев, 22:01 #271 #927329

>>927188-кун
Так и не понял в чём проблема, но решил тем что заменил
loop метка
на
dec cx
cmp cx,0
jz метка

Ответы927359927387

05 Фев, 22:26 #272 #927338

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

Ответы927651

05 Фев, 22:58 #273 #927359

>>927329
>Так и не понял в чём проблема
А где у тебя там было вычитание из cx?
>dec cx
>cmp cx,0
Нет нужды сравнивать с нулём.

Ответы927363

05 Фев, 23:10 #274 #927363

>>927359
> А где у тебя там было вычитание из cx?
А что по-твоему делает loop?
мимо другой анон

Ответы927373

05 Фев, 23:24 #275 #927373

>>927363
>А что по-твоему делает loop?
LOOP rCX
Decrement count; Jump short if count!=0
Ну да, не знал об этом. Ни разу не попадалась такая команда. В таком случае, у него cx = 0 в самом начале и не видно, чтобы ещё какая-то инициализация была, кроме той странной функции, что не приведена.

Ответы927470

05 Фев, 23:57 #276 #927387

>>927329
Дональт Кнут.

06 Фев, 08:46 #277 #927470

>>927373
proverka увеличивает значение cx

06 Фев, 15:54 #278 #927650

В какой участок памяти записывать байты со значением RGB (24 битный), чтобы таким образом выводить информацию на экран? И какие функции биоса надо использовать?

Ответы927857

06 Фев, 15:55 #279 #927651

>>927338
asmworld.ru, я там научился хелло ворлд делать в досе и простейший калькулятор. Потом походил по другим сайтам и теперь могу выводить и вводить буковки без специальной операционной системы (без линукса, виндовса).

06 Фев, 21:30 #280 #927857

>>927650
Если ты про Windows, то забудь сразу. Если DOS, то научись сначала чем-нибудь попроще пользоваться, типа https://en.wikipedia.org/wiki/Mode_13h а потом уже научишься VESA ебать.

Ответы928266

07 Фев, 17:41 #281 #928266

>>927857
Походу это тот же чел, что пишет на асме на голом железе:
>>925581

Ответы928447

sage 08 Фев, 00:09 #282 #928447

>>928266
В этом случае совет все равно в силе. int 10h/func 00h/mode 13h - это BIOS.

09 Фев, 23:22 #283 #929857

Мне кажется, что мной выбран неправильный способ решения моей проблемы.
Мне нужно обойти защиту, которую так и не смог снять (VMProtect).
Защита контролирует контрольную сумму всех исполняемых файлов (легко обходится), наличие отладчика (тут уже никак не получилось) и, самое для меня трудное, проверяет, кто вызывает функцию из защищённой dll. Если вызывает нужный exe-файл (не знаю, как определяет, только по имени или как-то ещё), то всё в порядке. А если в стеке присутствует что-то другое (даже не на вершине стека, а предыдущая функция), то функция не срабатывает, как надо.
Идея у меня такая - увеличить виртуальный размер последней секции (не хочу, чтобы размер исполняемого файла менялся) и спроецировать на свободное место свою dll, которая будет вызывать нужные функции и которая заменит несколько функций в импорте исполняемого файла.
Чтобы избежать инъекции кода (как бы защита контролирует и этот способ, но не проверял, доверился описанию), добавил свою dll в импорт exe, которая при загрузке должна будет делать всю работу.
Как решаются подобные задачи?

Ответы930247930271930389

10 Фев, 00:12 #284 #929894

В чём различия масма, фасма, тасма? Пойдёт ли код, написанный под один ассемблер, к другим?

Ответы929898

10 Фев, 00:15 #285 #929898

>>929894D
> В чём различия масма, фасма, тасма?
В директивах компилятору. В способе записи адресов (все эти квадратные скобки, offset, addr, ptr и т. п.). В макроязыке. В основном, код от одного ассемблера можно преобразовать в другой очень быстро, вручную или какими-нибудь регэкспами. А еще есть AT&T-синтаксис, у них все через жопу.

10 Фев, 17:26 #286 #930247

>>929857
>Идея у меня такая - увеличить виртуальный размер последней секции (не хочу, чтобы размер исполняемого файла менялся) и спроецировать на свободное место свою dll, которая будет вызывать нужные функции и которая заменит несколько функций в импорте исполняемого файла.
Разве вмпротект позволит это сделать? Он же должен чекать контрольную сумму того исполняемого файла которым он накрыт. Или там только длл накрыта, а экзешник не накрыт?

Ответы930271930389

10 Фев, 18:18 #287 #930271

>>930247
>Он же должен чекать контрольную сумму того исполняемого файла которым он накрыт.
>>929857
>Защита контролирует контрольную сумму всех исполняемых файлов (легко обходится),

10 Фев, 21:36 #288 #930389

>>929857
Всё сделал, как планировал. Увеличил виртуальный размер секции, модифицировал MemoryModule, чтобы можно было загружать исполняемый файл без выделения памяти, создал две dll, чтобы не было инъекции, одна загружается через импорт и проецирует вторую в нужную секцию. Вторая подменяет адреса нужных мне функций и реализует необходимый функционал. Всё успешно загружается, лог пишется. Но ничего не работает. Неужели протектор контролирует адрес вызываемой функции? Или контролирует границы секции, было так, а стало больше и вызывает кто-то за пределами? Ну что ему ещё не хватает?
>>930247
>Или там только длл накрыта
Накрыта dll, но защита контролирует целостность всех остальных модулей. Даже удаляет лишние dll, хорошо, что только по расширению проверяет, достаточно переименовать и такой файл не трогает. Размер не проверяется, только CRC32, что очень легко обходится.

Ответы931238

10 Фев, 21:48 #289 #930397

Здравия желаю господа.
Так уж получилось, что у меня есть фетиш - писать ботов.
До этого ограничивался Cheat Engine-ом для поиска базовых адресов, оффсетов и т.д., но развиваться все же хочется.
Знаний минимум, ботов писал на простеньком Autoit, поначалу были обычные кликеры, потом бот работающий с пикселями, а теперь уже бот работающий с памятью.
Так уж получилось, что хочу поднять уровень своих знаний и доставать самую годноту с помощью Ollydbg(если я правильно понял, он имеет прямое отношение к ассемблеру).
Т.е., с Cheat Engine не напишешь бота с функцией Vac хака(функция вакуума, которая притягивает всех мобов к персонажу) и т.д., тут уже нужен Ollydbg для получения этих данных.
Будьте любезны, накидайте гайдиков и т.д., где затрагивают подобную тему.
Заранее премного благодарен.

Ответы930402

10 Фев, 21:55 #290 #930402

>>930397
OllyDbg - это отладчик. С помощью него можно найти адреса необходимых тебе функций. Но вот писать своего бота ты будешь на каком-то языке программирования. Можешь выбрать любой язык, какой понравится.

Ответы930405

10 Фев, 22:02 #291 #930405

>>930402
Спасибо за ответ анон, я это уже знаю.
Видимо я неправильно объяснил...
Я буду и дальше писать на Autoit, благо все нужное мне в нем есть, вплоть до инъекций, единственный его большой минус - отсутствие многопоточности.
Ну так вот, я просто хочу научиться доставать из Ollydbg данные, которые с помощью Cheat Engine не найти.
Пример:
Я вижу HP и MP своего персонажа и легко нахожу их базовые адреса и оффсеты с помощью Cheat Engine, делаю поиски этих данный с 4byte. Но и есть и такие вещи, которые я не вижу. Например, скорость атаки, скорость бега, расположения мобов на карте и т.д.
Вот для поиска именно таких значений мне и нужен Ollydbg.

11 Фев, 02:47 #292 #930664

>>891716 (OP)
Да вытолко пиздеть умеете, а когда надо отреверсить блоб модуль ядра нвидия то говорите что нвидия ненужна.

Ответы930793

11 Фев, 13:32 #293 #930793

>>930664
Это люнупс не нужен.

Ответы930797

Dmitry 11 Фев, 13:39 #294 #930797

>>930793
Without GNU/Linux there will not be 70% of jobs in IT.

Ответы930871

11 Фев, 14:57 #295 #930871

>>930797
Ну да, люнупс своим требованием квалификации создаёт рабочие места на пустом месте.
Впрочем, мы отклонились от темы.

11 Фев, 15:34 #296 #930908

рейт май код, двач.
http://pastebin.com/GHbjYV0h
Он должен предлагать ввести число, потом ввести второе число, потом ввсети + или - или * или / и вывести что получилось. Но не всегда можно увидеть что вводишь и делить нельзя.
на голой без ОС

Ответы931987

11 Фев, 22:00 #297 #931238

>>930389
Следующий день подходит к концу, а борьба продолжается. Защита действительно проверяет адрес вызывающей функции и, если он не равен тому, что в исполняемом файле, функция не работает. Такое нагородил уже в exe, приходится убирать весь код вокруг вызова, размещать его в другом месте, а здесь уже делать возможность вызова нужной мне функции. Хорошо, хоть у "cmp eax, 0FFFFFFFFh", которая идёт сразу же после функции, и "ret xxx" размер опкодов одинаков, а то ещё большие костыли пришлось бы городить. И всё это вручную. Плохо быть мной.

Ответы931323

sage 12 Фев, 01:25 #298 #931323

>>931238
Какая-то идиотская, ни от чего не защищающая проверка. Ищется в .exe байт 0xc3, все функции из .exe вызываются через трамплин, заменяющий оригинальный адрес возврата на адрес байта 0xc3, а за ним уже push-ащий оригинальный адрес возврата, все это можно автоматически генерить.

Ответы931390

12 Фев, 08:19 #299 #931390

>>931323
>Какая-то идиотская, ни от чего не защищающая проверка
И это хорошо. Разработчику достаточно было немного усложнить свою защиту и было бы уже очень не просто. А тут даже исполняемый файл можно изменить без сложностей. Хорошо, что разработчик не понимает в реверсе. Зато защиту свою продаёт за даллары.
>Ищется в .exe байт 0xc3
Не пойму, что ты имеешь в виду. Можешь в псевдокоде показать?
Вызываемая функция находится в защищённой dll, адрес возврата в этой функции проверяется и, если он не совпадает с тем, что в exe файле, функция просто не работает.

Ответы931408

sage 12 Фев, 09:17 #300 #931408

>>931390
> разработчик не понимает в реверсе
Лолшто? Вмпротект сделал чувак с exelab (бывший cracklab) и как раз в реверсе он разбирается охуенно.

> Не пойму, что ты имеешь в виду. Можешь в псевдокоде показать?
Ну берешь и генерируешь себе для каждой вызываемой функции что-нибудь такое:
yoba:
pop edx ; Старый адрес возврата
mov eax,dword ptr[dll_base] ; Хэндл/базовый адрес DLL
add eax,RETN_RVA ; RVA любого байтика C3 из DLL
push eax
push edx
mov eax,dword ptr[dll_base] ; Хэндл/базовый адрес DLL
add eax,FUNC_YOBA_RVA ; RVA нужной функции в DLL
call eax
Функция вызывается, потом возвращает управление в DLL, но там C3 (retn), оно берет со стека следующий адрес и возвращается уже в твой код.

Ответы931451

12 Фев, 11:24 #301 #931451

>>931408
>Вмпротект сделал чувак с exelab (бывший cracklab) и как раз в реверсе он разбирается охуенно
Нет, ты не понял. С VMProtect всё в порядке. Сам протектор использован для усложнения реверса dll. Но вот разработчик этой самой dll как раз в реверсе не очень-то и понимает. Вот он и продаёт свое поделие за даллары. Надеюсь, он не предусмотрел таймаут между вызовами функций.
>add eax,RETN_RVA ; RVA любого байтика C3 из DLL
В данном случае так не получится. Адрес возврата должен точно соответствовать определённому числу, тому, где находится вызов функции в exe. А после вызова идут проверки. Соответственно, чтобы вызов этой функции в самом exe работал, пришлось городить переходы в свободные области файла, а здесь делать нормальный вызов с возвратом прямо посередине существующей функции (а чтобы не мучаться с поиском этих функций, добавил их в экспорт).

12 Фев, 20:56 #302 #931863

>>891716 (OP)
Поцоны, выручите ньюфага по ассемблеру, вернее ассемблеру в FASM. Хочу себе вывести на экран линию между двумя точками, как в пеинте. Пока что я только начал. Комментарии ставить не буду чтобы поучились реверс инженирингу.
Так не работает почему-то
http://pastebin.com/mFP1UZR6

Ответы931867

12 Фев, 20:58 #303 #931867

>>931863
> Комментарии ставить не буду чтобы поучились реверс инженирингу.
Отвечать не будем, чтобы поучился гуглить.

12 Фев, 23:52 #304 #931987

>>930908
>е число, потом вв
Неплоохо

14 Фев, 14:11 #305 #933017

Анон, дай готовый алгоритм для подделки CRC32 путём внедрения байт в произвольное место. В статье КК мне не понятны два последних (и основных) пункта, а приведённые листинги не полные.

Ответы933037

sage 14 Фев, 14:48 #306 #933037

>>933017
Сходи по ссылкам в статье криса (если сдохли, есть веб.архив.орг). Там, в частности, упоминается CRC and how to reverse it, ее и читай. И там вроде код был.

Ответы933242

14 Фев, 18:22 #307 #933242

>>933037
>CRC and how to reverse it
Моя благодарность тебе, анон. Не знал, как на английском задать подобный вопрос. Через него вышел на вот этот pdf https://sar.informatik.hu-berlin.de/research/publications/SAR-PR-2006-05/SAR-PR-2006-05_.pdf . Там есть исходный код.

Имя 17 Фев, 22:13 #308 #935318

>>924262
В общем продолжаем банкет. Надекомпилял тут файлик:
http://pastebin.com/dKrhniNV
Проблема в том, что при компиляции обратно секция PAGEVRFC объявляется как Read/Write, а в оригинале она просто Read. В итоге при линковке получается две секции с разными правами. Всякие там
#pragma comment(linker,"/SECTION:PAGEVRFC,R").
не катят, как и R!W.
В общем где я ошибся и как заставить компилировать в секцию с правильными правами?
Ну и ещё у меня только 240 строк, тогда как в оригинале больше 300, ну да пофиг.

Ответы937670

18 Фев, 02:00 #309 #935428

Просто интересно, ради так сказать удовлетворения моей убогой любознательности. А вашим эти РЕ можно на доширак заработать? Или это только форма искусства?

Ответы935481

18 Фев, 09:48 #310 #935481

>>935428
Что ещё за РЕ? Не пиши не понятными аббривеатурами.

Ответы935572

18 Фев, 09:50 #311 #935483

Пожалуйста, дайте мне какой нибудь бесплатный дизассемблер.

Ответы935572

18 Фев, 09:56 #312 #935486

Как я понимаю чтобы сделать таймер на ассемблере надо засечь число тактов и знать тактовую частоту процессоа. Как я понял число тактов можно засечь с помощью команды rdtsk, а как узнать тактовую частоту процессора?

18 Фев, 13:45 #313 #935572

>>935481
Reverse Engineering очевидно же.
>>935483
Ida Pro 6.8, новее не утекали.
Ну или Ida 5.0 раздаётся бесплатно официально.

Ответы935680

4671 Кб, Webm

18 Фев, 16:50 #314 #935676

красиво...
http://pastebin.com/NaLMmafb

Ответы935685935704936632940589

18 Фев, 16:52 #315 #935680

>>935572
>Reverse Engineering очевидно же
Написал бы РИ или RE.
С помощью реверст инжениринга можно пересобрать какую нибудь простую игру и выдать за свою. И продавать.
Но я так только думаю. И вообще нужны хорошие навыки как ассемблирования так и дезассемблирования.

18 Фев, 16:59 #316 #935685

>>935676
>/ili niet?
Пофиксил коммент, не благодари.

sage 18 Фев, 17:26 #317 #935704

>>935676
> bandicam
Виртуалбокс умеет писать видео сам по себе (Устройства - Захват видео).

19 Фев, 22:04 #318 #936632

>>935676
Для чего ты использовал rdtsc в своём коде?

Ответы937763

21 Фев, 16:10 #319 #937670

>>935318
В общем пришлось вколачивать костыль в билд систему, чтобы перед линковкой снимать этот атрибут с помощью link.exe.
Вопрос, как обойтись тут без костылей, остаётся в силе.

Ответы937721

21 Фев, 17:30 #320 #937721

>>937670
> #pragma data_seg("PAGEVRFC")
> #pragma const_seg("PAGEVRFC")
> в оригинале она просто Read
Зачем тогда ты создаешь в read-only секции перезаписываемые переменные? Тебе не кажется, что в этом есть какое-то противоречие?

Ответы937750

678 Кб, 824x364

21 Фев, 18:24 #321 #937743

Как убрать надпись, выделенную желтым?

Ответы937773

21 Фев, 18:36 #322 #937750

>>937721
Хмм... Логично. Впилил это, когда массивы не были объявлены константными. Как всегда, компилятор оказался умнее меня.
Блядь, 4 дня никто не мог посмотреть этот код и выявить эту мою тупейшую ошибку.
Спасибо, анон, добра тебе. С твоей помощью полные сырцы ядра Windows XP стали немного ближе.

Блин, куда бы вылить свои наработки? Всякие гитхабы и прочие битбэкеты выпилят результаты реверса винды на раз, кмк. А то вдруг кто присоединится.

Ответы937759943177

21 Фев, 18:47 #323 #937759

>>937750
На гитхабе, и на битбакете овердохуя результатов реверса, всем похуй. Ну или купи шаред-хостинг за бакс и подними там какой-нибудь fossil.

Ответы937789

21 Фев, 18:51 #324 #937763

>>936632
чтобы сделать шум

25 Кб, 639x471

21 Фев, 18:58 #325 #937771

Я наконец почти доделал свой код. Эта программа запускает компьютер, вводит его в режим биоса 0x13 (графический режим) и рисует линию, координаты точнее номер пикселя концов, которой, записаны где то там в начале программы. Правда осталась парочка мааааленьких легкопоправимых багов линия может прорисоваться немного вниз от нижнего конца и непонятный баг виден если концы поставить в углах экрана
И ещё программа не оптимизирована. Если захотите оптимизировать, улучшить и всё такое то можете кидать ответом на мой пост код.
Чтобы запустить её надо сделать загрузочный диск наверное и флешку можно с файлом .BIN, который сделается в FASMе. Я делал образ загрузочного диска и вставлял в виртуальный дисковод виртуальной машины, сделанной с помощью виртуал бокса.
Вот ссылка на мой говнокод:
http://pastebin.com/TMKksb6P
822 байта.

Ответы955097

21 Фев, 19:00 #326 #937773

>>937743
попробуй хекс эдитором открыть, найти эту надпись и заменить на пробел (0x20)

Ответы937823

21 Фев, 19:24 #327 #937789

>>937759
>На гитхабе, и на битбакете овердохуя результатов реверса, всем похуй.
А вот сорцы Вин2000 или там движка престо выпилили. А мой код уже содержит части утёкшего кода Вин2000.
>fossil
Мне ртуть привычнее, ну да ладно.

21 Фев, 20:03 #328 #937823

>>937773
Слово nodes заменил на casul, на casuls не получается заменить. Остальной текст хитрее закодирован, пока не удалось понять как.

Ответы937839

21 Фев, 20:24 #329 #937839

>>937823
>Слово nodes заменил на casul, на casuls не получается заменить.
Очевидно, что для замены на строку большего размера нужно чуть большее, чем замена пары байт.
>Остальной текст хитрее закодирован, пока не удалось понять как.
Очевидно, что производитель этой фигни не хочет, чтобы удаляли пометку его авторства, и защитил её от нубов.

Ответы937883

35 Кб, 592x160

21 Фев, 20:54 #330 #937883

>>937839
Всё, осилил. Возле nodes] был пробел, так что удалось вместить, а другие скрытые за кракозябрами слова, нашел по номеру версии и нику, они почему-то не было зашифрованы, заменил их пробелами.
>производитель этой фигни не хочет, чтобы удаляли пометку его авторства, и защитил её от нубов
Не понимаю, зачем так делать, вставлять себя любимого на видное место. По-моему лучше делать вывод информативным, но без излишеств.

Ответы937912

21 Фев, 21:13 #331 #937912

>>937883
>Не понимаю, зачем так делать, вставлять себя любимого на видное место.
Напиши такую фигню сам, узнаешь.
Впрочем да, выводить прямо в окне лишнее, думаю, лучше бы при загрузке баннер там, да в реадми строчка.

22 Фев, 12:15 #332 #938400

Nielsen database. Не понятно, как соединить всё воедино и каким образом кодируются числовые значения. Ни вьювера, ни средств по созданию и редактированию базы нет. Только сами файлы в количестве 5 штук. Буду рад любой информации.

22 Фев, 15:53 #333 #938504

Как обнуляют регистр хакеры: xor eax, eax или sub eax, eax?

Ответы938525

22 Фев, 16:18 #334 #938525

>>938504
xor

Ответы938543

22 Фев, 16:45 #335 #938543

>>938525
Тогда почему зомби топил за sub?

Ответы938579

22 Фев, 17:53 #336 #938579

>>938543
И где теперь Зомби, а?

22 Фев, 21:39 #337 #938761

>>891716 (OP)
Какие функции биоса надо использовать чтобы записывать данные на жёсткий диск? А на периферию флешка, диск через дисковод. Правда я думаю что для периферии есть функции просто для пересылания сигнала.

22 Фев, 22:49 #338 #938810

В программе есть поля для ввода, как написать dll что бы это перехватить?

22 Фев, 23:14 #339 #938827

>>891716 (OP)
Хочу получить базовый адрес kernel32 на си так, чтобы было независимо от версии ОС. Для этого делаю поиск по хэшу модуля. Когда нахожу нужную запись в списке загруженных модулей (то, что это она, видно в олли), возвращаю значения поля DllBase, но вместо адреса кернеля мне возвращается число 11000. Что у меня не так?

Минимальный проверяемый кодес:

https://paste.ofcode.org/3axP4kLLgPS99fPtFuvMcGh

Ответы938883

23 Фев, 00:16 #340 #938883

>>938827
Проверь структуру LDR_DATA_TABLE_ENTRY. Похоже, что у тебя там лишнее поле.

Ответы939066

23 Фев, 11:00 #341 #939066

>>938883
Да вот, смотри, структуры отличаются, но количество зарезервированных байт одно и то же.

https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa813708(v=vs.85).aspx

23 Фев, 20:46 #342 #939558

>>893647
ты говоришь странными словами.

23 Фев, 21:06 #343 #939576

Сап, реверсач. Есть одно говноизделие на базе модуля SIM900R и его Embbed AT. Помоги как дампнуть код с модуля. Плиз.

23 Фев, 21:48 #344 #939620

Как использовать графический режим VBE 2.0 11Bh 1280x1024x16M, если в регистр al не помещается значение больше 100h (256d)?

Ответы940249940315

24 Фев, 19:26 #345 #940249

>>939620
бамп

Ответы940262

sage 24 Фев, 19:46 #346 #940262

>>940249
Код покажи. Ты как режим меняешь? Почему al, а не bx?

Ответы940315

24 Фев, 20:51 #347 #940315

>>940262
>>939620
Всё, я уже разобрался.
Надо сначала в al поместить 0x4F, вызвать перрывание 0x10, затем в ax поместить 0x4F02, в ич 0ч118 (номер режима. Я вібрал такой), вызвать опять 0x10, ну а дальше уже всё понятно. Начало экрана с памяти 0xA000

35 Кб, 1019x839

24 Фев, 22:02 #348 #940373

Почему дальше пиксели не выводятся? У меня предположение что что-то с памятью. Может надо в другие участки записывать?
http://pastebin.com/0y7hXcCk

Ответы940382943192

24 Фев, 22:17 #349 #940382

>>940373
1) Установи в BX кроме номера режиа еще и бит 14, считая с 0 (0x4000). Это включит режим линейного фреймбуфера.
2) Адрес фреймбуфера спросишь у функции 0x4f01.
3) К сожалению, этот адрес будет за пределами 640к, поэтому тебе понадобится 32-битный защищенный или нереальный режим (гугли unreal mode), чтобы работать с фреймбуфером.
4) Ну или рисуй по кускам, там вроде можно ебаться с окнами/банками (меня миновала эта участь, так что хуй знает, как там что). Гугли VBE switch bank.

Ответы940553940554

25 Фев, 08:56 #350 #940553

>>940382
спасибо за помощь.

Ответы940554

25 Фев, 09:12 #351 #940554

>>940382
>>940553
С защищенным режимом нужно ебаться больше, и стандартные прерывания там не работают. А VESA легко позволяет переключать окна в реальном режиме. Функция 4F01h возвращает в ES:DI описание видеорежима, по смещению 0Ch находится FAR адрес подпрограммы, переключающей окна (параметры те же, что и у функции 4F05h, но работает без лишних расходов).

См. статьи Сергея Андрианова в "Мире ПК" про VESA.

Ответы940823

25 Фев, 11:27 #352 #940589

>>935676
Ох, лол, вчера (сегодня ночью) то же самое написал.
Правда я в твоём коде нихуя не понял.

sage 25 Фев, 16:54 #353 #940823

>>940554
> С защищенным режимом нужно ебаться больше
Поэтому unreal mode - наше все.

27 Фев, 01:35 #354 #942056

Как в asm реализовать pointer ? Имея Base Address и нужный оффсет .
к примеру game.dll+6552E8 и offset 0x12E464

Ответы942075

sage 27 Фев, 03:00 #355 #942075

>>942056
mov ebx,[game_dll_base]
mov edx,[ebx+0x6552e8]
mov [edx+0x12e464],12345
всякие dword ptr расставить по вкусу, алсо можно сделать lea и сохранить адрес на будущее

28 Фев, 18:15 #356 #943177

>>937750
В общем чтобы обо мне не забывали. Откопал в ntoswrk.lib объектник с названием mmcompress, пустой правда.
Интересно, это сжатая память планировалась ещё в XP (так как в 2000 я такого не нашёл)? Или я не так понял предназначение?

Ответы943189950005

28 Фев, 18:21 #357 #943189

>>943177
Что вы ковыряете хрюшу?
Лучше бы дриснятку ковыряли и сделали швабодную реализацию DX12, а по проще это разобрать блоб нвидии и поудалять легаси затычки оттуда.

Ответы943193

28 Фев, 18:24 #358 #943192

>>940373
На GNU/Linux гораздо проще на асме писать, куча инструментов, диссасемблеров, hexdump и все все.

Ответы944302

28 Фев, 18:24 #359 #943193

>>943189
>Что вы ковыряете хрюшу?
Базу для сорцов дай, я хоть дристянку ковырять буду. Ковыряю что есть.
Впрочем имея на руках чуть более полные сорцы, что есть сейчас, можно их будет допилисвать до состояния дристы, спермооси, дристятки и более новых выкидышей МС. Это и планирую в будущем.

Ответы943287

28 Фев, 18:40 #360 #943206

Как перейти в 32-битный защищённый режим в программе, работающей без ОС? И что делает селектор и как его назначить?

28 Фев, 18:41 #361 #943208

Как перейти в 64-битный режим в программе, работающей без ОС?

Ответы943243943281

sage 28 Фев, 19:15 #362 #943243

>>943208
Идешь такой на сайт интела, качаешь Intel Architecture Software Development Manual, читаешь от корки до корки. В томе System Programming Guide тебе будет щастье.

Ответы943273

28 Фев, 19:37 #363 #943273

>>943243
>Intel Architecture Software Development Manual
при чем тут Intel когда у меня Эльбрус?

Ответы943281

28 Фев, 19:47 #364 #943281

>>943208
Писать 64 битными инструкциями.
amd64 например.
>>943273
att ассемблер универсален. Ну а если эльбрус не работает то иди на сайт эльбруса в поисках Эльбрус Architecture Software Development Manual

28 Фев, 19:54 #365 #943287

>>943193
Какую базу для сорцов? Продукты майков ковырять очень тяжело должно быть.
Ну нвидии не менее тяжело, но у них хоть нет столько всякого дерьма.
http://www.geforce.com/drivers/results/114232

Ответы943289943362

28 Фев, 19:57 #366 #943289

>>943287
Там основная часть - ненужно и шлак.
Но есть блоб - модуль ядра 30мб с копейками.
Вот его реверс индженерить было бы норм, было бы годно выпилить поддержку старых карт если там костыли, выпилить поддержку ксорга если там есть костыли для этого.
Оставить DRM EGL для вейланда.

Ответы943291943362

28 Фев, 20:00 #367 #943291

>>943289
> есть блоб - модуль ядра 30мб с копейками.
Вот почему божественный модуль интела весит всего 1-2 мб, а нвидия накопила хуй знает сколько, в каком стиле они там драйвера пишут?

28 Фев, 21:05 #368 #943362

>>943287
>Какую базу для сорцов?
Для XP это WRK да утёкшие сорцы Win2000. Ну и в ReactOS никто не мешает подглядывать, хотя это лишнее, они там накодили совсем не то.
>>943287
>нет столько всякого дерьма
>>943289
>блоб - модуль ядра 30мб с копейками
Ага конечно нет дерьма. Я из ntoswrk.lib только чуть больше 100кб среверсил, и то половина из Win2000 скомуниздил. А там всего-то 5мб. С копейками, ага.

Ответы943597

01 Мар, 00:14 #369 #943576

Вечер добрый господа.
Накидайте недо-геймхакеру-новичку книжечек для изучения основ ассемблера.
Хотелось бы понимать, как работают все эти mov, call, ebx, esx и т.д.
Т.е., понимать все творящее в Cheat Engine и OllyDbg, ну и т.д.
Заранее очень благодарен вам.

Ответы943598943600

01 Мар, 00:44 #370 #943597

>>943362
>олько чуть больше 100кб среверсил, и то половина из Win2000 скомуниздил. А там всего-то 5мб. С копейками, ага.
Ну главное среверсить низкоуровневые вызовы обращения к видеокарте и запросы, они же должны быть видимыми на асме то.
Методом тыка узнать что за что отвечает и сложить все докучи, целый драйвер это 3мб кода должно быть в случае нвидии.

01 Мар, 00:45 #371 #943598

>>943576
Они разве не опеншорс?
Чит энжайны на C можно писать.

01 Мар, 00:47 #372 #943600

>>943576
https://software.intel.com/en-us/articles/introduction-to-x64-assembly

01 Мар, 19:19 #373 #943963

>>891716 (OP)
Посоветуйте, пожалуйста, русскоязычный можно и україномовний учебник по ассемблеру для ARM

Ответы944097

sage 01 Мар, 22:22 #374 #944097

>>943963
В армы без знания английского лучше даже не пытаться лезть. Тебе придется читать гигантское количество разнообразных пдф, и никто для тебя переводить их не собирается.

Ответы944099

01 Мар, 22:25 #375 #944099

>>944097
Ладно, похоже придётся английские читать. Просто так будет дольше раза в 1.5-2.5.

02 Мар, 10:15 #376 #944302

>>943192
А на венду этого всего нету,да.И гуя в винде нема.

02 Мар, 13:48 #377 #944422

>>893538
Лучше вак отлаживай. Там интереснее

мб дамп 2015го, который выложили в сеть уже устарел.

Ответы944936

02 Мар, 22:41 #378 #944936

>>944422
>отлаживай
Наверное, разреверси. А чего там интересного? Бегло читал про него когда-то, защита так себе, учитывая такое количество читеров и читов. Он отладчик определяет, целостность файлов на диске и в памяти проверяет?
А ту игру бросил реверсить, не по умениям она мне оказалась. Даже не смог дойти до OEP.

Ответы945956

19 Кб, 798x534

03 Мар, 16:46 #379 #945318

Как зарегить 2017 версию студии? Раньше в старых версиях можно было просто ввести ключ, который нагуглил в интернете.

Допустим я хочу просто перевести триал дату вперед. Сложная ли там защита? Никто не занимался этим вопросом?

Ответы945530

sage 03 Мар, 20:32 #380 #945530

>>945318
Зачем тебе интерпрайз? Чего не хватает в комьюнити?

03 Мар, 21:04 #381 #945553

>>891716 (OP)
Какого фига на этой картинке структура сегментного дескриптора равна 32 битам, в то время когда на самом деле она равна 64 битам?

Ответы945555

11 Кб, 580x88

03 Мар, 21:05 #382 #945555

>>945553
забыл картинку

Ответы945559945593

sage 03 Мар, 21:11 #383 #945559

>>945555
Здесь два 32-битных слова, посмотри внимательнее.

Ответы945661

03 Мар, 21:48 #384 #945593

>>945555
Сука, всегда подгорает с этой картинки, за всю индустрию ПК, использующую этот ёбанный стыд и наслоение костылей в продакшене.

65 Кб, 629x460

03 Мар, 23:16 #385 #945658

Не понимаю почему ошибка. FASM. gdtr — 48-битный регистр, dd — 32 бита, dw — 16 бит. В чём проблема?
http://pastebin.com/svUkdrsU

Ответы945809945811

19 Кб, 683x121

03 Мар, 23:18 #386 #945661

>>945559
Теперь понятно. Какой же ужасный рисунок. Как понять нижнее это первое или второе?
Лучше этот.

sage 04 Мар, 07:26 #387 #945809

>>945658
У фасмы есть fword/pword и tbyte/tword для 48-битных и 80-битных операндов соответственно. Т.е., lgdt fword[GDT]. В качестве альтернативы можно оторвать размерность от GDT (GDT: dd 0x7e10 или label GDT_ at GDT перед lgdt [GDT_]).

Ответы945823

sage 04 Мар, 07:30 #388 #945811

>>945658
Ахда, а ошибка в том, что метка при определении данных получает тип (размер) от определяемых данных. У тебя GDT dd, значит метке GDT присваивается "тип"/размер 32 бита, и значит при lgdt [GDT] фасм пытается сделать lgdt dword[GDT], что, разумеется, неверно.

Ответы945823

04 Мар, 09:01 #389 #945823

>>945809
>>945811
Спасибо, няша.

04 Мар, 12:41 #390 #945956

>>944936
>отладчик определяет, целостность файлов на диске и в памяти проверяет

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

https://www.unknowncheats.me/wiki/Valve_Anti-Cheat

Свежее дампа нет, а на дворе уже 2017. Вот никак не могу понять: они вак вообще не обновляют или как?

20 Кб, 273x207

04 Мар, 14:52 #391 #946177

>>891716 (OP)
Я уже почти перешёл в защищённый режим. Но после это команды всё прекращается. Ошибка в виртуал боксе. Может это потому что я использу. virtual box? Может надо qemu использовать?
http://pastebin.com/egDdQCM5

Ответы946201

04 Мар, 15:23 #392 #946201

>>946177-кун
И в qemu проверил. Виртуальная машина просто перезапускается.

Ответы946299

04 Мар, 17:33 #393 #946299

>>946201-кун
Всё, я похожу понял что было не так. У меня бит P был сброшен, а когда он установлен то ошибки нету. Но я не понимаю из-за чего так. Он же вроде бы как используется другими программами.

25 Кб, 279x385

31 Кб, 1026x819

04 Мар, 20:07 #394 #946376

>>891716 (OP)
Я перешёл в защищённый режим, сделал глобальную дескрипторную таблицу, положил в сегментные регистры селекторы дескрипторов, но адресовать больше 1 МБ не могу. Защищённый режим вообще правда сущетсвует?
http://pastebin.com/TXpR2hfu

Ответы946524

sage 05 Мар, 01:31 #395 #946524

>>946376
> mov edi,0xA0000
Ты включил LFB, но адрес, по которому этот LFB начинается, так и не получил. Дергай 0x4f01, по офсету 0x28 от начала информации о режиме будет адрес буфера.

> mov cx
Не делай так. loop в 32-битном режиме использует ecx.

Ответы946583946932

05 Мар, 04:13 #396 #946583

>>946524
>loop в 32-битном режиме использует ecx.
А в 64 битном RCX.
Ждём 128 бит, чтобы опять переписывать наш код на асме.

Ответы946584

05 Мар, 04:19 #397 #946584

>>946583
Пишу с ноута, выполняющего 32-битную ОС, рядом 32-битные планшет и телефон. Вокруг меня куча железа с 8- и 16-битными контроллерами. Какие 128 бита, о чем ты вообще?

Ответы946585946908

05 Мар, 04:36 #398 #946585

>>946584
Сейчас 64 бита норма даже для микроконтроллеров.
Есть нужда в 128 битах, потому как памяти надо все больше, и инструкций все больше появляется, а они опциональные а не стандарт.
AVX2 и все подобное должно войти в стандарт amd128

05 Мар, 15:17 #399 #946908

>>946584
>Пишу с ноута, выполняющего 32-битную ОС, рядом 32-битные планшет и телефон
Нищеброд. Пишу с ПК х64 (24ГБ ОП), имею ноут х64(8ГБ ОП), даже телефон х64.

Ответы947274

05 Мар, 15:37 #400 #946932

>>946524
Спасибо, но я уже передумал учить ассемблер для x86(-64). Буду для ARM изучать.

Ответы947274

05 Мар, 23:50 #401 #947274

>>946908
Я пользуюсь железом, которое удовлетворяет мои потребности. В игори не играю.

>>946932
Лол, ну удачи. ARM-мирок с двумя десятками семейств, с фактически отсутствующими стандартами даже в пределах семейства, да еще без опыта доставит тебе множество веселых минут.

Ответы948431949452

07 Мар, 01:07 #402 #948119

Совершенный, конечно, оффтоп, но все же.
http://www.news-journalonline.com/news/20170213/sky-diver-injured-in-deland-remains-hospitalized

Ответы948219

07 Мар, 04:42 #403 #948219

>>948119
Совпадение?

Ответы948221

07 Мар, 04:50 #404 #948221

>>948219
Страшусь спросить, с чем?

Ответы948222

07 Мар, 04:57 #405 #948222

>>948221
>>948221
Прости, лень печатать

07 Мар, 14:42 #406 #948431

>>947274
>Я пользуюсь железом, которое удовлетворяет мои потребности.
Нищебродские у тебя потребности. У меня сейчас две виртуалки крутятся, браузер с 9000 вкладок, система контроля версий с проектами в сумме с 1млн файлов, и прочий софт. И куча свободной памяти для файлового кеша, что делает работу быстрой как никогда ранее.
А у тебя своп своп нехватка памяти пидор.

Ответы948438948758949452

07 Мар, 14:50 #407 #948438

>>948431
Тебя ебёт, какие у него потребности?

А не должно

Ответы948712

07 Мар, 20:19 #408 #948712

>>948438
Просто из-за таких как ты прогресс стоит, а я не могу делать онли х64 софт. Давно бы выкинуть подсистему SysWOW64 из венды, она бы в полтора раза похудела со всех сторон.

Ответы948733948758

07 Мар, 20:59 #409 #948733

>>948712
>Просто из-за таких как ты прогресс стоит

Прогресс стоит из-за таких как ты - которые срут на сосаче и выёбуются своим железом.

А мог бы делом заняться, инновации вводить себе в анус

07 Мар, 21:51 #410 #948758

>>948431
>>948712
Бессмысленное увеличение разрядности регистров - это не прогресс. 64 бита для арифметики не так уж часто нужны. Это обычно либо финансы, где все равно свои типы с фикседпоинтом, и им похуй, на каком int они собраны, либо длинная целочисленная арифметика, которая тоже не зависит от размера регистров.

Увеличенный размер виртуального адресного пространства с одной стороны - штука хорошая, ASLR всякие, меньшая вероятность проблем с фрагментацией. С другой стороны, с увеличением разрядности возникают все более неприятные проблемы с TLB, которые решаются еще более хитрыми способами, и детерминированности в работу системы это нихуя не добавляет.

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

Ответы949087

08 Мар, 12:40 #411 #949087

>>948758
>Увеличенный размер виртуального адресного пространства
This.
> все более неприятные проблемы с TLB
Для вокрлоадов которые втискивались на старом адресном пространстве TLB хватит за глаза. А для тех, которым на 4GB тесно было лишний раз сходить в page table все равно лучше чем сходить в своп

> детерминированности в работу системы это нихуя не добавляет
Вообще заиваться о детерминированности после появления спекулятивного исполнения/бренч предикшена и гипертредов это как то уже моветон.

08 Мар, 16:53 #412 #949278

Откуда он спёр сорцы винды?
https://www.youtube.com/watch?v=ka21Sk_5tdU

Ответы949284

08 Мар, 16:58 #413 #949284

>>949278
http://stephanos.io/archives/21

Ответы949311

08 Мар, 17:33 #414 #949311

>>949284
Да я видел конкретный пост на svn репозиторий. Но он приватный был уже тогда, а сейчас кажется вообще не пашет.
Впрочем вопрос был в том, откуда они у него и как сделать так же. Если это конечно не подделка.

Ответы949351

08 Мар, 18:41 #415 #949351

>>949311
Там есть упоминания WRK, значит взял отсюда: https://winehq.org.ru/Windows_Research_Kernel

Ответы949425

08 Мар, 19:48 #416 #949398

>>891716 (OP)
Как правильно распаковать и запаковать rt.jar чтобы нормально потом воспринялся java-ой ? Мне нужно поменять строку в одном классе, но после того как упаковщик хоть как-то изменяет rt.jar - он перестает нормально восприниматься.

Ответы949430

08 Мар, 20:20 #417 #949425

>>949351
Да не, на видео намного больше, чем есть в WRK, включая такие части, которые вообще никогда не утекали и попросту отсутствуют в коде Win2000 и уникальны для Win2003.
И как бы там типа 11ГБ сорцов.

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

В общем вдруг найдутся хакеры, которые взломают его хостинг, ПК и анальную девственность и сольют сорцы винды на радость анонимусу.
А то я ебусь с реверсом каждого килобайта кода, а кто-то располагает полными сорцами винды.
Я бы точно слил, и похуй, сколько меня потом будут иметь потом МС.

Ответы949449

08 Мар, 20:22 #418 #949430

>>949398
Манифест удали.

Ответы949447949467

08 Мар, 20:57 #419 #949447

>>949430
неа

Error occurred during initialization of VM
Unable to use shared archive.
An error has occurred while processing the shared archive file.
Unable to unmap shared space.

Ответы949467

08 Мар, 20:58 #420 #949449

>>949425
Поржал с дэбила, хех.

Ответы949541

08 Мар, 21:01 #421 #949452

>>947274
>>948431
Лошье малолетнее. Я на итаниуме работаю на силинок уоллей, уже десять лет все летает.

Ответы949533

08 Мар, 21:13 #422 #949467

>>949430
>>949447
И так как бы я не менял его.

08 Мар, 22:09 #423 #949533

>>949452
> Я на итаниуме работаю
Труп ты насилуешь. Его уже все закопали, даже Майкрософт, даже Интел, а ты до сих пор с ним забавляешься. Прекрати.

08 Мар, 22:17 #424 #949541

>>949449
Поясни причину смеха.

Ответы949947

08 Мар, 23:34 #425 #949620

>>891801
Не совсем понял сути. Ты хочешь запускать приложения, рассчитанные на win7, на более раннем ядре?

Ответы949706

09 Мар, 02:01 #426 #949706

>>949620
Очевидно, что да. Так же портировать полезные вещи, типа улучшенного менеджера памяти, ALPC, подсистемы Linux приложений, DX10.

09 Мар, 15:30 #427 #949944

>>894887
Как знал... Умер >>948063 (OP)

09 Мар, 15:37 #428 #949947

>>949541
Зачем труп мамонта ковырять?
Возьмись за ум, ковыряй линукс.
Сейчас надо все графические либы на вулкан переводить.

Ответы949963

09 Мар, 15:50 #429 #949949

Какие диссассемблеры юзаете? А декомпиляторов никаких нет?

09 Мар, 16:34 #430 #949963

>>949947
>Зачем труп мамонта ковырять?
Потому что он лучше люнупса. Даже сейчас под хрюшей работает больше десктопных ПК, чем работало под люнупсом за всё время его существования.
>Возьмись за ум, ковыряй линукс.
Скучно, он как бы открытый.

Ответы949990949992

09 Мар, 17:15 #431 #949990

>>949963
>лучше
>работает больше пк
В голосину, там в хрюшемирке драйверов давно нет.
>открытое скучно
Дриснятку ковыряй, выпиливай зонды или дирекикс12 реверси.

Ответы950002

09 Мар, 17:19 #432 #949992

>>949963
https://i.4cdn.org/g/1489035306330.png
Почистили бы говно со своей дриснятки, ато только умничаете что линукс не такой.

Ответы950002

09 Мар, 17:44 #433 #950002

>>949990
>там в хрюшемирке драйверов давно нет
УМВР.
>Дриснятку ковыряй
Как ХР и спермоось сковыряю, так и за дристянку возьмусь.
>>949992
>Почистили бы говно со своей дриснятки
Она твоя, а не моя. Моя ОС- это ХР, в которой ни одного зонда, в отличии от какой-нибудь бубунты.

09 Мар, 17:51 #434 #950005

>>943177
В общем продолжаем. Вот код:
http://pastebin.com/zjMJTxq1
что такое с этой переменной v9? Почему ей даётся тоже значение, что и до этой, и выполняется та же проверка? Вообще не разумею.

Ответы951622

09 Мар, 18:00 #435 #950009

Есть ли годный ARM эмулятор для Андроида, кроме официального ПО? Или не годный, а хоть какой-нибудь. Нашёл статью про эмуляцию 64 битного ARM (Linaro), а мне бы 32. Или они обратно совместимы, как в Windows 64-bit возможность запуска 32 битных приложений? Или, может быть, кто подскажет, как дебажить приложения под Android?

Ответы950142

09 Мар, 21:38 #436 #950125

По какой книге начать изучать ассемблер?

Ответы950143950287

09 Мар, 21:56 #437 #950142

>>950009
qemu?

Ответы950164

09 Мар, 21:57 #438 #950143

>>950125
http://asmworld.ru/page/5/
не книга, но годно.

Ответы950162

09 Мар, 22:18 #439 #950162

>>950143
Спасибо, но все-таки там описывается дос, а где есть материалы по win32?

09 Мар, 22:19 #440 #950164

>>950142
И как им воспользоваться? Где взять образ системы? Как запустить?

10 Мар, 01:17 #441 #950287

>>950125
Сначала читаешь книгу Таненбаума про архитектуру компьютера, потом мануалы по конкретным интересующим процессорам (и операционным системам, если не под голое железо пишешь) от производителей. Например, вот Intel: https://software.intel.com/en-us/articles/intel-sdm

Ответы950288

10 Мар, 01:20 #442 #950288

>>950287
Ах да, ещё почитай документацию на ассемблер, которым пользуешься:
http://www.nasm.us/doc/
https://sourceware.org/binutils/docs/as/
https://msdn.microsoft.com/en-us/library/afzk3475.aspx

10 Мар, 22:24 #443 #950905

чуваки изучаю асм(насм, фасм)х86-64, добавляйтесь https://t.me/movebx для совместного изучения, хэлпа и обмена инфой

11 Мар, 23:58 #444 #951622

>>950005
В общем забъём.
Самый интересный файл в ntoswrk.lib- это файл FOLTZ.obj. Размер его в 151 кб, а IDA там ничегошеньки не видит. Если его открыть в текстовом редакторе, то можно заметить целый вагон инклюдов и прочего, среди которых есть строка
d:\fw\base\oem\src\kernel\patchgd\pgd.c
В общем как бы намекает на то, что там зашифрован код патчгуарда. Я вообще не имею опыта расшифровки файлов с защитой, поэтому прошу помощи сообщества.

Ответы952044952448

12 Мар, 18:22 #445 #952044

>>951622
Для начала узнать бы что за шифровка.

sage 13 Мар, 08:55 #446 #952448

>>951622
> там зашифрован код патчгуарда
лицорука.jpg. Вот что бывает, когда люди пользуются готовыми утилитами без малейшего понимания, как они работают.
1) Там две функции из пары инструкций и несколько массивов.
2) Все килобайты - это отладочная инфа, она в релизе даже не линкуется.

Ответы952847

13 Мар, 15:44 #447 #952847

>>952448
>Вот что бывает, когда люди пользуются готовыми утилитами без малейшего понимания, как они работают.
Таки да, я сразу писал, что я макака, обмазался инструментами и надеюсь на результат. Пока чуть больше 300КБ среверсил, из почти 6МБ.
>Все килобайты - это отладочная инфа, она в релизе даже не линкуется.
Хорошо, её можно как-то использовать? Она же явно к патчгуарду относится. Вот список подключаемых заголовочных файлов, дохуя 155 штук. Вижу структурки, видимо, используются там.
Просто я видел код патчгуарда в IDA, там больше 11к строк, и любая информация должна помочь, поэтому нужно извлечь максимум информации из этого файла. Ведь не просто так его пытались спрятать, переименовав из pgd.obj в какой-то там foltz.obj.

Ответы952875952899

sage 13 Мар, 16:56 #448 #952875

>>952847
> Она же явно к патчгуарду относится
> Ведь не просто так его пытались спрятать
Это ты на основании одного хедера говоришь?

> Хорошо, её можно как-то использовать?
Конечно можно. https://github.com/Microsoft/microsoft-pdb/blob/master/cvdump/cvdump.exe Если не сможешь пропатчить версию подсистемы для запуска утилиты под XP - тебе рано этим заниматься.

Ответы952950

13 Мар, 17:54 #449 #952899

>>952847
А этот PatchGuard в WDK точно есть?
https://rebl0g.wordpress.com/2010/12/09/а-где-patchguard-в-wrk/
Или ты за оригинальное ядро взялся?

Ответы952950

7 Кб, 668x331

13 Мар, 19:29 #450 #952950

>>952875
>Это ты на основании одного хедера говоришь?
Точнее на основании строки с именем объектного файла. При генерации объектника в него записывается имя этого объектника, и во всех объектных файлах WRK эта строка совпадает с именем самого файла. Кроме одного, угадайте какого.
К тому же размеры, ни один объектник с 3,5 функциями не весит столько, сколько этот. Он вообще один из самых больших, обычно же такие почти пустые весят от 2 до 10кб.
Функции, содержащиеся в нём, никак не могут генерировать столько отладочной информации. А вот код патчгуарда может, так как он лезет во все щели в ядре.
>Если не сможешь пропатчить версию подсистемы для запуска утилиты под XP
С этим даже макака справится.
Впрочем за ссылку спасибо, просматривал аккаунт МС на гитхабе, но до туда не докопался.
>>952899
>А этот PatchGuard в WDK точно есть?
В том то и суть, что нет! Видимо, его отключение в этих функциях сделало так, что при компиляции этого объектного файла туда не попал код самого патчгуарда, а только отладочная информация к нему.
И то хлеб, авось поможет при расшифровке кода самого патчгуарда на втором этапе моей возни.
>Или ты за оригинальное ядро взялся?
Я потыкал палкой всю линейку ядер от Win2000 до Анального обновления десятки, по возможности так же посмотрев отладочные сборки.

14 Мар, 03:28 #451 #953269

>>895188
ахахах, допрыгался

14 Мар, 17:15 #452 #953683

Итак, анон, есть reg-файл.
Это вот дело служит паролем для базы данных.
Насколько я понимаю, dword 83 это какой-то сдвиг фразы "Увррфмсз", потому что когда я ставлю значение 0, то захожу в базу по этой фразе. Как узнать, какая фраза выходит после этого сдвига? Он как-то по ASCII вперед на 83 символа сдвигается или как?

[HKEY_CURRENT_USER\SOFTWARE\mtests]
"t"=dword:00000083
"validate"="Увррфмсз"

Ответы953771

sage 14 Мар, 18:40 #453 #953771

>>953683
> Увррфмсз
Там xor каждой буквы слова "Password" с 0x83.

14 Мар, 20:11 #454 #953819

Как может быть отрицательное смещение у указателя с типом PKPRCB?
; void __fastcall PerfSetLogging(PVOID MaskAddress)
public PerfSetLogging
PerfSetLogging proc near
xor r8d, r8d
cmp byte ptr cs:KeNumberProcessors, r8b
jbe short locret_278
lea rdx, KiProcessorBlock
loc_25B:
mov rax, [rdx]
inc r8d
add rdx, 8
mov [rax-170h], rcx
movsx eax, byte ptr cs:KeNumberProcessors
cmp r8d, eax
jb short loc_25B
locret_278:
retn 0

Ответы953903

sage 14 Мар, 21:46 #455 #953903

>>953819
Указатель дереференсится же. KPRCB лежит в KPCR, к ней и идет обращение. Точнее сказать не могу, возьми символы и посчитай, что конкретно там лежит относительно офсета PrcbData.

Ответы953985

14 Мар, 23:28 #456 #953985

>>953903
>дереференсится
Поясни, не понял. Всё равно не могу понять, как он выходит отрицательным.

У меня получается только такой код, который компилится с точностью вот до этого смещения, которое у меня всегда положительное.
VOID
PerfSetLogging(
PVOID MaskAddress
)
{
ULONG Index;
PKPRCB Prcb;
for (Index = 0; Index < (ULONG)KeNumberProcessors; Index += 1) {
Prcb = KiProcessorBlock[Index];
Prcb->SavedRsp = MaskAddress; // Наобум
}

}

Ответы953996954131

14 Мар, 23:45 #457 #953996

>>953985
Отвечу за него.
Это значит, что KPCR лежит внутри KPRCB, в функцию передаётся (или каким он образом попадает) указатель на KPCR. А нужно получить указатель на KPRCB, т.е. на начало структуры. Скорее всего, это через макрос делается, что-то типа offsetof, отсюда и отрицательное смещение.
PKPRCB = PKPCR - offsetof(KPRCB, name);
В свою очередь, KPCR получается так:
PKPCR *name = &PKPRCB->name;

Ответы954131954438

61 Кб, 1280x1024

15 Мар, 05:26 #458 #954118

Это с кодировкой шляпа или ватафак и как починить?

Ответы954131

sage 15 Мар, 07:34 #459 #954131

>>953985
>>953996
> KPCR лежит внутри KPRCB
Наоборот.

> Скорее всего, это через макрос делается
Да, только у Microsoft свой, более безопасный offsetof под названием CONTAINING_RECORD:
Prcb = KiProcessorBlock[Index];
CONTAINING_RECORD(Prcb, KPCR, PrcbData)->КакоеТоПолеKPCR = MaskAddress;

> Всё равно не могу понять, как он выходит отрицательным.
Офсет того поля, к которому идет обращение меньше, чем офсет PrcbData. Дельта отрицательная.

>>954118
> как починить
Не использовать это говно? В подсветку асма умеет каждый первый блокнот.

Ответы954133954135954438

sage 15 Мар, 07:44 #460 #954133

>>954131
> КакоеТоПолеKPCR
Погуглил за тебя (http://www.geoffchappell.com/studies/windows/km/ntoskrnl/structs/kpcr.htm):
0x0180: KPRCB Prcb; в 64-битной структуре, оказывается, не PrcbData, а просто Prcb
0x180 - 0x170 = 0x10
0x10: PVOID PerfGlobalGroupMask; late 5.2 only

Ответы954438

15 Мар, 07:48 #461 #954135

>>954131
чё я бля непонял
я просто копипастнул сурс какойто тупой проги по дигностике пары партов и памяти на диплом, а запустить не запускается, я и строки кода не понимаю, первый раз асемблер вчера увидел

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

15 Мар, 16:32 #462 #954438

>>953996
>>954131
>>954133
Благодарю, оно самое. Суть метода понял.

Если кому интересен мой прогресс, на данный момент ntoswrk.lib похудел на 365кб (х64), или 327кб (i386), к коду WRK добавлено 577 КБ кода в 39 файлах плюс правки в некоторых исходных.

Ответы954454

15 Мар, 16:46 #463 #954454

>>954438
Ты лучше скажи, ты пробовал компелировать ту срань от ReactOS, которая позволяет современный софт на XP запускать?

Ответы954462

15 Мар, 16:58 #464 #954462

>>954454
One-Core-Api? Там используются файлы реактОС, но проект с ними не связан.
Нет, не пробовал, какая-то непонятная срань. Как вообще можно использовать файлы реактоса, который толком с ХР не совместим, для запуска приложений виста+?

1 Кб, 293x65

15 Мар, 21:26 #465 #954684

Только осваиваю ассемблер.
То, что на пикрелейтед верно?
И почему когда выполняю xor reg,reg устанавливаются два флага ZF(потому что результат равен 0) и RF, причем четность?

Ответы954721954802

15 Мар, 22:33 #466 #954721

>>954684
PF ставится, когда в младшем байте результата четное число единичных битов. Считай, что 0 - тоже четное число.

16 Мар, 01:14 #467 #954802

>>954684
pf = parity flag
parity = четность

23 Кб, 951x390

16 Мар, 18:06 #468 #955089

Problem: Failed to trace the value of the stack pointer

Посоны, смотрите пикрил. Хочу понять что делает функция + декомпилировать в си-псевдокод. Хекс-рейс не декомпилирует этот участок.

Если я запущу в отладчике этот участок, то эти проблемы исчезнут? Или это навсегда?

Есть ли туториал по отладке для суперньюфагов? Мне не надо ничего менять в программе -- только понять что делает эта функция.

Эта функция из dll, которую использует гуи-программа.

Ответы955103955210

16 Мар, 18:16 #469 #955097

>>937771
Клево. По какой литературе ты научился так делать? Я в курсе про алгоритм Брезенхема, но не думал, что все вместе займет столь мало строк кода.

16 Мар, 18:24 #470 #955103

>>955089
>Или это навсегда?
Это пока ты не определишь правильные параметры функции, или её границу, или там ещё чего. В общем в этом месте автоматика дала сбой, и ждёт, что человек решит её проблему.
>Эта функция из dll, которую использует гуи-программа.
А точнее? Нагуглилось вот такое, не оно?
https://docs.thefoundry.co.uk/nuke/63/ndkreference/Plugins/classDD_1_1Image_1_1Reader.html#88840f7e58934404af4d0c7c31c5dcbc

Ответы955132

16 Мар, 18:34 #471 #955112

>>927215
>>927242
В туже копилку:
http://terminus.rewolf.pl/terminus/
Ссылка на шапку, чтобы не забыть после переката.
Вообще, нужно шапку накидать, и добавляться в официальные треды.
>>891716 (OP)

16 Мар, 19:20 #472 #955132

>>955103
>Нагуглилось вот такое, не оно?
Оно. Но там все равно только доксиген на хедеры.

Сейчас запустил под отладчиком, а эта функция и не вызывается в реальном коде. Вызывается с тем же именем, но с другим набором параметров. Она вот нормально декомпилировалась. Но правда сноумен и хекс-рейс по-разному это сделали.

Буду дальше ковыряться.

Ответы955217

16 Мар, 20:15 #473 #955210

>>955089
Убери прототип нахуй, посмотри, правда ли там функция по джампу или это кусок текущей (что вероятнее), проставь прототип для функции по джампу, проставь прототип для этой функции, и все будет.

16 Мар, 20:23 #474 #955217

>>955132
>Но правда сноумен и хекс-рейс по-разному это сделали.
Было бы странно, если бы они это сделали одинаково.

16 Мар, 21:34 #475 #955276

Похвалюсь исправлением глюка в программе Apowersoft Phone Manager. Глюк заключался в трёхдневном триал-режиме. Быстро справился с исправлением, поэтому и хвалюсь. Хотя, это не полноценное лечение, кейген работает, но нужно либо писать прокси-сервер, т.к. программа лезет в интернет для проверки, либо запрещать ей фаерволом доступ в интернет. Сам выбрал последний вариант. Через 3 дня узнаю, требуется ли обязательная проверка ключа, а сейчас время не охота переводить.
Но как глупо сделана защита. В папке "AppData\Roaming\Apowersoft\Apowersoft Phone Manager\" создаётся два скрытых файла, один из которых называется "trial". Мне не было нужды проверять, но догадываюсь, что удалением этого файла продлевается срок триала ещё на 3 дня. Программа (C#) при пошаговой трассировке сама выводит на модуль, в котором содержится проверка лицензии. Разработчик хоть чуть-чуть усложнил поиск этого места путём запуска модуля в памяти (не знаю, как правильно называется это в C#). При этом оставил все названия функций. Хотя бы мучаться не пришлось.
А мой вопрос так и остаётся в силе. Как дебажить ARM приложения? В программировании Android'а не знаком. Нашёл и скачал androl4b. Там есть эмулятор. Но, когда в него перетаскиваешь APK, то пишет INSTALL_FAILED_CONTAINER_ERROR. Погуглил, советуют изменять APK, добавлять какие-то опции в AndroidManifest.xml. Как всё сложно в нём.

11 Кб, 1229x205

17 Мар, 14:06 #476 #955712

Поясните за пикрил. _DWORD и LODWORD -- что это за типы? _DWORD -- это какой-то двухбайтовый тип? Или что это значит?

Система x86-64. Программа тоже.

Ответы955717

17 Мар, 14:13 #477 #955717

>>955712
Сам разобрался.

18 Мар, 18:16 #478 #956429

чем можно начать реверсить DOS приложение? под линью. нужно ставить дос на виртуалку? вроде нужно исполнение, я же не знаю что ищу. и хотелось бы трахаться с radare2.

Ответы956470

18 Мар, 19:17 #479 #956470

>>956429
r2 для хипстеров. Если тебе нужно не посмотреть пару функций и поправить пару байтов, а именно отреверсить - IDA без вариантов. Доса в досбоксе достаточно. IDA теоретически умеет в Bochs-отладку, практически я никогда не пробовал отлаживать 16-битный код. Алсо, можно собрать кастомный досбокс с их собственным говноотладчиком.

Ответы956492

18 Мар, 20:07 #480 #956492

>>956470
>IDA
не, впизду. слишком жирно и платно. и вообще, я хочу попробовать радар.

попробую фриидос на виртуалке загнать, пишут что что-то из венды поддерживают - наверно нужно ставить радар w32.

а как ты себе представляешь это на досбоксе? это ещё нужно отличать досбокс от программы? ну нахуй такое счастье.

Ответы956526

18 Мар, 21:17 #481 #956526

>>956492
>не, впизду. слишком жирно и платно.
Но это единственный активно развивающийся дизасемблер, и вообще самая лучшая программа для реверса.
С радаром ты будешь ебаться в одиночку, потому что тут его никто не использует.

Ответы956556

18 Мар, 21:56 #482 #956556

>>956526
Чем они отличаются то? Есть несколько свободных диссасемблеров.

Ответы956606

18 Мар, 23:20 #483 #956606

>>956556
> Чем они отличаются то
IDA, конечно, тоже полное говно, но она умеет пикать, а если уж соберется что-то испортить, то хотя бы переспрашивает. Если серьезно, то реверсинг - это про восстановление информации. Если информации перед глазами мало, а чтобы получить ее, нужно сплясать на клавиатуре - это хуевая программа. Если единственный гуй у программы - это кривая вебморда, если вообще как-то затесалось слово "веб" в реверсинг, где могут быть сотни мегабайт листингов - это хуевая программа. Если уж есть какие-то претензии к IDA, надо смотреть не на r2, а на Hopper или Binary Ninja (оба платныеПРОПРИЕТАРНЫЕ) - там хотя бы разработчики понимают, какие могут быть требования и цели, а не сооружают вим с дизасмом и фортунками.

Ответы956901956910

28 Кб, 720x447

18 Мар, 23:40 #484 #956621

http://help.fdos.org/en/hhstndrd/base/debug.htm
немного потыкал. в дебагинге я полный даун.

образы заебатые у фридоса - 400 мб ваще ахуеть.

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

Ответы956622

18 Мар, 23:44 #485 #956622

>>956621
> debug.com
Возьми турбо дебаггер хотя бы. А вообще, я все еще настоятельно рекомендую посмотреть в сторону Bochs и/или встроенного отладчика досбокса. У Bochs по крайней мере есть GDB-стаб, и с этим уже можно жить.

Что реверсить-то пытаешься?

Ответы956625

18 Мар, 23:49 #486 #956625

>>956622
> Что реверсить-то пытаешься?
не скажу, иначе точно не сделаю. но это графическая программа.

157 Кб, 1200x750

19 Мар, 14:42 #487 #956901

>>956606
>Hopper
Лол, гламурный дизассемблер для пидорасов.

Dmitry 19 Мар, 14:49 #488 #956910

>>956606
Есть же просто утилиты что переведут код в ассемблерный файл, чем они плохи?

Ответы956919

19 Мар, 15:10 #489 #956919

>>956910
Отсутствием интерактива. Они высрут свой ассемблерный файл, и делай с ним что хочешь.
ИДА же даёт классную навигацию по коду, построение графа вызовов.
Позволяет определить код как данные и данные как код, когда автоматика ошиблась. Определить, где константа, а где относительное смещение. И ИДА сама повторяет анализ изменившихся мест и дополняет ассемблерный листинг новой информацией, зачастую там, где ты даже не догадывался о связи.
Неинтерактивные дизассемблеры коррекцию анализа или вообще не позволяют, или это настолько неудобно, что тебя это заебёт на второй итерации.

В общем послушай умных людей, не выёбывайся и ставь IDA Pro 6.8.

Ответы957168

Dmitry 19 Мар, 23:38 #490 #957168

>>956919
Не мокрописька ли виндовая?

Ответы957178

19 Мар, 23:50 #491 #957178

>>957168
Какой же ты люнупсоид, если не можешь спиратить винду в виртуальную машину и поставить туда пиратскую же иду?

Ответы957183

19 Мар, 23:55 #492 #957183

>>957178
Да это же местный сумасшедший неймфаг. Поддакивай ему и старайся не обижать.

Ответы957216

20 Мар, 00:39 #493 #957216

>>957183
>неймфаг
Вляпался не заметив.

23 Мар, 18:32 #494 #959676

https://www.unknowncheats.me/wiki/Assembly

Для нуфажин, которые могут в ангельский. Всё расписано, разжевано, осталось только положить в рот и переварить.

23 Мар, 23:14 #495 #959814

В исходнике был класс с массивом фиксированного размера. Надо увеличить размер этого массива. Как можно это сделать? Сам класс глобальный, расположен в секции не инициализированных данных. Поэтому даже передвинуть массив в конец не получится.
Сам вижу только один путь - переделать с фиксированного размера на динамический с выделением необходимого количества памяти.

Ответы959828

sage 23 Мар, 23:33 #496 #959828

>>959814
Отлови ссылки на текущий инстанс класса, добавь байтов к последней секции, положи туда новый инстанс. Если релоки в бинарнике есть - это делается чуть ли не автоматически. Если нет - IDA, в принципе, справляется, плюс можно PAGE_NO_ACCESS и VEH прилепить на всякий случай, который будет детектить ошибки обращения к старому инстансу, править указатель и писать лог источников, чтобы ты поправил бинарь.

Ответы960012

24 Мар, 12:00 #497 #960012

>>959828
А если массив не в конце класса? Он идёт после таблицы виртуальных функций. Если изменить размер, это придётся править все относительные ссылки, все не отловишь. Ещё есть абсолютная адресация, т.к. класс глобальный, компилятор некоторые обращения к классу заменил на абсолютные адреса.

Ответы960092

sage 24 Мар, 14:52 #498 #960092

>>960012
> компилятор некоторые обращения к классу заменил на абсолютные адреса
Это не проблема, аболютные адреса IDA тебе найдет, ссылки на регион памяти можно скриптом перечислить.

> придётся править все относительные ссылки, все не отловишь
А вот тут проблема, да. Конечно, динамически (c PAGE_NO_ACCESS) можно отловить все, но из-за постоянной обработки исключений будут тормоза.

24 Мар, 20:20 #499 #960280

Пилите перекат с шапкой

Ответы960363

24 Мар, 22:19 #500 #960363

>>960280
Завтра запилю, без меня не начинать.
ОП

Ответы960364

sage 24 Мар, 22:21 #501 #960364

>>960363
Выложи шапку куда-нибудь, может чего добавлю.

Ответы960379

24 Мар, 23:05 #502 #960379

>>960364
Так завтра и начну делать, лол.

25 Мар, 14:28 #503 #960643

ПЕРЕКОТ
>>960640 (OP)
>>960640 (OP)
>>960640 (OP)
>>960640 (OP)
>>960640 (OP)
>>960640 (OP)
Хуй с ней, с шапкой, в следующем треде поправим.
ОП

25 Мар, 16:15 #504 #960712

>>891716 (OP)
Спрошу тут может кто знает как в VS2017 С++ проект скомпилить в исполняемый файл с одной секцией. в 2013 получалось в 2017 всегда создает .rdata и .text

15 Апр, 11:52 #505 #973929

Помогите сделать задачу "У гусей и кроликов вместе 64 лапы. Сколько может быть кроликов и гусей (подсчитать количество комбинаций)?"

Вот что я сделал и вроде как оно даже работает, но правильно ли я не знаю. Подскажите формулу по которой находятся подобные задачи. И да код должен быть универсальным т.е. может быть и 4000 лап и 6.

use16
org 100h

mov ax,64 ;остаток лап
mov cx,4 ; сколько лап у кроликов

div cx

lexa:
sub ax,1
add si,1 ; количество комбинаций
cmp ax,0
jne lexa

mov ax,4C00h
int 21h

130 Кб, 1206x672

104 Кб, 1372x727

01 Май, 18:52 #506 #983097

Неофит ИТТ. Поясните пж за следующую вещь. В hex-редакторе при анализе структуры PE файла (pic 1) вижу, что VA OEP = 10212, а ImageBase = 4194304, тогда абсолютный адрес точки входа = 4194304 + 10212 = 4204516 = 0x004027E4, и вроде как в дебаггере именно это число я и должен увидеть помеченным как entry point, но чому то в ollyDbg2.01 я вижу (pic 2) 0х00CE27E6. Я неправильно считаю точку входа? Неправильно трактую значение адресов в левом столбце в ollyDbg? Или еще что то делаю не так?

Ответы983125

01 Май, 19:29 #507 #983125

>>983097
Алсо, я понимаю, что в olly я вижу образ процесса, а не дизассемблированный исполняемый файл, и загрузчик может выравнивать образ по размеру страницы оперативной памяти, но не настолько много ж блеть. Или настолько?
И да, исполняемый файл не упакован/не зашифрован, т.к. написан мной.

Тред утонул или удален.
Это копия, сохраненная 24 мая 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion