Реверсинг. Задай вопрос - получи ответ

Discussion in 'Реверсинг' started by 0x0c0de, 2 Sep 2007.

  1. comstream

    comstream Member

    Joined:
    11 Aug 2015
    Messages:
    35
    Likes Received:
    11
    Reputations:
    0
    Всем привет! Подскажите как преобразовать шестнадцатиричный пайлоад в бинарник для последующего анализа (дезассемблирования), Python приветствуется ))). Или можно его сразу загрузить в Ida pro? Как его можно подать в olydbg?

    Вот код
    \x31\xC0\x50\x68\x73\x78\x76\x79\x68\x78\x24\x22\x76\x68\x73\x24\x27\x24\x68\x23\x72\x75\x73\x68\x77\x77\x22\x73\x68\x22\x27\x73\x70\x68\x75\x76\x79\x73\x68\x77\x72\x73\x22\x68\x73\x22\x72\x24\x68\x79\x76\x24\x75\x68\x22\x23\x24\x79\x68\x78\x25\x20\x22\x68\x76\x75\x74\x76\x68\x71\x20\x22\x77\x68\x77\x25\x72\x25\x68\x77\x25\x75\x79\x68\x71\x25\x24\x78\x68\x20\x79\x71\x75\x68\x72\x73\x75\x20\x68\x79\x22\x72\x71\x68\x76\x20\x72\x76\x68\x20\x79\x20\x74\x68\x76\x23\x70\x70\x68\x75\x73\x77\x23\x68\x78\x76\x20\x76\x68\x71\x23\x75\x74\x68\x22\x23\x22\x73\x68\x79\x20\x71\x24\x68\x72\x23\x22\x23\x68\x70\x76\x79\x22\x68\x70\x20\x27\x74\x68\x73\x25\x79\x20\x54\x5E\x8B\xFE\x8B\xD7\xFC\xB9\x80\x00\x00\x00\xBB\x41\x00\x00\x00\x31\xC0\x50\xAC\x33\xC3\xAA\xE2\xFA\x54\x5E\xCC
     
  2. comstream

    comstream Member

    Joined:
    11 Aug 2015
    Messages:
    35
    Likes Received:
    11
    Reputations:
    0
    В общем сделал следующим образом:
    Code:
    #include <sys/mman.h>
    #include <string.h>
    #include <stdio.h>
    
    char sc[]= "\x31\xC0\x50\x68\x73\x78\x76\x79\x68\x78\x24\x22\x76\x68\x73\x24\x27\x24\x68\x23\x72\x75\x73\x68\x77\x77\x22\x73\x68\x22\x27\x73\x70\x68\x75\x76\x79\x73\x68\x77\x72\x73\x22\x68\x73\x22\x72\x24";
    
    int main(){
            void * a = mmap(0, 4096, PROT_EXEC |PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0);
            printf("allocated executable memory at: %p\n", a);
            ((void (*)(void)) memcpy(a, sc, sizeof(sc)))();
    }
    
    затем gcc -o hex2 hex2bin.c

    И все нормально дебажится edb --run hex2
     
    #1202 comstream, 29 Jan 2019
    Last edited: 4 Feb 2019
    BillyBons likes this.
  3. Bafteam

    Bafteam Member

    Joined:
    31 Dec 2015
    Messages:
    112
    Likes Received:
    40
    Reputations:
    0
    Знает кто как победить ошибку got SIGPWR signal (Power fail/restart)?
    Отлаживаю приложение на Юнити на своем телефоне по кабелю через GDB сервер, 3 приложения из 4 нормально отлаживаются, а это не хочет.
     
  4. vivat777

    vivat777 New Member

    Joined:
    6 May 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Подскажите пожалкйста, чем можно вытянуть ключи авторизации (api id:api hash) из десктопных билдов телеграма?
    Я пробовал Pe-tools на приложении igram (собраный на основании билда telegram desktop), снял дамп памяти, но там я даже не могу найти номер телефона на который регистрировался(Хотя ключи возможно и есть но их в 54 МБ дампа незнаю как искать. Сам ключ/хеш имеет стабильную длину и выглядит так
    api id:444041 api hash:758797a9e06ab51a82b4e93d5d4de557
    Может я не так дамп смотрю)?
     
    #1204 vivat777, 29 Jun 2019
    Last edited: 29 Jun 2019
  5. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    С огромной долей вероятности, подобные данные пошифрованы и расшифровываются на кратковременный период, в который ты естественно не снимешь дамп. Смотреть нужно не в статике, а в динамике, под отладчиком. Чтобы убедиться, посмотри через сниффер и увидишь, что хэш не передается в открытом виде
     
  6. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,105
    Likes Received:
    8,474
    Reputations:
    25
    Можно попробовать поискать стандартные АПИ шифрования. На них ставить бряку и тогда уже делать дамп.
     
    vivat777 and binarymaster like this.
  7. vivat777

    vivat777 New Member

    Joined:
    6 May 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Благодарю за ответ. А кто можетпомочь с этим? Я в долгу не останусь) Исходник телеги имеятся, вот тут даные эти передаются https://github.com/telegramdesktop/...elegram/SourceFiles/intro/introphone.cpp#L119
    + они при сборке прописываются отсюда https://github.com/telegramdesktop/...65c657c1b2942c79/Telegram/gyp/generate.py#L34
    Я поставил OllyDbg но изза малогоопыта работы в ней немогу найти простые константы которые есть в коде(через Ctrl+b), например вот отсюда тектсовые константы не ищутся, хотя в бинарнике через totalcmd нахожу)) https://github.com/telegramdesktop/...8f20b657cb87c71/Telegram/SourceFiles/config.h
    сам собраный бинарь последней версии https://telegram.org/dl/desktop/win_portable
     
  8. Damper

    Damper Member

    Joined:
    6 Jul 2015
    Messages:
    51
    Likes Received:
    18
    Reputations:
    1
    Я лучше в ольке чем в исходниках на различных там языках понимаю.))))Так же попробуй юзать HIEW или IDA Pro...
     
  9. vivat777

    vivat777 New Member

    Joined:
    6 May 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Можешь подскажешь как в ollydbg это сделать? Я тебе написало в личку, отпиши пожалуйста.
    Благодарю
     
  10. vivat777

    vivat777 New Member

    Joined:
    6 May 2019
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Народ. кто может помочь вытащить некоторые текстовые строки из telegram - клиентов под андроид или виндовс?
    В долгу не останусь)
     
  11. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Эти, чтоли?
    Code:
    ...
    .text:00B07BA0                 mov     dword ptr [esi+8], 0
    .text:00B07BA7                 mov     [ebp+var_20], esi
    .text:00B07BAA                 lock inc dword ptr [eax]
    .text:00B07BAD                 mov     edx, offset aB18441a1ff607e ; "b18441a1ff607e10a989891a5462e627"
    .text:00B07BAD ;   } // starts at B07B7D
    .text:00B07BB2 ;   try {
    .text:00B07BB2                 mov     byte ptr [ebp+var_4], 0Ah
    .text:00B07BB6                 lea     ecx, [ebp+var_18]
    .text:00B07BB9                 call    MTP_string
    .text:00B07BBE                 mov     [ebp+var_24_pApiHash], eax
    .text:00B07BC1                 lea     edx, [edi+1E4h]
    .text:00B07BC1 ;   } // starts at B07BB2
    .text:00B07BC7 ;   try {
    .text:00B07BC7                 mov     byte ptr [ebp+var_4], 0Bh
    .text:00B07BCB                 lea     ecx, [ebp+var_1C]
    .text:00B07BCE                 call    MTP_string2
    .text:00B07BD3                 mov     ecx, [eax]
    .text:00B07BD5                 mov     [ebp+var_48__sentPhone], ecx
    .text:00B07BD8                 mov     eax, [ecx]
    .text:00B07BDA                 test    eax, eax
    .text:00B07BDC                 jz      short loc_B07BE6
    .text:00B07BDE                 cmp     eax, 0FFFFFFFFh
    .text:00B07BE1                 jz      short loc_B07BE6
    .text:00B07BE3                 lock inc dword ptr [ecx]
    .text:00B07BE6
    .text:00B07BE6 loc_B07BE6:                             ; CODE XREF: sub_B078C0+31C↑j
    .text:00B07BE6                                         ; sub_B078C0+321↑j
    .text:00B07BE6                 mov     eax, [ebp+var_24_pApiHash]
    .text:00B07BE9                 mov     [ebp+var_44_ApiId], 2040 ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    .text:00B07BF0                 mov     eax, [eax]
    .text:00B07BF2                 mov     [ebp+var_40_ApiHash], eax
    .text:00B07BF5                 mov     ecx, [eax]
    .text:00B07BF7                 test    ecx, ecx
    ...
    
    Или может быть эти?

    Code:
    package org.telegram.messenger;
    
    public class BuildVars {
        public static String APP_HASH = "eb06d4abfb49dc3eeb1aeb98ae0f581e";
        public static int APP_ID = 6;
        public static int BUILD_VERSION = 1684;
        public static String BUILD_VERSION_STRING = "5.10.0";
        public static boolean CHECK_UPDATES = true;
        public static boolean DEBUG_PRIVATE_VERSION = false;
        public static boolean DEBUG_VERSION = false;
        public static String HOCKEY_APP_HASH = "a5b5c4f551dadedc9918d9766a22ca7c";
        public static String HOCKEY_APP_HASH_DEBUG = "f972660267c948d2b5d04761f1c1a8f3";
        public static boolean LOGS_ENABLED = false;
        public static String PLAYSTORE_APP_URL = "https://play.google.com/store/apps/details?id=org.telegram.messenger";
        public static boolean USE_CLOUD_STRINGS = true;
    ...
    
     
    #1211 neviens, 25 Aug 2019
    Last edited: 27 Aug 2019
  12. denden999

    denden999 New Member

    Joined:
    21 Feb 2018
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    какой софт для реверсинга apk файлов есть? для расшифровки. речь про facebook и facebook massanger
     
  13. zweriklo

    zweriklo New Member

    Joined:
    10 Apr 2019
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    Кто может помочь сделать кряк, приложение написано на Java, вход идет через логин и пароль. Сам софт и подробную информацию скину в лс. Просьба отписать кто может помочь.
     
  14. vt1980

    vt1980 New Member

    Joined:
    4 Feb 2016
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Есть exe файл, нужно вытащить из него кусок кода , исполняемый после нажатия на кнопку, и завернуть его в отдельный exe.
    На сколько такое реально сделать ?
    PEID показывает Microsoft Visual C++ 6.0
     
  15. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,105
    Likes Received:
    8,474
    Reputations:
    25
    Сделать - вполне реально. Хотя прот тоже может маскироваться под Цэ 6.0. поди угадай.
    Если знаешь азы дизасма - поставь же бряку на вызов АПИ и узнаешь насколько реально.
    Реально в принципе все, зависит только от того, сколько на это ты потратишь времени и сил.
     
    binarymaster likes this.
  16. vt1980

    vt1980 New Member

    Joined:
    4 Feb 2016
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    времени дефицит.
    видел описание процедуры для программ на делфи при помощи Delphi Decompiler
    которая из памяти может выдирать куски кода.
    ищу подобный инструмент для си-шных программ.
     
  17. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,105
    Likes Received:
    8,474
    Reputations:
    25
    Нет. Увы так не получится. Да и Делфи Декомпилером (я кстати даже и не знаю когда он обновлялся в последний раз) ты намучаешься изрядно. Не так все просто обычно.
    Если не шаришь - в коммерц. Здесь и на кряклабе. Да простят меня модераторы я не... ээээ... выбираю государство (надо же не придумал как называется тот кто предает Родину :) ).

    Думаю сделают возможно это будет просто. Смотря сколько стоит для тебя сея программа но чекнуть запакована она или нет на кряклабе точно можно бесплатно.

    Короче я думаю коммерц. Сам ты не скоро это сделаешь. А если скоро - тогда не задавал-бы вероятно сей вопроц а спрашивал по существу.

    UPD: стоимость... я думаю пару банок пива, в радиусе этого. Если там все просто.
     
  18. vt1980

    vt1980 New Member

    Joined:
    4 Feb 2016
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Тут не в цене дело, дело принципа разобраться, но с наименьшими времезатратами.
    Просто хотел сделать с наименьшим количеством набитых шишек.
    Когда-то дизассемблировал программы, но для Z80 процессоров, и микроконтроллеров.
    На данный момент кроме IDA, других подходящих инструментов не знаю.
    Возможно есть более удобные инструменты. Нужен пинок в нужном направлении.
     
  19. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,105
    Likes Received:
    8,474
    Reputations:
    25
    Поставишь бряку - выскочишь на рабочей функции. Как ставить бряки - есть маны на кряклабе, лишними не будут.
    Выглядит все очень просто судя по PEiD. А как получится - Зевс его знает :)

    Это как знаешь. Нашел ты хуйню похожую на коробку от морожного и спрашиваешь... а ничо если я ее буцну ?
    Ну... с виду ничего :) А так-то там под ней может быть столб....
     
  20. vt1980

    vt1980 New Member

    Joined:
    4 Feb 2016
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Буцнуть я решил без разрешения.
    Просто хотел знать какой сейчас арсенал программ в моде для этого.
    Но по вашим ответам, такое ощущение что за 10 лет ничего нового не придумали. )))