1. dod124.04.2024 в 13:08от
  2. BanDiTuK24.04.2024 в 13:00от
Загрузка...
Загрузка...

Пишем кряк на С++, Delphi и Asm

Тема в разделе "С/С++/Pascal/Delphi", создана пользователем Qwin(C), 10.04.2012.

  1. Qwin(C)

    Qwin(C)

    Статус:
    Оффлайн
    Регистрация:
    08.10.11
    Сообщения:
    98
    Репутация:
    8 +/-
    В этой статье я покажу то, как простейшим образом написать кряк. Делать это мы будем на 3 самых популярных в данное время языках программирования: Делфи, Си++ и ассемблер.
    Использовать будем функции WinAPI: CreateFile, SetFilePointer, WriteFile. Думаю что первая и третья функции у вас не вызовут вопросов, название говорит само за себя. Для тех кто не знает скажу, что функция SetFilePointer делает смещение в нужное нам место(offset).
    Мы уже знаем, что нам надо заменить в файле cdrwin5.exe байты, расположенные по адресам 003D99 и 0018871, на байт EB (в 16ом виде), чтобы переход был безусловным.

    Итак, приступим. Я сразу приведу все 3 исходных кода с комментариями.

    Delphi:

    program cdrwincrk;
    {$APPTYPE CONSOLE}
    uses Windows;

    var iByteWrt:Cardinal;
    hFile:THandle;
    const JmpByte:integer=$EB;

    Begin
    Writeln('Crack for CDRWin v5.01 - 5.02 by Over G[DWC Gr0up]');
    hFile:=CreateFile('cdrwin5.exe',GENERIC_WRITE,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
    SetFilePointer(hFile,$3D99,nil,0); //Смещение на 003D99
    WriteFile(hFile, JmpByte, 1, iByteWrt, nil); //Пишем байт $EB по адресу 003D99
    SetFilePointer(hFile,$18871,nil,0); //Смещение на 0018871
    WriteFile(hFile, JmpByte, 1, iByteWrt, nil); //Пишем байт $EB по адресу 0018871
    CloseHandle(hFile);//Закрываем файл
    Writeln('File Successfull cracked!'+#13#10+'Press ENTER to exit');
    Readln;
    End.

    C++

    #include "windows.h"

    int main(int argc, char* argv[])
    {
    char JmpByte[] = "xeb";

    HANDLE hFile;
    DWORD iByteWrt = 0;

    printf("Crack for CDRWin v5.01 - 5.02 by Over G[DWC Gr0up] ");
    hFile=CreateFile("cdrwin5.exe",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);
    SetFilePointer(hFile,0x3D99,NULL,0); //Смещение на 003D99
    WriteFile(hFile, JmpByte, 1, &iByteWrt, NULL); //Пишем байт EB по адресу 003D99
    SetFilePointer(hFile,0x18871,NULL,0); //Смещение на 0018871
    WriteFile(hFile, JmpByte, 1, &iByteWrt, NULL); //Пишем байт EB по адресу 0018871
    CloseHandle(hFile); //Закрываем файл
    printf("File Successfull cracked!");
    return 0;
    }

    ASM:

    .386
    .model flat,stdcall
    option casemap:none

    include masm32includewindows.inc
    include masm32includeuser32.inc
    include masm32includekernel32.inc
    includelib masm32libuser32.lib
    includelib masm32libkernel32.lib


    .data
    AppName db "Crack for CDRWin v5.01 - 5.02 by Over G[DWC Gr0up]",0
    isOK db " File successfull cracked!",0
    CrkPrg db "cdrwin5.exe",0
    JmpByte db 0EBh

    .data?
    hFile HANDLE ?
    hWnd HANDLE ?
    SizeWrite DWORD ?

    .code
    start:
    invoke MessageBox,hWnd,ADDR AppName,ADDR AppName,64
    invoke CreateFile,ADDR CrkPrg,GENERIC_WRITE, FILE_SHARE_WRITE, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,NULL
    mov hFile,eax
    invoke SetFilePointer,hFile,03D99h,NULL,0 //Смещение на 003D99
    invoke WriteFile,hFile,ADDR JmpByte,1,ADDR SizeWrite,NULL //Пишем байт EB по адресу 003D99
    invoke SetFilePointer,hFile,018871h,NULL,0 //Смещение на 0018871
    invoke WriteFile,hFile,ADDR JmpByte,1,ADDR SizeWrite,NULL //Пишем байт EB по адресу 0018871
    invoke CloseHandle,hFile
    invoke MessageBox,hWnd,ADDR isOK,ADDR AppName,64
    ret
    end start


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

    Если помог поставь +
     
    Последнее редактирование: 10.04.2012
  2. som_ginex37610

    som_ginex37610

    Статус:
    Оффлайн
    Регистрация:
    26.08.11
    Сообщения:
    1.881
    Репутация:
    751 +/-
    А кто не знает этих языков,сложно?
     
  3. Kemp

    Kemp

    Статус:
    Оффлайн
    Регистрация:
    29.03.12
    Сообщения:
    81
    Репутация:
    26 +/-
    А кто не знает - не реально)
     
  4. EasyHack

    EasyHack

    Статус:
    Оффлайн
    Регистрация:
    28.03.12
    Сообщения:
    5
    Репутация:
    5 +/-
    Простите за глупый вопрос, но кряк на что?) Или тут что-то типо образчика для любого кряка?)
     
  5. Gray1

    Gray1

    Статус:
    Оффлайн
    Регистрация:
    08.08.11
    Сообщения:
    745
    Репутация:
    228 +/-
    Наглый копипаст, ТСа в топку. :facepalm:
     
  6. Bastardo

    Bastardo

    Статус:
    Оффлайн
    Регистрация:
    29.07.11
    Сообщения:
    1.354
    Репутация:
    868 +/-
    Копипаст 100%

    ТС вряд ли это подойдет для всех прог
     
  7. lovi_\o

    lovi_\o

    Статус:
    Оффлайн
    Регистрация:
    29.03.12
    Сообщения:
    66
    Репутация:
    4 +/-
    17 ошибок.....
     
  8. TheRampage

    TheRampage

    Статус:
    Оффлайн
    Регистрация:
    06.09.12
    Сообщения:
    18
    Репутация:
    3 +/-
    Адреса для патчинга самим искать нужно если вы хотите другую программу пропатчить.