Важное
Разделы
Поиск в креативах
Прочее
| Откровения пра гибкасть. апроснегъ15:45 03-06-2011#1 Oneson
фотке нужны в трусах, чешушем за ухом пяткой. гг 15:46 03-06-2011#2 Сдвиг
чешем хуем пятку 15:49 03-06-2011#3 Нетленко
Когда-то я дохера чего могЪ Но времена прошли… Зато теперь я влёгкую могу пососать свой нос! 15:57 03-06-2011#4 метеорит
ногти на ногах кто-нить грызёт? 15:57 03-06-2011#5 Талалаев
/* |*| |*| Skype 4142 Decompression v1.002 by Sean O''Neil. |*| Copyright (c) 2004-2009 by VEST Corporation. |*| All rights reserved. Strictly Confidential! |*| |*| Date: 29.10.2009 |*| */ #include «skype_basics.h» #pragma warning(disable:4311 4312) u8 unpack_42_CF28488 = {0, 0, 0, 0, ''%'', ''s'', 0, 0}; extern void * malloc_719490(void * *the_ptr, u32 bytes); extern u32 pack_42_find_code_76A070(u32 *code_array, u32 look_for); extern u32 pack_42_init_769FB0(u32 ctx); extern u32 pack_42_thing1_E3B7F4; extern u16 pack_42_word_E3B7A0; extern u32 pack_42_thing2_E3B804; extern u16 * pack_42_word_off_E3B748; char *unpack_42_off_E3B05411 = { "", «tdmhkpcgwbzfvjq», «eaiouy», «nrlsx», «0216345789», «SMTBRLNPKCDHGJWFVZXQ», «AEIOUY», " ", "x82x99xB8xB3xA9x81xBCx9Cx85x95xA1x9BxA8x84xB0x90x80xB6x94xA4x91xBAx9Ex9AxA0xB5xBDxBExA7x9Dx97xA5x9FxAAxB1x83x8C x93xB2x98xA6xA2xBBx88xADx96x8FxB4xA3x92xBFx87xB7x8Bx8DxB9x89x8Ax8ExAEx86xACxABxAF", "xD7xC3xD0xC5xE5xC4xE3xD1xE6xE7xECxE4xE8xEFxE9xD9xD8xEBxEAxE2xC2xE0xEDxC6xDBxE1xCExCFxC0xC1xC7xC8xC9xCAxCBxCCxCD xD2xD3xD4xD5xD6xDAxDCxDDxDExDFxEExF0xF1xF2xF3xF4xF5xF6xF7xF8xF9xFAxFBxFCxFDxFExFF", "x2Ex2Dx2Fx5Fx21x2Bx2Cx29x3Ax28x2Ax3Fx0Dx0Ax27x26x22x3Dx3Bx7Ex40x3Ex3Cx7Cx5Ex5Dx5Bx5Cx23x60x24x25x7Bx7Dx01x02x03 x04x05x06x07x08x09x0Bx0Cx0Ex0Fx10x11x12x13x14x15x16x17x18x19x1Ax1Bx1Cx1Dx1Ex1Fx7F" }; u8 Load_Byte(u32 ctx) { u32 *bytes; // eax@1 u8 b; // al@4 u8 **byte_ptr; // ecx@5 /* u32 i; u8 c333*4; memcpy (c, (void *)ctx, sizeof(c)); dword(c,0x1F6) = 0xCCCCCCCC; dword(c,0x1FA) = 0xCCCCCCCC; dword(c,0x202) = 0xCCCCCCCC; dword(c,0x20E) = 0xCCCCCCCC; dword(c,0x212) = 0xCCCCCCCC; dword(c,0x312) = 0xCCCCCCCC; dword(c,0x51E) = 0xCCCCCCCC; for (i = 0; i < 333*4; i++) { if ((i&15)==0) printf ("n%04X:", i); printf (" %02X", ci); } printf ("n"); */ bytes = (u32 *)dword(ctx,0x1FA); if ( *bytes ) { --*bytes; byte_ptr = (u8 **)dword(ctx,0x1F6); b = *(*byte_ptr)++; } else { ++dword(ctx,0x1FE); if ( dword(ctx,0x1FE) > 3 ) dword(ctx,0x202) = 1; b = 0; } return b; } void unpack_42_769E50(u32 ctx) { u32 v2; // al@2 for (; dword(ctx,8) <= 0x800000; byte(ctx,12) = (u8)v2 ) { dword(ctx,4) = (2 * dword(ctx,4) | byte(ctx,12) & 1) << 7; v2 = Load_Byte(ctx); dword(ctx,8) <<= 8; dword(ctx,4) |= v2 >> 1; } } u32 pack_42_bits_769F30(u32 ctx, u8 bits) { u32 result; // eax@1 u32 v4; // edi@1 unpack_42_769E50(ctx); v4 = dword(ctx,8) >> bits; result = dword(ctx,4) / v4; if ( result >> bits ) result = (1 << bits) — 1; dword(ctx,4) -= v4 * result; if ( (result + 1) >> bits ) dword(ctx,8) -= v4 * result; else dword(ctx,8) = v4; return result; } u32 unpack_42_769EA0(u32 ctx, u16 *word_array) { u32 v2; // ecx@1 u32 v3; // ebx@1 u32 v6; // eax@3 u32 result; // eax@5 u32 v8; // ecx@5 u32 v9; // ebp@5 unpack_42_769E50(ctx); v3 = dword(ctx,8) >> 12; v2 = dword(ctx,4) / v3; if ( v2 & 0xFFFFF000 ) v2 = 0xFFF; v6 = 1; if ( word_array1 <= v2 ) while ( word_array++v6 <= v2 ); v8 = word_arrayv6; v9 = word_arrayv6-1; result = v6 — 1; dword(ctx,4) -= v3 * v9; if ( v8 & 0xFFFFF000 ) dword(ctx,8) -= v3 * v9; else dword(ctx,8) = v3 * (v8 — v9); return result; } u32 unpack_42_769F30(u32 ctx, u32 bits) { u32 result; // eax@1 u32 v4; // edi@1 unpack_42_769E50(ctx); v4 = dword(ctx,8) >> bits; result = dword(ctx,4) / v4; if ( (u32)result >> bits ) result = (1 << bits) — 1; dword(ctx,4) -= v4 * result; if ( (u32)(result + 1) >> bits ) dword(ctx,8) -= v4 * result; else dword(ctx,8) = v4; return result; } u32 unpack_42_dword_76ADE0(u32 ctx, u32 *word_ptr, u32 a3) { u32 result; // eax@1 u32 v5; u32 v6; // esi@2 u32 v7; // eax@4 u32 v8; // edi@4 u32 v9; // ebp@7 u32 v10; // edi@7 u32 v11; // esi@7 u32 v15; // ebx@11 u32 v16; // edx@11 result = unpack_42_769EA0(ctx, (u16 *)word_ptr3); if ( result >= ((u32)1 << word_ptr1) ) { v6 = result — word_ptr2; if ( v6 >= word_ptr0 ) { if ( a3 || (v7 = unpack_42_dword_76ADE0(ctx, word_ptr, 1), v8 = word_ptr0, v7 > 32 — v8) ) { dword(ctx,0x202) = 1; return 0; } v6 = v8 + v7; } v11 = v6 — 1; v9 = 1 << v11; v10 = 0; if ( v6 > 1 ) { v5 = 16; do { v15 = __min ( v11 — v10, 16 ); v16 = (u16)unpack_42_769F30(ctx, v15) << (u8)v10; v10 += v15; v9 += v16; } while ( v10 < v11 ); } result = v9; } return result; } u32 unpack_42_76AEA0(u32 a1, u32 ctx) { u32 v2; // eax@1 u32 result; // eax@2 v2 = dword(ctx,0x20E); if ( *(u32 *)v2 >= a1 ) { *(u32 *)v2 -= a1; result = 1; } else { dword(ctx,0x202) = 1; result = 0; } return result; } void unpack_42_from_9944D0(u32 *where_from) { u32 v3, *where_to; // eax@2 v3 = where_from65 + 1; if ( v3 > where_from66 ) { v3 = where_from65 + 32; where_from66 = v3; if ( where_from64 == (u32)where_from ) where_from64 = 0; where_to = (u32 *)where_from64; malloc_719490((void * *)&where_to, 8 * v3); if ( !where_from64 ) memcpy(where_to, where_from, 8 * where_from65); where_from64 = (u32)where_to; } } u32 *unpack_42_from_951460(u32 *where_from) { u32 *result; // eax@3 if ( where_from65 >= where_from66 ) unpack_42_from_9944D0(where_from); result = (u32 *) (where_from64 + 8 * where_from65); where_from65++; if ( result ) { result0 = 0; result1 = 0; } return result; } void unpack_42_inc_85BEE0(u32 increment, u32 ctx) { u32 v3; // eax@1 u32 v4; // eax@2 u32 v5; // esi@4 u32 v7; // sp+0h bp-4h@1 v3 = increment + dword(ctx,0x204); if ( (u32)v3 > dword(ctx,0x208) ) { v4 = v3 + 0x1FF; dword(ctx,0x208) = v4; if (dword(ctx,0x200) == ctx) dword(ctx,0x200) = 0; v7 = dword(ctx,0x200); malloc_719490((void * *)&v7, v4); v5 = v7; if ( !dword(ctx,0x200) ) memcpy((void *)v7, (void *)ctx, dword(ctx,0x204)); dword(ctx,0x200) = v5; } } u32 unpack_42_byte_85BDC0(u32 ctx, u32 the_byte) { u32 str; // eax@3 u32 v4; // ecx@3 u32 v5; // eax@3 if ( dword(ctx,0x204) >= dword(ctx,0x208) ) unpack_42_inc_85BEE0(1, ctx); v4 = dword(ctx,0x204); v5 = dword(ctx,0x200); str = v4 + v5; dword(ctx,0x204) = v4 + 1; if (str) *(u8 *)str = *(u8 *)the_byte; return str; } void unpack_42_inc_76AD90(u32 ctx, u32 increment) { u32 *v2; // ecx@1 v2 = (u32 *)dword(ctx,0x1FA); dword(ctx,0x206) += increment; if ( *v2 < increment ) { dword(ctx,0x1FE) += increment — *v2; *(u8 **)dword(ctx,0x1F6) += *v2 — increment; *(u32 *)dword(ctx,0x1FA) = 0; if ( dword(ctx,0x1FE) > 3 ) dword(ctx,0x202) = 1; } else { *v2 -= increment; } } u32 *unpack_41_dword_715D70(u32 *a1, u32 a3) { u32 v3; // eax@1 u32 v6; // edi@3 u32 *result; // eax@6 u32 *v8; // eax@6 v3 = a12; if ( v3 >= a11 ) { if ( v3 >= 8 ) v6 = (((v3 >= 32) — 1) & -24) + 32; else v6 = 4; malloc_719490((void * *)a1, 16 * (v6 + v3)); a11 += v6; } memmove((void *) (16 * a3 + a10 + 16), (void *) (16 * a3 + a10), 16 * (a12 — a3)); v8 = (u32 *)a10; ++a12; result = v8 + 4 * a3; if ( result ) { result0 = 0; result1 = 0; result2 = 0; } return result; } u32 *unpack_42_dword_714540(u32 *a1, u32 a3, u32 a4) { u32 *result; // eax@1 result = unpack_41_dword_715D70(a1 + 1, a13); result0 = 0; result1 = a3; result2 = a4; return result; } u32 *unpack_42_5_7147B0(u32 * a1, u32 a3) { u32 *the_thing; // eax@1 u32 *v4; // esi@1 u32 *v5; // eax@1 v5 = unpack_41_dword_715D70(a1 + 1, a13); v4 = v5; v50 = 5; v51 = a3; the_thing = (u32 *)malloc(16); if ( the_thing ) { the_thing0 = -1; the_thing1 = 0; the_thing2 = 0; the_thing3 = 0; v42 = (u32)the_thing; } else { the_thing = 0; v42 = 0; } return the_thing; } u32 *unpack_42_3_7145D0(u32 *a1, const u8 *a2, u32 skype_id, u32 a5) { u32 *v5; // eax@1 u32 *v8; // esi@1 u8 *v9; // eax@4 v5 = unpack_41_dword_715D70(a1 + 1, *(a1 + 3)); v8 = v5; v50 = 3; v51 = skype_id; if ( !a2 ) a2 = unpack_42_CF2848; v53 = a5 + 1; if ( a5 ) { v9 = memchr(a2, 0, a5); if ( v9 ) *(v8 + 3) = (u32) (v9 — a2 + 1); } v82 = (u32)malloc(v83); memcpy((void *)v82, a2, v83); *(u8 *)(*(v8 + 3) + *(v8 + 2) — 1) = 0; return v8; } void unpack_42_6_7393A0(u32 *context, u32 a2) { u32 *v8; // ebp@1 u32 *v9; // eax@4 void *v10; // esi@14 u32 *v11; // eax@15 void *v13; // sp+8h bp-4h@14 v8 = context + 33; if ( a2 != *(context + 33) ) { if ( (u32)a2 > 32 ) { // if ( (u32)a2 > 0x3FFFFFFF ) __asm int 3; *(context + 34) = a2; if ( *(context + 32) == (u32)context ) *(context + 32) = 0; v13 = (void *)*(context + 32); malloc_719490(&v13, 4 * a2); v10 = v13; if ( !*(context + 32) ) { v11 = &a2; if ( a2 >= *v8 ) v11 = (u32 *)(context + 33); memcpy(v13, context, 4 * *v11); } *(context + 32) = (u32)v10; *v8 = a2; } else { if ( *(context + 32) != (u32)context ) { v9 = &a2; if ( a2 >= *v8 ) v9 = (u32 *)(context + 33); memcpy(context, (void *)*(context + 32), 4 * *v9); if ( *(context + 32) ) free((void *)*(context + 32)); *(context + 32) = (u32)context; } *v8 = a2; *(context + 34) = 32; } } } void unpack_42_end_context_720CA0(u32 *context) { if ( context32 != (u32)context ) { if ( context32 ) free((void *)context32); context32 = (u32)context; } context33 = 0; context34 = 32; } u32 *unpack_42_6_714690(u32 *a1, u32 dwords, u32 skype_id, u32 a4) { u32 *v6; // eax@1 u32 *v8; // esi@1 u32 v9; // ecx@2 u32 v13; // qax@1 v13 = 4 * dwords; // if (v13 < dwords) __asm int 3; v8 = unpack_41_dword_715D70(a1 + 1, *(a1 + 3)); v80 = 6; v81 = skype_id; v83 = 4 * dwords; v6 = (u32 *)malloc(v13); v82 = (u32)v6; if ( dwords ) { v9 = a4 — (u32)v6; do { *v6 = *(u32 *)((u8 *)v6 + v9); ++v6; --dwords; } while ( dwords ); } return v8; } void unpack_42_list_76B1B0(u32 ctx, u32 *into_list, u32 a3) { u32 *v4; // eax@3 u32 *v5; // esi@5 u32 *v6; // ecx@10 u32 v7; // ebx@10 u32 v8; // eax@11 u32 v9; // edi@14 u32 v10; // ebx@16 u32 v12; // eax@21 u16 **v13; // edi@25 u32 v14; // eax@26 u32 v15; // eax@27 u32 v17; // esi@27 u8 v18; // bl@29 u32 v20; // eax@38 u32 v21; // ebx@38 u32 v22; // esi@41 u32 increment; // esi@45 u32 v25; // eax@5 u32 v26; // eax@7 u32 v33; // ebx@17 u32 v34; // eax@23 u32 v35; // ST08_4@24 u32 *v36; // eax@24 char *v39; // ecx@29 u32 v40; // edi@43 u32 v41; // eax@45 u32 *v42; // eax@48 u32 *v44; // eax@48 u32 v45; // ecx@48 u32 v46; // eax@52 u32 v50; // sp+28h bp-9Ch@3 u32 v52; // sp+24h bp-A0h@5 u8 skype_id5; // sp+17h bp-ADh@8 u32 context37; // sp+2Ch bp-98h@41 if ( a3 >= dword(ctx,0x1F2) ) goto LABEL_2; v50 = 2; v4 = &v50; if ( a3 <= 2 ) v4 = &a3; v25 = *v4; v5 = &dword(ctx,18+160*v25); v52 = 0; if ( a3 ) { if ( v539 ) { v26 = unpack_42_dword_76ADE0(ctx, pack_42_thing1_E3B7F4, 0); v52 = v26; if (v26 > v539) { LABEL_2: dword(ctx,0x202) = 1; return; } } } v539 = 0; *(u32 *)(skype_id+1) = 0; if ( dword(ctx,0x202) == 0 ) { while ( 1 ) { if ( !v52 ) { v8 = unpack_42_769EA0(ctx, pack_42_word_E3B7A0); if ( !v8 ) return; if ( (u32)v8 > 6 ) { v10 = v8 — 6; v9 = unpack_42_dword_76ADE0(ctx, pack_42_thing1_E3B7F4, 0); if ( v10 ) { v33 = v5v10; memmove(v5 + 1, v5, 4 * v10); v50 = v33; } } else { if ( v8 != 6 ) v9 = v8 — 1; else v9 = unpack_42_dword_76ADE0(ctx, pack_42_thing1_E3B7F4, 0) + 5; } v7 = v50; *(u32 *)(skype_id+1) += v9; } else { v7 = v5v539*2+8; --v52; *(u32 *)(skype_id+1) = v5v539*2+7; pack_42_find_code_76A070(v5, v7); } if ( v539 < 16 ) { v6 = *(u32 **)(skype_id+1); v5v539*2+7 = *(u32 *)(skype_id+1); v58+2*v539++ = v7; } v12 = dword(ctx,0x20E); if ( *(u32 *)v12 < 16 ) goto LABEL_2; *(u32 *)v12 -= 16; switch ( v7 ) { case 0: v34 = unpack_42_dword_76ADE0(ctx, pack_42_thing2_E3B804, 0); unpack_42_dword_714540(into_list, *(u32 *)(skype_id+1), v34); goto LABEL_50; case 5: v35 = a3 + 1; v36 = unpack_42_5_7147B0(into_list, *(u32 *)(skype_id+1)); unpack_42_list_76B1B0(ctx, v36, v35); goto LABEL_50; case 3: v13 = pack_42_word_off_E3B748; v50 = 0; while ( 2 ) { v14 = dword(ctx,0x20E); if ( *(u32 *)v14 < 1 ) { LABEL_39: dword(ctx,0x202) = 1; goto LABEL_50; } --*(u32 *)v14; v17 = unpack_42_769EA0(ctx, v131); v13 = pack_42_word_off_E3B748 + 2 * v17; v15 = 0; if ( (*v13)1 != 0x1000 ) v15 = unpack_42_769EA0(ctx, v130); v39 = unpack_42_off_E3B054v17; v18 = v39v15; skype_id0 = v39v15; if ( dword(ctx,0x202) != 0 ) { v18 = 0; skype_id0 = 0; } if ( (u32)v50 >= dword(ctx,0x522) ) unpack_42_byte_85BDC0(ctx + 0x31E, (u32)skype_id); else *(u8 *)(v50 + dword(ctx,0x51E)) = v18; if ( !v18 ) break; v50++; } if ( !dword(ctx,0x202) ) unpack_42_3_7145D0(into_list, (const u8 *)dword(ctx,0x51E), *(u32 *)(skype_id+1), 0x7FFFFFFF); goto LABEL_49; case 6: v20 = unpack_42_dword_76ADE0(ctx, pack_42_thing2_E3B804, 0); v21 = v20; if ( (u32)v20 > 0x3FFFFFFF ) goto LABEL_39; if ( !unpack_42_76AEA0(4 * v20, ctx) ) goto LABEL_50; v22 = 0; context32 = (u32)context; context33 = 0; context34 = 32; unpack_42_6_7393A0(context, v21); if ( !v21 ) goto LABEL_44; break; case 4: v41 = unpack_42_dword_76ADE0(ctx, pack_42_thing2_E3B804, 0); increment = v41; unpack_42_76AEA0(v41, ctx); goto LABEL_46; case 1: v46 = unpack_42_dword_76ADE0(ctx, pack_42_thing2_E3B804, 0); increment = v46; if ( v46 > 8 ) dword(ctx,0x202) = 1; LABEL_46: if ( increment < -1 ) goto LABEL_47; goto LABEL_49; case 2: increment = 6; LABEL_47: if ( !dword(ctx,0x202) ) { v42 = unpack_42_from_951460(&dword(ctx,0x212)); v420 = (u32)into_list; v421 = into_list3; v44 = unpack_41_dword_715D70(into_list + 1, into_list3); v45 = *(u32 *)(skype_id+1); v440 = 2; v441 = v45; v442 = increment; v443 = v7; unpack_42_inc_76AD90(ctx, increment); } goto LABEL_49; default: goto LABEL_50; } do { if ( dword(ctx,0x202) ) { unpack_42_end_context_720CA0(context); return; } v40 = context32 + 4 * v22++; *(u32 *)v40 = unpack_42_dword_76ADE0(ctx, pack_42_thing2_E3B804, 0); } while ( v22 < v21 ); LABEL_44: unpack_42_6_714690(into_list, v21, *(u32 *)(skype_id+1), context32); unpack_42_end_context_720CA0(context); LABEL_49: LABEL_50: if ( dword(ctx,0x202) ) return; } } } void unpack_42_2_715200(u32 *the_thing, u32 a2, u32 a3) { if ( (the_thing0 == 3) || (the_thing0 == 4) || (the_thing0 == 6) ) { if ( the_thing2 ) free((void *)the_thing2); } else { if ( the_thing0 == 5 ) { if ( the_thing2 ) Load_Byte(the_thing2); } } the_thing0 = 2; the_thing2 = a2; the_thing3 = a3; } void unpack_42_4_715250(u32 bytes, u32 *the_thing, u32 blob) { if ( the_thing0 == 3 || the_thing0 == 4 || the_thing0 == 6 ) { if ( the_thing2 ) free((void *)the_thing2); } else { if ( the_thing0 == 5 ) { if ( the_thing2 ) Load_Byte(the_thing2); } } the_thing0 = 4; the_thing2 = (u32)malloc(bytes); the_thing3 = bytes; memcpy((void *)the_thing2, (void *)blob, bytes); } void unpack_42_1_7151B0(u32 *the_thing, u32 a2, u32 a3) { if ( the_thing0 == 3 || the_thing0 == 4 || the_thing0 == 6 ) { if ( the_thing2 ) free((void *)the_thing2); } else { if ( the_thing0 == 5 ) { if ( the_thing2 ) Load_Byte(the_thing2); } } the_thing0 = 1; the_thing2 = a2; the_thing3 = a3; } u32 unpack_42_76AEC0(u32 *list_size, u32 ctx, u32 *into_list) { u32 v3; u32 t2; u32 t3; u32 v7; // eax@5 u32 v8; // eax@9 u32 v9; // eax@13 u32 v10; // edx@13 u32 *v12; // ecx@18 u32 *the_thing; // esi@19 u32 v17; // eax@37 u32 v18; // eax@41 u8 v19; // al@13 u32 *v22; // ecx@18 u8 *v24; // ecx@27 u64 the_qword; // sp+14h bp-8h@28 dword(ctx,0x206) = 0; dword(ctx,0x202) = 0; dword(ctx,0x1FE) = 0; dword(ctx,0x20A) = -1; dword(ctx,0x20E) = (u32)list_size; if ( Load_Byte(ctx) != 0x42 ) return 0; v7 = dword(ctx,0x51E); if ( v7 != ctx + 0x31E ) { if ( v7 ) free((void *)dword(ctx,0x51E)); dword(ctx,0x51E) = ctx + 0x31E; } dword(ctx,0x522) = 0; dword(ctx,0x526) = 0x200; v8 = dword(ctx,0x312); if ( v8 != ctx + 0x212 ) { if ( v8 ) free((void *)dword(ctx,0x312)); dword(ctx,0x312) = ctx + 0x212; } dword(ctx,0x316) = 0; dword(ctx,0x31A) = 32; pack_42_init_769FB0(ctx); v19 = Load_Byte(ctx); byte(ctx,12) = v19; dword(ctx,4) = (u32)v19 >> 1; dword(ctx,8) = 128; unpack_42_list_76B1B0(ctx, into_list, 0); dword(ctx,8) >>= 1; unpack_42_769E50(ctx); v9 = dword(ctx,0x1FE); if ( v9 <= 3 ) { *(u8 **)dword(ctx,0x1F6) += v9 — 3; v10 = 3 — dword(ctx,0x1FE); *(u32 *)dword(ctx,0x1FA) += v10; dword(ctx,0x1FE) = 0; } else { dword(ctx,0x202) = 1; } v3 = 0; if ( dword(ctx,0x316) != 0 ) { while ( 1 ) { if ( dword(ctx,0x202) != 0 ) goto LABEL_37; v22 = (u32 *)dword(ctx,0x312) + 2 * v3; v12 = (u32 *)v220; if ( v221 >= v123 ) { the_thing = 0; } else { the_thing = (u32 *)v121 + 4 * v221; } t2 = the_thing2; t3 = the_thing3; if ( t2 > dword(ctx,0x206) ) { dword(ctx,0x202) = 1; goto LABEL_37; } if ( t3 == 1 ) break; if ( t3 == 2 ) { v24 = *(u8 **)dword(ctx,0x1F6); unpack_42_2_715200(the_thing, v240+((v241+((v242+(v243<<8))<<8))<<8),v244+(v245<<8)); } else { if ( t3 == 4 ) { unpack_42_4_715250(t2, the_thing, *(u32 *)dword(ctx,0x1F6)); LABEL_33: goto LABEL_34; } // __asm int 3; } LABEL_34: *(u8 **)dword(ctx,0x1F6) += t2; dword(ctx,0x206) -= t2; if ( ++v3 >= dword(ctx,0x316) ) goto LABEL_37; } the_qword = 0; if ( t2 ) { memcpy ((void *)&the_qword, *(u8 **)dword(ctx,0x1F6), t2); } unpack_42_1_7151B0(the_thing, (u32)the_qword, (u32)(the_qword>>32)); goto LABEL_33; } LABEL_37: v17 = dword(ctx,0x312); if ( v17 != ctx + 0x212 ) { if ( v17 != 0 ) free((void *)dword(ctx,0x312)); dword(ctx,0x312) = ctx + 0x212; } dword(ctx,0x316) = 0; dword(ctx,0x31A) = 32; v18 = dword(ctx,0x51E); if ( v18 != ctx + 0x31E ) { if ( v18 != 0 ) free((void *)dword(ctx,0x51E)); dword(ctx,0x51E) = ctx + 0x31E; } dword(ctx,0x522) = 0; dword(ctx,0x526) = 0x200; return dword(ctx,0x202) == 0; } u32 unpack_41_dword_896070(u32 *into_dword, u8 **packed_dword, u32 *packed_bytes) { u32 v5; // esi@1 u8 v8; // dl@3 *into_dword = 0; v5 = 0; while ( 1 ) { if ( (*packed_bytes)-- == 0 ) break; v8 = *(*packed_dword)++; *into_dword |= (v8 & 127) << v5; v5 += 7; if ( v8 <= 127 ) return 1; } return 0; } u32 * unpack_41_0_715D70(u32 *the_thing, u32 the_dword) { u32 v2; // eax@1 u32 v5; // edi@3 u32 * new_thing; // eax@6 u32 * v7; // eax@6 v2 = the_thing2; if ( v2 >= the_thing1 ) { if ( v2 >= 8 ) v5 = (((v2 >= 32) — 1) & -24) + 32; else v5 = 4; malloc_719490((void * *)the_thing, 16 * (v5 + v2)); *(the_thing + 1) += v5; } memmove((void *)(16 * the_dword + *the_thing + 16), (void *)(16 * the_dword + *the_thing), 16 * (*(the_thing + 2) — the_dword)); v7 = (u32 *)*the_thing; ++*(the_thing + 2); new_thing = v7 + 4 * the_dword; if ( new_thing ) { new_thing0 = 0; new_thing1 = 0; new_thing2 = 0; new_thing3 = 0; } return new_thing; } u32 unpack_42_ctx_init_76ACD0(u32 max_depth, u32 ctx, u32 packed_blob, u32 packed_bytes) { memset ((void *)ctx, 0xCC, 333*4); dword(ctx,0x1F2) = max_depth; dword(ctx,0x1FA) = packed_bytes; dword(ctx,0x1F6) = packed_blob; dword(ctx,0x312) = ctx + 0x212; dword(ctx,0x316) = 0; dword(ctx,0x31A) = 32; dword(ctx,0x51E) = ctx + 0x31E; dword(ctx,0x522) = 0; dword(ctx,0x526) = 0x200; return ctx; } void unpack_42_ctx_end_714D90(u32 ctx) { if ( dword(ctx,0x51E) != ctx + 0x31E ) { if ( dword(ctx,0x51E) ) free(*(void * *)(ctx + 0x51E)); dword(ctx,0x51E) = ctx + 0x31E; } dword(ctx,0x522) = 0; dword(ctx,0x526) = 0x200; if ( *(void * *)(ctx + 0x312) != (void *)(ctx + 0x212) ) { if ( *(void * *)(ctx + 0x312) ) free(*(void * *)(ctx + 0x312)); dword(ctx,0x312) = ctx + 0x212; } dword(ctx,0x316) = 0; dword(ctx,0x31A) = 32; *(u32 *)ctx = 0; } u32 unpack_4142(u32 *into_list, u8 **packed_blob, u32 *packed_bytes, u8 *pack_42, u32 max_depth, u32 *list_size); u32 unpack_41_715680(u8 **packed_blob, u32 *the_thing, u32 *packed_bytes, u32 max_depth, u32 *list_size) { u32 *v9; // ebx@8 u8 *v12; // eax@16 u32 v15; // ecx@17 u32 v25; // ebx@35 u32 tt; --*packed_bytes; if (*packed_bytes == 0) return 0; the_thing0 = *(*packed_blob)++; the_thing1 = 0; the_thing2 = 0; the_thing3 = 0; if (!unpack_41_dword_896070(the_thing + 1, packed_blob, packed_bytes)) return 0; switch (*the_thing) { case 0: return unpack_41_dword_896070(the_thing + 2, packed_blob, packed_bytes); case 1: v9 = packed_bytes; if (*packed_bytes < 8) return 0; the_thing2 = _bswap32(dword(*packed_blob,4)); the_thing3 = _bswap32(dword(*packed_blob,0)); *packed_blob += 8; *v9 -= 8; return 1; case 2: if (*packed_bytes < 6) return 0; the_thing2 = _bswap32(dword(*packed_blob,0)); the_thing3 = ntohs(word(*packed_blob,4)); *packed_blob += 6; *packed_bytes -= 6; return 1; case 3: v12 = memchr(*packed_blob, 0, *packed_bytes); if (!v12 || (v15 = (u32)(v12 — *packed_blob + 1), the_thing3 = (u32)(v12 — *packed_blob + 1), *list_size < v15)) return 0; *list_size -= v15; memcpy((void *)(the_thing2 = (u32)malloc(the_thing3)), *packed_blob, the_thing3); *packed_blob += the_thing3; *packed_bytes -= the_thing3; return 1; case 4: if (!unpack_41_dword_896070(the_thing+3, packed_blob, packed_bytes) || (*packed_bytes < the_thing3) || (*list_size < the_thing3)) return 0; *list_size -= the_thing3; memcpy((void *)(the_thing2 = (u32)malloc(the_thing3)), *packed_blob, the_thing3); *packed_blob += the_thing3; *packed_bytes -= the_thing3; return 1; default: if (*the_thing != 5) { if ((*the_thing != 6) || !unpack_41_dword_896070(&tt, packed_blob, packed_bytes) || (tt > *packed_bytes) || (tt >= 128*1024*1024) || (*list_size < (the_thing3 = 4*tt))) return 0; *list_size -= 4*tt; the_thing2 = (u32) malloc(the_thing3); if (!tt) return 1; for (v25 = 0; v25 < tt; v25++) { if (!unpack_41_dword_896070(&dword(the_thing2,v25*4), packed_blob, packed_bytes)) return 0; } return 1; } if (*list_size < 16) return 0; *list_size -= 16; if (the_thing2 = (u32) malloc (16)) { dword(the_thing2,0) = -1; dword(the_thing2,4) = 0; dword(the_thing2,8) = 0; dword(the_thing2,12) = 0; } return unpack_4142((u32 *)the_thing2, packed_blob, packed_bytes, 0, max_depth — 1, list_size); } } u32 unpack_4142(u32 *into_list, u8 **packed_blob, u32 *packed_bytes, u8 *pack_42, u32 max_depth, u32 *list_size) { u32 v13; u32 length; u32 *length_ptr; u32 max_length; u32 *the_thing; u32 v22; u32 n; u32 ctx333; if ( pack_42 ) *pack_42 = 0; if ( !max_depth || !*packed_bytes ) return 0; if ( **packed_blob == 0x41 ) { --*packed_bytes; ++*packed_blob; if ( unpack_41_dword_896070(&length, packed_blob, packed_bytes) ) { v22 = 100; length_ptr = (u32 *)&v22; if ( length <= 100 ) length_ptr = &length; max_length = into_list3 + *length_ptr; if ( into_list2 < max_length ) { into_list2 = max_length; malloc_719490((void **)into_list + 1, 16 * max_length); } n = 0; if ( !length ) return 1; while ( *list_size >= 16 ) { *list_size -= 16; the_thing = unpack_41_0_715D70(into_list+1, into_list3); if ( !unpack_41_715680(packed_blob, the_thing, packed_bytes, max_depth, list_size)) break; if ( ++n >= length ) return 1; } } return 0; } if ( pack_42 ) *pack_42 = 1; unpack_42_ctx_init_76ACD0(max_depth, (u32)ctx, (u32)packed_blob, (u32)packed_bytes); v13 = unpack_42_76AEC0(list_size, (u32)ctx, into_list) != 0; unpack_42_ctx_end_714D90((u32)ctx); return v13; } 15:58 03-06-2011#6 Нетленко
ага, котяра моя 15:59 03-06-2011#7 Нетленко
Куясе!!! Хацкеры наступают? Афигеть… 16:11 03-06-2011#8 Бобсон
походу Талалаев достал пальцы 16:13 03-06-2011#9 Oneson
пиздец сколько ошибок 16:28 03-06-2011#10 Остральный боланс
Талалаич меняет квалефекацыю, сменил катяхи на реверс-инжэнерниг… 16:47 03-06-2011#11 С.С.Г.
пальчики, блядь фу, блядь 16:48 03-06-2011#12 Sgt.Pecker
Лучше уж гавно 16:48 03-06-2011#13 ЙП000
нисагласен нащот length_ptr = (u32 *)&v22; 16:55 03-06-2011#14 Остральный боланс
не, код кстате очень похож на рабочий, просто метки не все пропесале… 17:04 03-06-2011#15 Остральный боланс
судя по тому што прописана метка skype_id, как одна из немногих, это видимо попытка выловить именна его… вероятно этот код использовалса злоумышленниками для дешифровки перехваченного сниффером трафека скайпа… 17:10 03-06-2011#16 СОФР
Нихуясе, Олег оказываеццо почесноку разбираеццо в этой хуйне. «дешифровки перехваченного сниффером трафека», вобля 17:19 03-06-2011#17 Остральный боланс
не понятно только зачем этот айдишнек только нужэн кому… ведь юзер в сети ужэ афторизован, тоесть логин и пароль ужэ прошли, смысл какой эти кости перемывать… но, видимо, там несколько иныя цэли преследовались… 18:08 03-06-2011#18 tarantula
хз.Лет пять назад легко закусывал пельменями с вилочки, зажатой пальцами правой ноги. В хорошей компании, на Волге, где-то на третий день. Сейчас не знаю, не пробовал. 18:09 03-06-2011#19 tarantula
а, здесь тусуются ботаны. Извините. 18:35 03-06-2011#20 Аватар
Просто Талалая заклинило и из него попер битый код с багами. А вообще Денис был хорошим роботом. 18:36 03-06-2011#21 Аватар
Просто охлаждение не справилось. 21:06 03-06-2011#22 Соломон Моисеевич Зеббович
тюююю левой! а вот ложкой и правой я про ногу 21:10 03-06-2011#23 Александр Гутин
лет пять назад ебал я одну акробатку из цирка. Вот где гибкость, я все хотел попросить, чтобы во время ебли она изъебнулась бы и лизала бы мне яйца. Она бы смогла. Но я постеснялся и не попросил. Пришлось ебать так. 21:21 03-06-2011#24 Noizz
Талалаев мощщен бля, билды скайпа компилирует 05:18 04-06-2011#25 NIHKIDERB
йа могу лехко ногу к уху приставить. а от руки за спиной сцепить одна сверху другая снизу — хуй там. |
Кстати, с легкостью могу пососать собственные свои ножные пальчики. Чисто для смеху. (с)
а ты можэш пасасать, падонагъ? ну или хатябы дастать пяткой ухо?