201

(13 відповідей, залишених у Java)

цікава ваша думка

Java - це масова схибленість, підігріта маркетинговими казочками про легкі фінансові прибутки, і подібні "піраміди" тому підтвердження.

202

(6 відповідей, залишених у Системне програмування)

Так, і не буде працювати при інжекті, якщо одна із бібліотек не буде завантажена (user32/kernel32/ws2_32). Лажа вийшла =\ Гра не варта свічок. Краще один раз написати повноцінний пі-код, аніж частковий, та годинами його дебажити. 200-300 байт не така уж і роскіш..
На граблях, як на батуті, c#$&. Закрийте нафіг тему ((

203

(6 відповідей, залишених у Системне програмування)

Під "зайве", я мав на увазі loadlibrary та getprocaddress, відповідно до мого способу. Звісно він не компенсує повної незалежності, але все ж таки, воно буває необхідним. Не економно, заради невеликої кількості call'ів, тягнути свої велосипеди, якщо є можливість елегантно підготувати та використати малу "бойову" ділянку коду.

204

(6 відповідей, залишених у Системне програмування)

0xDADA11C7 написав:

Дивно все це - шеллкод, розкиданий по секціях РЕ файла, зі статичним імпортом,

частково позиційно-незалежного коду

Як приклад: розробити руткіт для контролю запису в реєстрі, або ж наявності файла на диску, і у разі видалення яких - потрібно усе відновити. У цьому випадку, навіщо мені тягнути зайве?

У якості розминки, наваяв приклад частково позиційно-незалежного коду. Завдяки частковості, ми отримуємо дуже компактне PI-тіло, яке, наприклад, можемо кудись заінжектити.

http://i63.сайт-злодій/big/2015/0126/0f/207014b4b480eca9a364dae9e4f5d80f.png

За приклад візьмемо наступний код:

WSADATA wsaData;
char *m, name[128];

WSAStartup(0x202, &wsaData);
gethostname(name, 128);
m = inet_ntoa(*(struct in_addr*)gethostbyname(name)->h_addr_list[0]);
MessageBoxA(0, m, "Заголовок", MB_OK);
WSACleanup();
ExitProcess(0);

shellcode.asm

    format pe gui 5.01

    entry start

    include 'win32ax.inc'

    struct APIS
        MessageBoxA     rd 1
        ExitProcess     rd 1
        WSAStartup      rd 1
        gethostname     rd 1
        inet_ntoa       rd 1
        gethostbyname   rd 1
        WSACleanup      rd 1
    ends

    struct CONFIG
        apis        APIS
        wsaData     WSADATA
        name        rb 128
        tittle      rb 20
    ends

;   ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
section '.data' data  readable writeable                                 // секція даних

api_table dd    nMessageBoxA,\
                nExitProcess,\
                nWSAStartup,\
                ngethostname,\
                ninet_ntoa,\
                ngethostbyname,\
                nWSACleanup,\
                -1

    nMessageBoxA    db 'MessageBoxA',       0
    nExitProcess    db 'ExitProcess',       0
    nWSAStartup     db 'WSAStartup',        0
    ngethostname    db 'gethostname',       0
    ninet_ntoa      db 'inet_ntoa',         0
    ngethostbyname  db 'gethostbyname',     0
    nWSACleanup     db 'WSACleanup',        0

    user32          db 'user32',            0
    kernel32        db 'kernel32',          0
    ws2_32          db 'ws2_32',            0

    ttl             db 'Заголовок',         0

    shc             rd                      1
    cfg             rd                      1
    hHeap           rd                      1


shellcode:
    virtual at ebp
        config CONFIG
    end virtuaL

    lea eax, [config.wsaData]
    push eax
    push 0x202
    call [config.apis.WSAStartup]

    push 128
    lea eax, [config.name]
    push eax
    call [config.apis.gethostname]

    lea eax, [config.name]
    push eax
    call [config.apis.gethostbyname]

    mov eax, [eax + hostent.h_addr_list]
    mov eax, [eax]

    push dword[eax]
    call [config.apis.inet_ntoa]

    push 0
    lea edx, [config.tittle]
    push edx
    push eax
    push 0
    call [config.apis.MessageBoxA]

    call [config.apis.WSACleanup]

    push 0
    call [config.apis.ExitProcess]
size_shellcode = $ - shellcode
;   ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~


;   ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
section '.text' code  readable executable                                // секція коду

start:
    // аналог GetProcessHeap()
    mov eax, [fs:0x30]
    mov eax, [eax + 0x18]
    mov [hHeap], eax

    // виділяємо пам'ять під структуру
    invoke HeapAlloc, [hHeap], HEAP_ZERO_MEMORY, sizeof.CONFIG
    mov [cfg], eax

    // ..під шеллкод
    invoke HeapAlloc, [hHeap], HEAP_ZERO_MEMORY, size_shellcode
    mov [shc], eax

    // знаходимо адреси winapi
    mov ebx, [cfg]
    mov esi, api_table
.a: cmp dword[esi], nMessageBoxA
    ja @f
    push user32
    jmp .b
@@: cmp dword[esi], nExitProcess
    ja @f
    push kernel32
    jmp .b
@@: push ws2_32
.b: invoke LoadLibraryA
    invoke GetProcAddress, eax, dword[esi]
    mov dword[ebx], eax
    add esi, 4
    add ebx, 4
    cmp dword[esi], -1
    jne .a

    mov ebx, [cfg]
    invoke lstrcpyA, addr ebx + CONFIG.tittle, ttl

    // копіюємо шеллкод у пам'ять
    mov esi, shellcode
    mov edi, [shc]
    mov ecx, size_shellcode
    rep movsb

    // передаєм вказівник на структуру та стартуємо шеллкод
    mov ebp, [cfg]
    push ebp
    jmp [shc]
;   ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~


;   ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
section '.idata' import data  readable writeable                         // секція імпорту

    library kernel32, 'kernel32.dll',\
            user32, 'user32.dll'


    import  kernel32,\
            GetProcAddress, 'GetProcAddress',\
            LoadLibraryA, 'LoadLibraryA',\
            HeapAlloc, 'HeapAlloc',\
            lstrcpyA, 'lstrcpyA'
;   ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~

http://i58.сайт-злодій/big/2015/0126/d9/9db084d9a94c691a72908347aa9172d9.png

206

(15 відповідей, залишених у Windows)

На хабрі, сьогодні - "7 золотих правил одного програміста", і там наступне писано:

...
Не будь перфекционистом
...
Код должен работать без багов, быть тестируемым и читаемым. Все.
...

Мабуть треба відходити від компа, раз такі моменти в IDE та пр. починають дратувати))

207

(64 відповідей, залишених у Інше)

Чому б тоді не запровадити оподаткування церков

Та усі інші благодійні фонди. А як проводити облік пожертв?

208

(64 відповідей, залишених у Інше)

Корупція та інші "радощі" ведення бізнесу нікуди поки не ділися, а при такому розкладі "підтримка" для IT буде згубною. Ця "стара школа" тільки і вміє усе на метал різати, їм всеодно на розвиток та перспективи, тільки одноразове швидке збагачення!

Мені на думку спало наступне:

// poc.cpp

#include <iostream>

using namespace std;

enum reg {EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI};

class VM {
public:
    VM();
    ~VM();
    int GetReg(reg r);
    void Mov(reg r, int i);
    void Mov(reg a, reg b);
    void Add(reg r, int i);
    void Add(reg a, reg b);
    void Xor(reg r, int i);

private:
    int reg_mem[8];
};


VM::VM() {

}

VM::~VM() {

}

int VM::GetReg(reg r) {
    return reg_mem[r];
}

void VM::Mov(reg r, int i) {
    reg_mem[r] = i;
}

void VM::Mov(reg a, reg b) {
    reg_mem[a] = reg_mem[b];
}

void VM::Add(reg r, int i) {
    reg_mem[r] += i;
}

void VM::Add(reg a, reg b) {
    reg_mem[a] += reg_mem[b];
}

void VM::Xor(reg r, int i) {
    reg_mem[r] ^= i;
}


int main() {
    VM *vm = new VM();


    vm->Mov(ECX, 1111);                 // mov ecx, 1111
    vm->Mov(EAX, ECX);                  // mov eax, ecx
    vm->Add(EAX, 5);                    // add eax, 5
    vm->Mov(ECX, 10);                   // mov ecx, 10
    vm->Add(EAX, ECX);                  // add eax, ecx
    vm->Xor(EAX, 19);                   // xor eax, 19

    cout << vm->GetReg(EAX) << endl;    // = 1141


    return 0;
}

Тобто дизасмимо тіло, та "перекладаємо" його в такий проміжок. Купа недоліків, в т.ч. статичність методів, які можна задетектити.. хоча це більше підходить для захисту кода від посторонніх очей, аніж від ав. Але все ж таки, як один із варіантів на тему реалізації VM.

210

(15 відповідей, залишених у Windows)

FakiNyan написав:

а що з ним не так?

Нема галочки аби його згорнути.

211

(15 відповідей, залишених у Windows)

truesupport написав:

а я всерівно не зрозумів
ви про стиль

function () {
}

чи про щось інше?

Я про візуальне згортання блоків.

http://i68.сайт-злодій/big/2015/0119/c3/a6b575adad10bbdc26f0b504816b0bc3.png

212

(15 відповідей, залишених у Windows)

Уточнюю:
http://i68.сайт-злодій/big/2015/0119/c9/ef75b700cdc3826b2d9a4785d553aec9.png

213

(15 відповідей, залишених у Windows)

Всім привіт.

http://i63.сайт-злодій/big/2015/0119/c5/53f2cb5b2fbb94b533702e3df495abc5.png

Якого воно біса так? Було в когось?

214

(5 відповідей, залишених у C++)

Прихований текст

А ви часом не Dimka-novitsek з cyberforum ?

215

(8 відповідей, залишених у Системне програмування)

Нема такого.. тільки ручна трепанація на пару з IDA.

216

(349 відповідей, залишених у Інше)

P.Y. написав:

робляться активні спроби зіпсувати своє життя остаточно

Це нерозважливо, і не робить гарної репутації. Через деякий час тобі за це буде соромно.

P.Y. написав:

Ні, а яке тут може бути раціональне рішення? Заколоти свого суперника на дуелі?

Гідніше буде порівняти себе з ним, та зробити висновки, і діяти далі. Будь настирливим, відбий.

P.Y. написав:

Записатися на курси пікапу

Хібащо підняти своє "почуття власної важливості" за допомогою подібного егоїзму: все таки краще за завантажене з інету порно))

P.Y. написав:

Усіх гарних дівчат розібрали, коли ти ще не знав про їх існування.

В чому проблема? "Вбирайся жирком" по життю, і гоу розбирати дівчат з молодшого покоління.

А ще кажуть, що чоловіки бездушні скотиняки :D

217

(349 відповідей, залишених у Інше)

P.Y. написав:

сильним мотиватором для його повернення до нормального стану

P.Y. написав:

Не вправляє. Йдеш у віртуальний запой, скачуєш півтерабайта якісної порнографії — і можна жити далі, як і до того…

Не сходиться :) Може то просто симпатія?

Мужики вирішують усі складнощі та непорозуміння, а не бухають і фапають на відредактовані в відеоредакторі до блиску чужі відео-цицьки.
Вибачайте, нічого особистого, але..

Назвімо його скромним хлопцем, який дуже відданий своїй роботі і/або друзям у мережі.

..це банальне задротство та надмірна боязнь (а якщо вона не так зрозуміє, а якщо засміє та ще подругам розповість, а чи гарнюня я і т.д.). Нафіга таке дівчині? Вони такі самі, зі своїми заморочками, тільки вони ще косметикою користуються, що дає +1 до самовпевненості. Ти повинен бути поводирем і задавати моду стосункам, сама впевненість, і все. Так, стрьомно, але пам'ятай, що нічого жахливого не трапиться від твоєї поведінки, думка інших - це лишень думка, це ніщо в наш час, світ і без тебе існував, і через якусь спідницю він не зміниться.

п.с. на доу ця тема дуже хвороблива, та кожен новий топік про "стосунки" просто рве усі рейтинги по кількості повідомлень, цікаво як тут буде :)

218

(198 відповідей, залишених у Системне програмування)

Так то ще янголятка :) Слабо на васм запостити? xD

219

(7 відповідей, залишених у Java)

Існує "excelsior jet" - на виході маємо оптимізований(?) екзешник без залежності в ролі jre, але він 3000$ коштує.
А по простому, то просто робите portable app, на пару з launch4j. Можна ще почаклувати з enigma virtual box.

Прихований текст

Дуже не вистачає як у пайтоні - cx_freeze (hello world: upx на "--ultra-brute" + enigma VB = exe без залежностей розміром 1.5 мб.). Хоча в джаві можна ручками вирізати зайве, якщо гнатися за розміром.

220

(349 відповідей, залишених у Інше)

P.Y. написав:
Cyan написав:
P.Y. написав:

Вам справді потрібен хтось із шукачів дівчат за заданим критерієм? ))

і вам доброго вечора
а критерій-то який? затурканий програміст, який боїться сонячного світла?

Назвімо його скромним хлопцем, який дуже відданий своїй роботі і/або друзям у мережі. Необхідно якось його повернути до нормального життя в реал, де нічого не відбувається, бо він там, фактично, не буває. Стосунки з дівчиною, яка відповідає його ідеалам (гарна, розумна, байдужа до грошей), були б сильним мотиватором для його повернення до нормального стану, але див. вище.

Коротше, з чого порадите почати реанімацію (тільки не з лоботомії та евтаназії)?

Візьмешся за розум тоді, коли вона вийде заміж за іншого: подібне сильно вправляє мізки, але пізно.