удаляем rich сигнатуру с линкера msvc 10.0.40219.1

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by sn0w, 17 Aug 2011.

  1. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    любит он этот ид вклеивать в ехешники. тема давно уже не секрет, но от версии к версии место это меняется.

    для десятой студии подходит алгоритм:
    грузим link.exe в иду, затем ищем кроссрефы на _tzset. их будет целый список, но нужен тот который будет в
    IMAGE::BuildImage

    увидим примерно такой блок:

    Code:
    .text:00476C9C                 call    ?CbBuildProdidBlock@IMAGE@@AAEKPAPAX@Z ; IMAGE::CbBuildProdidBlock(void * *)
    .text:00476CA1                 mov     edx, [ebx+268h]
    .text:00476CA7                 lea     ecx, [ebx+26Ch]
    .text:00476CAD                 add     edx, eax
    .text:00476CAF                 mov     [ebp+var_490], eax
    .text:00476CB5                 mov     [ebp+var_45C], ecx
    .text:00476CBB                 mov     [ecx], edx
    .text:00476CBD                 call    ds:__imp___tzset
    по адресу 00476CAD (add edx, eax) определяется куда будет записан пе заголовок с учетом рич сигнатуры, вставив вместо add два нопа, мы просто впишемся на ее место. таки все, материала для старых линкеров поэтому поводу навалом, но есть некоторые различия, поэтому и запостил.
     
  2. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    бляяя я думал я в колдинге.))) перенесите туда плз
     
  3. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    премного извиняюсь за дизинфо - /thread150432.html
     
    #3 sn0w, 17 Aug 2011
    Last edited: 17 Aug 2011