WriteFile

Тема в разделе "WASM.BEGINNERS", создана пользователем fragment, 11 май 2010.

Статус темы:
Закрыта.
  1. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Извеняюсь приатаченый исходник требует пароль...
    Нашел голову от файлика и Ида

    [​IMG]

    но после неё идет куча неинициализированных данных, как быть ?

    [​IMG]

    можно ли просто прикрутить голову с 4000000h по 40000400h игнарируя кусок HEADER'a c 40000400h по 40000FF0h
     
  2. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Можите мне расказать в какой программе , каким скриптом , по какой технологии вы сняли такой отличный , красивый хекс дамп?
    Нужно вырвать голову у РЕ файла но я незнаю чем... :dntknw:
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Вам нужно образ сконвертировать в дамп, например тулзой bintodb, bin2db, winhex'ом и пр. Потом можно подключить к сорсу. Лучше конечно пожать чемнибудь, LZ'ом хотябы.
     
  4. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    утилы ети какието не совсем работоспасобные по етомя с и сразу просил скрипт на перле... :dntknw:
    Спасибо что напомнили про пакеры
     
  5. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    а в пакете masm32v9 ни чего нету подходящего?
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    bintodb [​IMG]
    Например я пользуюсь Shellcode Converter'ом BlackParrot'а, он тут на форуме выложен, воспользуйтесь поиском.
     
  7. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    воспользовался я Shellcode Converter'ом BlackParrot'а программа отлично написана, красива , но к сожелению у меня ни чего не получилось, хотелось бы всетаки скриптик на перле под IDAPro Free
     
  8. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    хочешь готового? вкоммерц!
    если всё же жалко денег, то выкладывай _свой_ нерабочий вариант, авось кто поможет.
     
  9. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    В данный момент человек с ником aitap с irc.ru #linux , пишет мне такой вот скрипт на перле, как будет готовый рабочий вариант я его обезательно сюдав выложу!
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Данный форум не по перлал и прочем погони. Тут низкоуровневый коденг обсуждают и основное направление это асм. Идите на соответствующие форумы. Касательно проблемы - дамп сохраняете в файл с именем name.inc и подключаете к сурсу как include name.inc, после этого дамп доступен по определённой в начале метке.
     
  11. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Вас понял, но у меня появилась опять праблема и кажется с длинной файла, подскажите мне пожалуйста и я удалюсь и обещаю больше ни где не распростанять полезные опен сорс скрипты и программы.

    Код (Text):
    1. #!/usr/bin/perl
    2.  
    3. use warnings;
    4. use strict;
    5.  
    6. die "usage: $0 <filename>\n" unless $ARGV[0];
    7.  
    8. open BIN,$ARGV[0] or die "$ARGV[0]: $!\n";
    9. binmode BIN,":raw" or die "binmode(): $!\n";
    10.  
    11. my $byte;
    12. my $i = 0;
    13. my $length = 0;
    14. while (read BIN,$byte,1 > 0) {
    15.     $length += 1;
    16.     print "\t"x3 . "db " if $i == 0;
    17.     $i++;
    18.     printf "0%sh",unpack("H2",$byte);
    19.     print ", " if $i < 10;
    20.     if ( $i == 10 ) { print "\n"; $i = 0 }
    21. }
    22.  
    23. print STDERR "$length\n";
    24. print STDERR sprintf "%s\n",unpack("H*",pack("N*",$length));
     
  12. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    выше приведен скрипт bin2db.pl

    [​IMG]
     
  13. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Опять создается фаил нулевой длинны, пробывал писать длинну дампа и в hex и в dec .. :dntknw:
    Подскажите пожалуйста где ошибки.
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Олли показывает код ошибки в LastErr справа, описание найдёте в хидере winerror.h который я вам дал. Если будет не достаточно инфы, смотрите соответствующий ядерный статус в generr.c, или из TEB получаете и смотрите описание в ntstatus.h
     
  15. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Это очень хорошо но у меня нету Олльги, мне бы вот просто прочитать листинг и выявить ошибку , так можно ?
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Как это нету, это ваш скрин http://images.netbynet.ru/img.php?4e8ab7d3bef821e44c41a1d30b086a89.png&w=auto ?
    Тогда возьмите просто зарезервируйте место в собираемом модуле и вручную винхексом прикрепите туда образ.
     
  17. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    У меня вчера были какие то неполадки с виндой и я её переустановил, а можно ето зделать в IDE Pro.. я как бы уже думал над этим но вот видите не могу даже дамп скопирывть таким образом на харл а вы мне о приваривании его к другому бинарному файлу.
     
  18. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Конкретно что у вас не получается ?
    Массив вы получили и подключили в виде инклуда. Определяете две метки, одну в начале массива, чтобы адресовать его, вторую метку в конце массива, тогда размер массива будет определяться разностью смещений двух меток, ну либо укажите непосредственно размер образа. Это значение передаёте в WriteFile().
     
  19. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    К сожелению щас нет под рукой книг о ассемблере , дал почитать "товарищу" и он их заиграл, но как ставить мнетки я приблезительно помню:

    DumpLen equ DumpLen+Point
    DumpDB db 0C2h, 0C4h
    Point db "$"

    ..так ?
     
  20. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Минус в лишнем байте и выражение рекурсивное и не правильное. Лучше так:
    Код (Text):
    1. DumpDB:
    2.     db 0C2h, 0C4h
    3. Point:
    4.  
    5. DumpLen equ (offset Point - offset DumpDB)
     
Статус темы:
Закрыта.