Все зависит от базовых знаний, самого человека, того, как он мыслит и воспринимает информацию. Кто-то добивается успехов уже через несколько месяцев, а кто-то годами топчется на месте.
Доброго времени суток! Прошу совета, ковыряю оптический роутер, который отдает файл конфигурации в шифрованном виде. Путем гугления и прочих выкрутасов дошел до функций, которые (по моим соображениям) шифруют и дешифруют файлы конфигурации и прошивки. Подскажите в правильном ли направлении я двигаюсь и есть ли вероятность декодирования файлов? Собственно сами функции: Code: 0000b664 <VOS_Base64Encode>: b664: 0d c0 a0 e1 f0 or $0xf0e1a0c0,%eax b669: d8 2d e9 01 40 a0 fsubrs 0xa04001e9 b66f: e1 04 loope b675 <VOS_Base64Encode+0x11> b671: b0 4c mov $0x4c,%al b673: e2 03 loop b678 <VOS_Base64Encode+0x14> b675: 10 a0 e3 00 70 a0 adc %ah,-0x5f8fff1d(%eax) b67b: e1 02 loope b67f <VOS_Base64Encode+0x1b> b67d: 00 83 e2 03 60 a0 add %al,-0x5f9ffc1e(%ebx) b683: e1 02 loope b687 <VOS_Base64Encode+0x23> b685: 50 push %eax b686: a0 e1 f8 f1 ff mov 0xfff1f8e1,%al b68b: eb c0 jmp b64d <VOS_GetTimeOfDay+0x11> b68d: 10 9f e5 00 01 a0 adc %bl,-0x5ffeff1b(%edi) b693: e1 01 loope b696 <VOS_Base64Encode+0x32> b695: 00 80 e2 00 00 54 add %al,0x540000e2(%eax) b69b: e1 01 loope b69e <VOS_Base64Encode+0x3a> b69d: 10 8f e0 01 00 00 adc %cl,0x1e0(%edi) b6a3: aa stos %al,%es:(%edi) b6a4: 00 00 add %al,(%eax) b6a6: a0 e3 f0 a8 9d mov 0x9da8f0e3,%al b6ab: e8 a4 30 9f e5 call e59fe754 <__bss_end__+0xe59c7154> b6b0: 00 20 add %ah,(%eax) b6b2: a0 e3 06 00 a0 mov 0xa00006e3,%al b6b7: e1 03 loope b6bc <VOS_Base64Encode+0x58> b6b9: 40 inc %eax b6ba: 81 e0 02 c0 a0 e1 and $0xe1a0c002,%eax b6c0: 07 pop %es b6c1: 10 a0 e1 12 00 00 adc %ah,0x12e1(%eax) b6c7: ea 00 30 d5 e5 01 00 ljmp $0x1,$0xe5d53000 b6ce: 40 inc %eax b6cf: e2 08 loop b6d9 <VOS_Base64Encode+0x75> b6d1: 20 82 e2 0c c4 83 and %al,-0x7c3bf31e(%edx) b6d7: e0 0c loopne b6e5 <VOS_Base64Encode+0x81> b6d9: e3 a0 jecxz b67b <VOS_Base64Encode+0x17> b6db: e1 3e loope b71b <VOS_Base64Encode+0xb7> b6dd: 32 a0 e1 3f 30 03 xor 0x3303fe1(%eax),%ah b6e3: e2 03 loop b6e8 <VOS_Base64Encode+0x84> b6e5: 30 d4 xor %dl,%ah b6e7: e7 06 out %eax,$0x6 b6e9: 20 42 e2 and %al,-0x1e(%edx) b6ec: 06 push %es b6ed: 00 52 e3 add %dl,-0x1d(%edx) b6f0: 01 30 add %esi,(%eax) b6f2: c1 e4 f8 shl $0xf8,%esp b6f5: ff (bad) b6f6: ff ca dec %edx b6f8: 01 30 add %esi,(%eax) b6fa: 70 e2 jo b6de <VOS_Base64Encode+0x7a> b6fc: 00 30 add %dh,(%eax) b6fe: a0 33 00 00 52 mov 0x52000033,%al b703: e3 00 jecxz b705 <VOS_Base64Encode+0xa1> b705: 30 a0 d3 00 00 53 xor %ah,0x530000d3(%eax) b70b: e3 f2 jecxz b6ff <VOS_Base64Encode+0x9b> b70d: ff (bad) b70e: ff 1a lcall *(%edx) b710: 01 50 85 add %edx,-0x7b(%eax) b713: e2 00 loop b715 <VOS_Base64Encode+0xb1> b715: 00 50 e3 add %dl,-0x1d(%eax) b718: ea ff ff 1a 01 30 a0 ljmp $0xa030,$0x11affff b71f: e1 01 loope b722 <VOS_Base64Encode+0xbe> b721: 20 67 e0 and %ah,-0x20(%edi) b724: 3d c0 a0 e3 00 cmp $0xe3a0c0,%eax b729: 00 00 add %al,(%eax) b72b: ea 01 c0 43 e5 03 00 ljmp $0x3,$0xe543c001 b732: 02 e2 add %dl,%ah b734: 00 00 add %al,(%eax) b736: 50 push %eax b737: e3 03 jecxz b73c <VOS_Base64Encode+0xd8> b739: 10 a0 e1 01 20 82 adc %ah,-0x7ddffe1f(%eax) b73f: e2 01 loop b742 <VOS_Base64Encode+0xde> b741: 30 83 e2 f8 ff ff xor %al,-0x71e(%ebx) b747: 1a 00 sbb (%eax),%al b749: 00 c1 add %al,%cl b74b: e5 07 in $0x7,%eax b74d: 00 a0 e1 f0 a8 9d add %ah,-0x62570f1f(%eax) b753: e8 04 85 02 00 call 33c5c <_GLOBAL_OFFSET_TABLE_+0xb4> 0000b754 <$d>: b754: 04 85 add $0x85,%al b756: 02 00 add (%eax),%al b758: e8 17 ff ff 0d call e00b674 <__bss_end__+0xdfd4074> 0000b75c <VOS_Base64Decode>: b75c: 0d c0 a0 e1 70 or $0x70e1a0c0,%eax b761: d8 2d e9 04 b0 4c fsubrs 0x4cb004e9 b767: e2 84 loop b6ed <VOS_Base64Encode+0x89> b769: c0 9f e5 84 30 9f e5 rcrb $0xe5,-0x60cf7b1b(%edi) b770: 00 40 a0 add %al,-0x60(%eax) b773: e3 0c jecxz b781 <VOS_Base64Decode+0x25> b775: c0 8f e0 01 50 a0 e1 rorb $0xe1,-0x5faffe20(%edi) b77c: 00 e0 add %ah,%al b77e: a0 e1 02 10 a0 mov 0xa01002e1,%al b783: e1 03 loope b788 <VOS_Base64Decode+0x2c> b785: 60 pusha b786: 8c e0 mov %fs,%eax b788: 04 20 add $0x20,%al b78a: a0 e1 0f 00 00 mov 0xfe1,%al b78f: ea 4f 00 5c e3 14 00 ljmp $0x14,$0xe35c004f b796: 00 8a 0c 30 d6 e7 add %cl,-0x1829cff4(%edx) b79c: ff 00 incl (%eax) b79e: 53 push %ebx b79f: e3 11 jecxz b7b2 <VOS_Base64Decode+0x56> b7a1: 00 00 add %al,(%eax) b7a3: 0a 03 or (%ebx),%al b7a5: c0 14 e2 02 rclb $0x2,(%edx,%eiz,8) b7a9: 23 83 e0 01 40 84 and -0x7bbffe20(%ebx),%eax b7af: e2 06 loop b7b7 <VOS_Base64Decode+0x5b> b7b1: 00 00 add %al,(%eax) b7b3: 0a 8c 30 a0 e1 06 c0 or -0x3ff91e60(%eax,%esi,1),%cl b7ba: 63 e2 arpl %sp,%dx b7bc: 00 30 add %dh,(%eax) b7be: 6e outsb %ds:(%esi),(%dx) b7bf: e0 05 loopne b7c6 <VOS_Base64Decode+0x6a> b7c1: 00 53 e1 add %dl,-0x1f(%ebx) b7c4: 08 00 or %al,(%eax) b7c6: 00 aa 52 3c a0 e1 add %ch,-0x1e5fc3ae(%edx) b7cc: 01 30 add %esi,(%eax) b7ce: c0 e4 d1 shl $0xd1,%ah b7d1: 30 94 e1 00 00 53 e3 xor %dl,-0x1cad0000(%ecx,%eiz,8) b7d8: 3d 00 53 13 2b cmp $0x2b135300,%eax b7dd: c0 43 e2 ea rolb $0xea,-0x1e(%ebx) b7e1: ff (bad) b7e2: ff 1a lcall *(%edx) b7e4: 00 00 add %al,(%eax) b7e6: 6e outsb %ds:(%esi),(%dx) b7e7: e0 70 loopne b859 <VOS_Hex2Binary+0x5d> b7e9: a8 9d test $0x9d,%al b7eb: e8 00 00 e0 e3 call e3e0b7f0 <__bss_end__+0xe3dd41f0> b7f0: 70 a8 jo b79a <VOS_Base64Decode+0x3e> b7f2: 9d popf b7f3: e8 2c 84 02 00 call 33c24 <_GLOBAL_OFFSET_TABLE_+0x7c> 0000b7f4 <$d>: b7f4: 2c 84 sub $0x84,%al b7f6: 02 00 add (%eax),%al b7f8: 98 cwtl b7f9: 17 pop %ss b7fa: ff (bad) b7fb: ff 0d c0 a0 e1 70 decl 0x70e1a0c0 0000b7fc <VOS_Hex2Binary>: b7fc: 0d c0 a0 e1 70 or $0x70e1a0c0,%eax b801: d8 2d e9 03 e0 a0 fsubrs 0xa0e003e9 b807: e1 a3 loope b7ac <VOS_Base64Decode+0x50> b809: 3f aas b80a: 83 e0 04 and $0x4,%eax b80d: b0 4c mov $0x4c,%al b80f: e2 c3 loop b7d4 <VOS_Base64Decode+0x78> b811: 00 51 e1 add %dl,-0x1f(%ecx) b814: 00 60 a0 add %ah,-0x60(%eax) b817: e1 02 loope b81b <VOS_Hex2Binary+0x1f> b819: 40 inc %eax b81a: a0 e1 32 00 00 mov 0x32e1,%al b81f: ba 01 30 1e e2 mov $0xe21e3001,%edx b824: 03 10 add (%eax),%edx b826: a0 01 0a 00 00 mov 0xa01,%al b82b: 0a 2e or (%esi),%ch b82d: 00 00 add %al,(%eax) b82f: ea 04 30 d1 e7 01 10 ljmp $0x1001,$0xe7d13004 b836: 81 e2 30 20 43 e2 and $0xe2432030,%edx b83c: 41 inc %ecx b83d: c0 43 e2 61 rolb $0x61,-0x1e(%ebx) b841: 30 43 e2 xor %al,-0x1e(%ebx) b844: 05 00 53 e3 09 add $0x9e35300,%eax b849: 00 52 83 add %dl,-0x7d(%edx) b84c: 01 00 add %eax,(%eax) b84e: 00 9a 05 00 5c e3 add %bl,-0x1ca3fffb(%edx) b854: 24 00 and $0x0,%al b856: 00 8a 0e 00 51 e1 add %cl,-0x1eaefff2(%edx) b85c: f3 ff repz (bad) b85e: ff (bad) b85f: ba 04 c0 a0 e1 mov $0xe1a0c004,%edx b864: 00 00 add %al,(%eax) b866: a0 e3 1b 00 00 mov 0x1be3,%al b86b: ea 04 10 d0 e7 01 50 ljmp $0x5001,$0xe7d01004 b872: dc e5 fsub %st,%st(5) b874: 30 30 xor %dh,(%eax) b876: 41 inc %ecx b877: e2 ff loop b878 <VOS_Hex2Binary+0x7c> b879: 20 03 and %al,(%ebx) b87b: e2 09 loop b886 <VOS_Hex2Binary+0x8a> b87d: 00 52 e3 add %dl,-0x1d(%edx) b880: 04 00 add $0x0,%al b882: 00 9a 61 30 41 e2 add %bl,-0x1dbecf9f(%edx) b888: 05 00 53 e3 57 add $0x57e35300,%eax b88d: 30 41 92 xor %al,-0x6e(%ecx) b890: 37 aaa b891: 30 41 82 xor %al,-0x7e(%ecx) b894: ff 20 jmp *(%eax) b896: 03 e2 add %edx,%esp b898: ff 10 call *(%eax) b89a: 05 e2 30 30 41 add $0x413030e2,%eax b89f: e2 ff loop b8a0 <VOS_Hex2Binary+0xa4> b8a1: 30 03 xor %al,(%ebx) b8a3: e2 09 loop b8ae <VOS_Hex2Binary+0xb2> b8a5: 00 53 e3 add %dl,-0x1d(%ebx) b8a8: 04 00 add $0x0,%al b8aa: 00 9a 61 30 41 e2 add %bl,-0x1dbecf9f(%edx) b8b0: 05 00 53 e3 57 add $0x57e35300,%eax b8b5: 30 41 92 xor %al,-0x6e(%ecx) b8b8: 37 aaa b8b9: 30 41 82 xor %al,-0x7e(%ecx) b8bc: ff 30 pushl (%eax) b8be: 03 e2 add %edx,%esp b8c0: 0f 20 (bad) b8c2: 02 e2 add %dl,%ah b8c4: 0f 30 wrmsr b8c6: 03 e2 add %edx,%esp b8c8: 02 32 add (%edx),%dh b8ca: 83 e1 a0 and $0xffffffa0,%ecx b8cd: 2f das b8ce: 80 e0 c2 and $0xc2,%al b8d1: 30 c6 xor %al,%dh b8d3: e7 02 out %eax,$0x2 b8d5: 00 80 e2 02 c0 8c add %al,-0x733ffd1e(%eax) b8db: e2 0e loop b8eb <VOS_Hex2Binary+0xef> b8dd: 00 50 e1 add %dl,-0x1f(%eax) b8e0: e1 ff loope b8e1 <VOS_Hex2Binary+0xe5> b8e2: ff (bad) b8e3: ba 00 00 a0 e3 mov $0xe3a00000,%edx b8e8: 70 a8 jo b892 <VOS_Hex2Binary+0x96> b8ea: 9d popf b8eb: e8 01 00 a0 e3 call e3a0b8f1 <__bss_end__+0xe39d42f1> b8f0: 70 a8 jo b89a <VOS_Hex2Binary+0x9e> b8f2: 9d popf b8f3: e8 0d c0 a0 e1 call e1a17905 <__bss_end__+0xe19e0305> 0000b8f4 <VOS_Binary2Hex>: b8f4: 0d c0 a0 e1 f0 or $0xf0e1a0c0,%eax b8f9: d9 2d e9 04 b0 4c fldcw 0x4cb004e9 b8ff: e2 03 loop b904 <VOS_Binary2Hex+0x10> b901: 70 a0 jo b8a3 <VOS_Hex2Binary+0xa7> b903: e1 5c loope b961 <VOS_Binary2Hex+0x6d> b905: c0 9f e5 83 30 a0 e1 rcrb $0xe1,-0x5fcf7c1b(%edi) b90c: 01 30 add %esi,(%eax) b90e: 83 e2 04 and $0x4,%edx b911: d0 4d e2 rorb -0x1e(%ebp) b914: 03 00 add (%eax),%eax b916: 51 push %ecx b917: e1 0c loope b925 <VOS_Binary2Hex+0x31> b919: c0 8f e0 02 60 a0 e1 rorb $0xe1,-0x5f9ffd20(%edi) b920: 01 00 add %eax,(%eax) b922: 00 aa 01 00 a0 e3 add %ch,-0x1c5fffff(%edx) b928: f0 a9 9d e9 38 30 lock test $0x3038e99d,%eax b92e: 9f lahf b92f: e5 00 in $0x0,%eax b931: 40 inc %eax b932: a0 e1 00 50 a0 mov 0xa05000e1,%al b937: e3 03 jecxz b93c <VOS_Binary2Hex+0x48> b939: 80 8c e0 02 00 00 ea orb $0x6,-0x15fffffe(%eax,%eiz,8) b940: 06 b941: 20 d5 and %dl,%ch b943: e7 93 out %eax,$0x93 b945: f2 ff eb repnz ljmp *<internal disassembler error> b948: 01 50 85 add %edx,-0x7b(%eax) b94b: e2 07 loop b954 <VOS_Binary2Hex+0x60> b94d: 00 55 e1 add %dl,-0x1f(%ebp) b950: 04 00 add $0x0,%al b952: a0 e1 08 10 a0 mov 0xa01008e1,%al b957: e1 02 loope b95b <VOS_Binary2Hex+0x67> b959: 40 inc %eax b95a: 84 e2 test %ah,%dl b95c: f7 ff idiv %edi b95e: ff (bad) b95f: ba 00 00 a0 e3 mov $0xe3a00000,%edx b964: f0 a9 9d e9 88 82 lock test $0x8288e99d,%eax 0000b968 <$d>: b968: 88 82 02 00 40 0c mov %al,0xc400002(%edx) b96e: ff (bad) b96f: ff 0d c0 a0 e1 30 decl 0x30e1a0c0
Программа запускается через свою ЯВУ, можно ли подменить запуск не через Яву программы, а Яву, которая основная?
можно, только к реверсингу это никак не относится. Вместо папки со своей явой можешь создать ярлык на основную, либо символьную ссылку через MKLINK
Думаю к реверсингу относится, ведь приложение проверяет свою яву. Любое изменение и приложение обновит свою яву
Подскажите, а к кому можно тут обратиться за реверсом .NET приложения? Оно было обработано обфускатором и надо восстановить C# текст.
Здравствуйте, а подскажите пожалуйста, я помню здесь давно был курс с DVD диска CrackLab. https://exelab.ru/dvd-kurs-2015.php вот этот. Его можно было скачать. Скажите, а у кого нибудь осталась ссылка, чтобы слить его. Где его можно скачать?
Каким способом можно извлечь текстовые данные из WеlсomeScrеen виндовс RDP? То-есть mstsc или другой клиент, если отключен NLA, получает с сервера этот стандартный экpан пpиветствия, где есть домен, узер и некоторые другие текстовые данные. Прямой поиск в дампе ничего не дает.
Если не ошибаюсь, за экран приветствия, будь то RDP или локальный логин, отвечает Winlogon.exe машины, на которой происходит вход, стало быть его и нужно потрошить.
Он охеренный. Даже слов нету. Объясняют что такое mov, inc, jmp. Что такое php, Delphi(куда же без него), Java Тебе свое время не жалко на это *****? смотри лучше в сторону http://www.mastercpu.ru/ Покупать жаба душит, а в паблик пока что никто не выложил
Winlogon работает только после нажатия кнопки вход. Сначала RDP клиент получает данные и отображает их подобно веб-браузеру: Даже не знаю на какую тему еще гуглить, дебаггером нужно смотреть или есть другие полезные инструменты?
Я ознакомиться хотел, что там да так. А это всё я знаю. Кстати интересную ссылку скинул спасибо, тоже давно интересуюсь, минкроконтроллеры и электроника, но пока руки не доходят. Ага 3500 дороговато, но всё таки если есть интерес, можно и взять.
Загляни сюда ,это самое близкое к тому,что ты ищешь...выгуглил запросом "exel@b dvd скачать",без кавычек...
Nope. Winlogon.exe запускается сразу при создании сеанса и служит для авторизации пользователя (локального или удалённого). Начиная с Vista, за графическую часть отвечает LogonUI.exe. А ещё можно легко и просто получить пароли всех залогиненных в данный момент пользователей - mimikatz.
Ковыряю инсталлятор игры траинз 2012, хочу разобрать как он проверяет серийник, но застрял в функции, которая в случае верного ключа возвращает 1 в eax. Но внутри этой функции много вызовов и в них еще куча вызовов, хочу разобраться с алгоритмом. Как вы думаете там он обратимый хотя бы ? И если я подберу ключ, получится ли играть в мультиплеер или сервер проверяет по базе покупался ли такой ключ ?
Выяснил, что инсталлер этот использует алгоритм SHA-1 с солью, вот вопрос как эту соль найти в коде программы ?
Использование оригинального дистрибутива игры не даст тебе сетевой игры, это раз. Инсталлеры в 99% случаев сверяют необратимые хэши, это два. Функционал сетевой игры заработает при верном ответе от сервера, это три. Единственный твой выход - поснифать запросы к серверу на лицензии, сравнить с пираткой и подменить ответы.
Здравствуйте! Программа написана на Delphi. Привязывается к железу. При запуске программа проверяет , если на в файле site.ru/license.php ID железа с которого запускается программа. Вопрос. Как отправить программу на свой сайт ?