T.E.S.T.C.O.P.Y. • Просмотр темы - Ворье на воре сидит и вором погоняет

Ворье на воре сидит и вором погоняет

Болтологический форум.
Пожелание к форуму, сообщения об ошибках, любые темы и т.п.
Правила форума
Просьба ознакомиться с Правилами форума.
Также большая просьба, картинки выкладывать или в Галерею, или прикрепляйте их к своим сообщениям.
Ссылки в темах на сторонние фотохостинги (кроме вконтакте) заблокированы.

Прилепить пост

Сообщение andrek » Вт май 03, 2011 3:29 am

Предыстория такова:
Была тема на форуме по вопросу формата прошивки SCX3200 (кто создавал не помню).
Собственно ничего там конкретного не было, пока я не написал что прошивка запакована открытыми алгоритмами использующие zlib.
Потом я добавил программу, распаковывающая любые файлы имеющие внутри запакованные блоки этим алгоритмом.
Ничем конкретным эта программа не привязана к прошивке, нет фиксированных адресов и .т.п. и не затрагивает интересы самсунга (то что она распаковала прошивку это случайность), она работает с любыми файлами (особенно хороша с сейв файлами различных приложений).
В итоге тема была удалена, программа тоже... я в шоке sho_cked
Забудьте, кто сказал про интересы самсунга?! Были затронуты инетересы БАРЫГ!

Вот еще, я получил интересное письмо:
переход в высшую лигу))

Отправлено: Вс май 01, 2011 4:58 pm
От: ZettZett
Кому: andrek
Личная переписка удалена.


Вот оно как оказывается, у вас здесь персики на олимпе растут, солнце не сильно припекает?!

Выводы:
Администрация форума просто завязана на неприкрытом воровстве, и продажах нелегального контента..
а я то думал здесь ищут конкретные решения.. наивный.
Аватар пользователя
andrek   
Осматривается
  • Не в сети

Прилепить пост

Сообщение KRIZIC » Вт май 03, 2011 5:32 am

думаю скоро пипец придет фиксаделам !
Аватар пользователя
KRIZIC   
Увидел тонер
  • Не в сети

Прилепить пост

Сообщение kvg » Вт май 03, 2011 6:39 am

Тема про 3200 не была удалена, она перенесена в скрытый раздел.
Туда же и попала Ваша программа, за что приношу свои извинения!
Код: выделить все
    /*
    * fw_scx3200.cpp
    * copyright 2011, www.testcopy.ru by andrek
    * build: g++ -O2 fw_scx3200.cpp -lz -ofw_scx3200
    */

    #include <zlib.h>
    #include <algorithm>
    #include <functional>
    #include <iterator>
    #include <sstream>
    #include <fstream>
    #include <iomanip>
    #include <iostream>
    #include <vector>

    std::string uint2hexstr(size_t off)
    {
        std::ostringstream os;
        os << "0x" << std::setw(16) << std::setfill('0') << std::hex << off;
        return os.str();
    }

    int cstr2int(const char* str)
    {
        int res;
        std::istringstream ss(str);
        ss >> std::hex >> res;
        return res;
    }

    void vector2file(const std::vector<char> & v, const std::string & fn)
    {
        if(v.size())
        {
       std::ofstream fsout(fn.c_str(), std::ios::binary);
       if(fsout.good())
           std::copy(v.begin(), v.end(), std::ostream_iterator<char>(fsout));
        }
    }

    const char* zlib_result(int res)
    {
        switch(res)
        {
       case Z_OK:      return "Z_OK";
       case Z_STREAM_END:   return "Z_STREAM_END";
       case Z_NEED_DICT:   return "Z_NEED_DICT";
       case Z_ERRNO:      return "Z_ERRNO";
       case Z_STREAM_ERROR:   return "Z_STREAM_ERROR";
       case Z_DATA_ERROR:   return "Z_DATA_ERROR";
       case Z_MEM_ERROR:   return "Z_MEM_ERROR";
       case Z_BUF_ERROR:   return "Z_BUF_ERROR";
       case Z_VERSION_ERROR:   return "Z_VERSION_ERROR";
       default: break;
        }
        return "Z_UNKNOWN";
    }

    bool zlib_compress(std::vector<char> & dst, const char* src, size_t srcsz)
    {
        if(src && srcsz)
        {
            dst.resize(compressBound(srcsz));
            uLong dstsz = dst.size();
            int res = compress(reinterpret_cast<Bytef*>(&dst[0]), &dstsz, reinterpret_cast<const Bytef*>(src), srcsz);
            dst.resize(dstsz);
            return Z_OK == res;                                                                                     
        }
        return false;
    }

    bool zlib_uncompress(std::vector<char> & dst, const char* src, size_t srcsz, bool debug)
    {
        if(src && srcsz)
        {
            uLong dstsz = srcsz * 5;
            dst.resize(dstsz);
            int res = 0;
            while(Z_BUF_ERROR == (res = uncompress(reinterpret_cast<Bytef*>(&dst[0]), &dstsz, reinterpret_cast<const Bytef*>(src), srcsz)))
            { dstsz = dst.size() * 2; dst.resize(dstsz); }
            dst.resize(dstsz);

       if(debug)
           std::cerr << zlib_result(res) << std::endl;

            return Z_OK == res;
        }
        return false;
    }

    int changeserial(std::vector<char> & v, const std::string & oldstr, const std::string & newstr)
    {
        if(oldstr.size() && newstr.size())
        {
       std::vector<char>::iterator
           itv = std::search(v.begin(), v.end(), oldstr.begin(), oldstr.end());

       if(itv != v.end())
       {
           if(newstr.size() == oldstr.size())
          std::copy(newstr.begin(), newstr.end(), itv);
           else
          std::cerr << "serial number: size mismatch" << std::endl;
           return std::distance(v.begin(), itv);
       }
        }

        return -1;
    }

    int main(int argc, char** argv)
    {
        if(2 > argc)
        {
       std::cerr << "usage: " << argv[0] << " file_fw [old_serial new_serial]" << std::endl;
       return 0;
        }

        const std::string old_number = 2 < argc ? argv[2] : "";
        const std::string new_number = 3 < argc ? argv[3] : "";

        std::ifstream fsin(argv[1], std::ios::binary);

        if(fsin.bad())
        {
       std::cerr << "error open file: " << argv[1] << std::endl;
       return 1;
        }

        std::vector<char> inbuf;

        // read fw to inbuf
        fsin >> std::noskipws;
        std::copy(std::istream_iterator<char>(fsin), std::istream_iterator<char>(),
                       std::back_inserter(inbuf));
        fsin.close();

        std::vector<char> outbuf(inbuf);
        std::vector<char> tmp1;

        // scan inbuf
        for(std::vector<char>::iterator
       itv = inbuf.begin(); itv != inbuf.end(); ++itv)
        {
       const size_t offset = std::distance(inbuf.begin(), itv);

       if(zlib_uncompress(tmp1, &(*itv), inbuf.size() - offset, false))
       {
           const std::string hexstr = uint2hexstr(offset);
           std::cerr << "uncompress: offset: " << hexstr << std::endl;

           // debug: save uncompress block
           // vector2file(tmp1, hexstr + ".1");

           int ser_offset = changeserial(tmp1, old_number, new_number);

           // change serial number
           std::vector<char> tmp2;
           if(zlib_compress(tmp2, &tmp1[0], tmp1.size()))
           {
          // debug: save compress block
          // vector2file(tmp2, hexstr + ".2");

          if(0 <= ser_offset)
              std::copy(tmp2.begin(), tmp2.end(), outbuf.begin() + offset);
           }

           if(0 <= ser_offset)
           {
          std::cerr << "find number: " << uint2hexstr(ser_offset) << std::endl;
          break;
           }
       }
        }

        int ser_offset = changeserial(outbuf, old_number, new_number);

        if(0 <= ser_offset)
        {
       std::cerr << "find number: " << uint2hexstr(ser_offset) << std::endl;
       if(new_number.size())
       {
           std::string name(new_number + ".hd");
           vector2file(outbuf, name);
       }
        }

        return 0;
    }
Аватар пользователя
kvg   
Администратор сайта и форума

Прилепить пост

Сообщение andrek » Вт май 03, 2011 9:17 am

Максимов Денис писал(а):Кто сказал, что здесь еще не нашли решения тех вопросов которые ты помогаеш решить?
Не хотите вести обсуждение, там, где это предусмотрено - тема закрыта.

На все ваши вопрсы сейчас узнаем ответы.
Ау уважаемые сервисники!
Здесь за вас слово сказали, у меня же один вопрос: у Всех есть доступ в закрытый раздел??

2. По поводу хамства, в первую очередь нахамили мне, как участнику форума.

Максимов Денис писал(а):тема закрыта.

Неужели проснулась совесть, стыдно обсуждать неудобные вопросы?

3. Я считаю информация должна быть открытой, доступной и бесплатной.
Последний раз редактировалось andrek Вт май 03, 2011 9:37 am, всего редактировалось 3 раз(а).
Аватар пользователя
andrek   
Осматривается
  • Не в сети

Прилепить пост

Сообщение lekm » Вт май 03, 2011 9:43 am

Вообще то некрасиво получилось. Если бы тема изначально создавалась в скрытом разделе- это одно. А когда уже началось нормальное обсуждение, народ стал подтягиваться и тут на тебе - тема закрыта ...
Пчелам никто не рассказывал где мед брать.
Аватар пользователя
lekm   
Не от мира сего

Прилепить пост

Сообщение kvg » Вт май 03, 2011 9:58 am

Тема создавалась участником как раз скрытого раздела. Но давайте обсудим, нужна ли подобная информация в открытом виде. Приглашаю всех высказать свое мнение.
Аватар пользователя
kvg   
Администратор сайта и форума

Прилепить пост

Сообщение bucag » Вт май 03, 2011 10:27 am

andrek писал(а):
Максимов Денис писал(а):Кто сказал, что здесь еще не нашли решения тех вопросов которые ты помогаеш решить?
Не хотите вести обсуждение, там, где это предусмотрено - тема закрыта.

На все ваши вопрсы сейчас узнаем ответы.
Ау уважаемые сервисники!
Здесь за вас слово сказали, у меня же один вопрос: у Всех есть доступ в закрытый раздел??

2. По поводу хамства, в первую очередь нахамили мне, как участнику форума.

Максимов Денис писал(а):тема закрыта.

Неужели проснулась совесть, стыдно обсуждать неудобные вопросы?

3. Я считаю информация должна быть открытой, доступной и бесплатной.


1. Кто хотел получить доступ в закрытый раздел тот получил.
2. Хамство и оскорбления я вижу пока только с твоей стороны.
3. Некрасиво вывливать переписку на всеобщее обозрение.
4. Тема создовалась не тобой поэтому не тебе решать где ей быть.
5. Если есть желание участовать присоединяйся, администрация в этом ни кому не припятствует.
kvg я за акрытый раздел.
Аватар пользователя
bucag   
Собрал картридж правильно


Вернуться в Изба-флудильня

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35

вверх
вниз
x

#{title}

#{text}