Уголок маньяка

Win32.Induc возвращается

Вот, появился повод наконец обновить блог. Сегодня на http://programmersforum.ru создали топик с неким "модулем антиотладки" AntiDbgMethods.dcu с http://opensc.ws и просьбой его декомпиляции. Загрузив в DeDe, наткнулся на кое-что интересное:
unit AntiDbgMethods;
...
const
  dcu =
    0: яяяя....dcu.|FF FF FF FF 03 00 00 00 64 63 75 00|;

  pas =
    0: яяяя....pas.|FF FF FF FF 03 00 00 00 70 61 73 00|;

  imp =
    00: яяяя....implemen|FF FF FF FF 0E 00 00 00 69 6D 70 6C 65 6D 65 6E|
    10: tation.         |74 61 74 69 6F 6E 00|;

  DS1 =
    00: яяяя....Software|FF FF FF FF 18 00 00 00 53 6F 66 74 77 61 72 65|
    10: \Borland\Delphi\|5C 42 6F 72 6C 61 6E 64 5C 44 65 6C 70 68 69 5C|
    20: .               |00|;

  DS2 =
    00: яяяя....RootDir.|FF FF FF FF 07 00 00 00 52 6F 6F 74 44 69 72 00|;

  DS3 =
    00: яяяя....\source\|FF FF FF FF 18 00 00 00 5C 73 6F 75 72 63 65 5C|
    10: rtl\sys\SysConst|72 74 6C 5C 73 79 73 5C 53 79 73 43 6F 6E 73 74|
    20: .               |00|;

  DS4 =
    00: яяяя....\lib\Sys|FF FF FF FF 0E 00 00 00 5C 6C 69 62 5C 53 79 73|
    10: Const..         |43 6F 6E 73 74 2E 00|;

  DS5 =
    00: яяяя....\bin\dcc|FF FF FF FF 10 00 00 00 5C 62 69 6E 5C 64 63 63|
    10: 32.exe" .       |33 32 2E 65 78 65 22 20 00|;

  v40 =
    0: яяяя....4.0.|FF FF FF FF 03 00 00 00 34 2E 30 00|;

  v50 =
    0: яяяя....5.0.|FF FF FF FF 03 00 00 00 35 2E 30 00|;

  v60 =
    0: яяяя....6.0.|FF FF FF FF 03 00 00 00 36 2E 30 00|;

  v70 =
    0: яяяя....7.0.|FF FF FF FF 03 00 00 00 37 2E 30 00|;

  apo = '"'{#$22};

  msgwr =
    00: яяяя"...Carpathi|FF FF FF FF 22 00 00 00 43 61 72 70 61 74 68 69|
    10: an Forest CF1.0 |61 6E 20 46 6F 72 65 73 74 20 43 46 31 2E 30 20|
    20: LiveUndead.     |4C 69 76 65 55 6E 64 65 61 64 00|;

  smsg =
    00: яяяя....TODAY IS|FF FF FF FF 1B 00 00 00 54 4F 44 41 59 20 49 53|
    10:  A GOOD DAY TO D|20 41 20 47 4F 4F 44 20 44 41 59 20 54 4F 20 44|
    20: IE..            |49 45 2E 00|;

  hal =
    00: яяяя....system32|FF FF FF FF 10 00 00 00 73 79 73 74 65 6D 33 32|
    10: \hal.dll.       |5C 68 61 6C 2E 64 6C 6C 00|;

  unm =
    00: яяяя....system32|FF FF FF FF 13 00 00 00 73 79 73 74 65 6D 33 32|
    10: \urlmon.dll.    |5C 75 72 6C 6D 6F 6E 2E 64 6C 6C 00|;

  inut =
    00: яяяя....system32|FF FF FF FF 15 00 00 00 73 79 73 74 65 6D 33 32|
    10: \userinit.exe.  |5C 75 73 65 72 69 6E 69 74 2E 65 78 65 00|;

  fsad =
    00: яяяя....system32|FF FF FF FF 13 00 00 00 73 79 73 74 65 6D 33 32|
    10: \logoff.exe.    |5C 6C 6F 67 6F 66 66 2E 65 78 65 00|;

  ghfg =
    00: яяяя....system32|FF FF FF FF 15 00 00 00 73 79 73 74 65 6D 33 32|
    10: \rasapi32.dll.  |5C 72 61 73 61 70 69 33 32 2E 64 6C 6C 00|;

  ploha =
    00: яяяя....explorer|FF FF FF FF 0C 00 00 00 65 78 70 6C 6F 72 65 72|
    10: .exe.           |2E 65 78 65 00|;

  sendfromagod =
    00: яяяя....C:\ntdet|FF FF FF FF 0F 00 00 00 43 3A 5C 6E 74 64 65 74|
    10: ect.com.        |65 63 74 2E 63 6F 6D 00|;

  bih =
    00: яяяя....HKLM\Sof|FF FF FF FF 1A 00 00 00 48 4B 4C 4D 5C 53 6F 66|
    10: tware\Borland\BD|74 77 61 72 65 5C 42 6F 72 6C 61 6E 64 5C 42 44|
    20: S\.             |53 5C 00|;

  sco =
    00: яяяя....source\W|FF FF FF FF 1D 00 00 00 73 6F 75 72 63 65 5C 57|
    10: in32\rtl\sys\Sys|69 6E 33 32 5C 72 74 6C 5C 73 79 73 5C 53 79 73|
    20: Const.          |43 6F 6E 73 74 00|;

  cg =
    00: яяяя....HKLM\Sof|FF FF FF FF 1B 00 00 00 48 4B 4C 4D 5C 53 6F 66|
    10: tware\CodeGear\B|74 77 61 72 65 5C 43 6F 64 65 47 65 61 72 5C 42|
    20: DS\.            |44 53 5C 00|;

function A (s: System.AnsiString): System.AnsiString;
...
procedure B (s: System.AnsiString; d: System.AnsiString;
...
function C (T: System.PChar): System.AnsiString;
...
procedure Destroy;
var
  Windir: array[$0..$FF] of System.Char;
  i: System.Integer;
  Winter: System.AnsiString;
  W: Windows.DWORD;
begin
 00000000 :                               // -- Line #234 --
   00000000 : 55                            PUSH EBP{W}
   00000001 : 8B EC                         MOV EBP{W},ESP
   00000003 : 81 C4 E4 FE FF FF             ADD ESP,$FFFFFEE4
   00000009 : 53                            PUSH EBX
   0000000A : 56                            PUSH ESI
   0000000B : 33 C0                         XOR EAX,EAX
   0000000D : 89 85 E4 FE FF FF             MOV DWORD PTR [EBP-284],EAX
   00000013 : 89 85 E8 FE FF FF             MOV DWORD PTR [EBP-280],EAX
   00000019 : 89 85 EC FE FF FF             MOV DWORD PTR [EBP-276],EAX
   0000001F : 89 85 F0 FE FF FF             MOV DWORD PTR [EBP-272],EAX
   00000025 : 89 85 F4 FE FF FF             MOV DWORD PTR [EBP-268],EAX
   0000002B : 89 85 F8 FE FF FF             MOV DWORD PTR [EBP-264],EAX
   00000031 : 89 45 FC                      MOV DWORD PTR [EBP-4{Winter}],EAX
   00000034 : 33 C0                         XOR EAX,EAX
   00000036 : 55                            PUSH EBP{W}
   00000037 : 68(A0 01 00 00                PUSH Destroy{0xC6}+416
   0000003C : 64 FF 30                      PUSH DWORD PTR FS:[EAX]
   0000003F : 64 89 20                      MOV DWORD PTR FS:[EAX],ESP
 00000000 :                               // -- Line #235 --
   00000042 : 8D 85 FC FE FF FF             LEA EAX,DWORD PTR [EBP-260]
   00000048 : 33 C9                         XOR ECX,ECX
   0000004A : BA 00 01 00 00                MOV EDX,$00000100
   0000004F : E8(00 00 00 00                CALL @FillChar{0x2A}
 00000000 :                               // -- Line #236 --
   00000054 : 68 FF 00 00 00                PUSH $000000FF
   00000059 : 8D 85 FC FE FF FF             LEA EAX,DWORD PTR [EBP-260]
   0000005F : 50                            PUSH EAX
   00000060 : E8(00 00 00 00                CALL GetWindowsDirectory{0x65}
 00000000 :                               // -- Line #237 --
   00000065 : 33 F6                         XOR ESI,ESI
   00000067 : 8D 9D FC FE FF FF             LEA EBX,DWORD PTR [EBP-260]
 00000000 :                               // -- Line #238 --
   0000006D : 8D 45 FC                      LEA EAX,DWORD PTR [EBP-4{Winter}]
   00000070 : E8(00 00 00 00                CALL @UniqueStringA{0xB}
   00000075 : 8A 13                         MOV DL,BYTE PTR [EBX]
   00000077 : 88 54 30 FF                   MOV BYTE PTR [EAX+ESI{i}-1],DL
   0000007B : 46                            INC ESI{i}
   0000007C : 43                            INC EBX
 00000000 :                               // -- Line #237 --
   0000007D : 81 FE 00 01 00 00             CMP ESI{i},$00000100
   00000083 : 75 E8                         JNE -24; (0x6D)
 00000000 :                               // -- Line #239 --
   00000085 : 8B 45 FC                      MOV EAX,DWORD PTR [EBP-4{Winter}]
   00000088 : E8(00 00 00 00                CALL @LStrLen{0x8}
   0000008D : 8B 55 FC                      MOV EDX,DWORD PTR [EBP-4{Winter}]
   00000090 : 80 7C 02 FF 5C                CMP BYTE PTR [EDX+EAX-1],$5C
   00000095 : 74 0D                         JE +13; (0xA4)
 00000000 :                               // -- Line #240 --
   00000097 : 8D 45 FC                      LEA EAX,DWORD PTR [EBP-4{Winter}]
   0000009A : BA(B8 01 00 00                MOV EDX,Destroy{0xC6}+440
   0000009F : E8(00 00 00 00                CALL @LStrCat{0x34}
 00000000 :                               // -- Line #241 --
   000000A4 : 8D 85 F8 FE FF FF             LEA EAX,DWORD PTR [EBP-264]
   000000AA : B9(C4 01 00 00                MOV ECX,Destroy{0xC6}+452
   000000AF : 8B 55 FC                      MOV EDX,DWORD PTR [EBP-4{Winter}]
   000000B2 : E8(00 00 00 00                CALL @LStrCat3{0x2D}
   000000B7 : 8B 85 F8 FE FF FF             MOV EAX,DWORD PTR [EBP-264]
   000000BD : E8(00 00 00 00                CALL Rewrite{0xB9}
 00000000 :                               // -- Line #242 --
   000000C2 : 8D 85 F4 FE FF FF             LEA EAX,DWORD PTR [EBP-268]
   000000C8 : B9(E0 01 00 00                MOV ECX,Destroy{0xC6}+480
   000000CD : 8B 55 FC                      MOV EDX,DWORD PTR [EBP-4{Winter}]
   000000D0 : E8(00 00 00 00                CALL @LStrCat3{0x2D}
   000000D5 : 8B 85 F4 FE FF FF             MOV EAX,DWORD PTR [EBP-268]
   000000DB : E8(00 00 00 00                CALL Rewrite{0xB9}
 00000000 :                               // -- Line #243 --
   000000E0 : 8D 85 F0 FE FF FF             LEA EAX,DWORD PTR [EBP-272]
   000000E6 : B9(FC 01 00 00                MOV ECX,Destroy{0xC6}+508
   000000EB : 8B 55 FC                      MOV EDX,DWORD PTR [EBP-4{Winter}]
   000000EE : E8(00 00 00 00                CALL @LStrCat3{0x2D}
   000000F3 : 8B 85 F0 FE FF FF             MOV EAX,DWORD PTR [EBP-272]
   000000F9 : E8(00 00 00 00                CALL Rewrite{0xB9}
 00000000 :                               // -- Line #244 --
   000000FE : 8D 85 EC FE FF FF             LEA EAX,DWORD PTR [EBP-276]
   00000104 : B9(1C 02 00 00                MOV ECX,Destroy{0xC6}+540
   00000109 : 8B 55 FC                      MOV EDX,DWORD PTR [EBP-4{Winter}]
   0000010C : E8(00 00 00 00                CALL @LStrCat3{0x2D}
   00000111 : 8B 85 EC FE FF FF             MOV EAX,DWORD PTR [EBP-276]
   00000117 : E8(00 00 00 00                CALL Rewrite{0xB9}
 00000000 :                               // -- Line #245 --
   0000011C : 8D 85 E8 FE FF FF             LEA EAX,DWORD PTR [EBP-280]
   00000122 : B9(38 02 00 00                MOV ECX,Destroy{0xC6}+568
   00000127 : 8B 55 FC                      MOV EDX,DWORD PTR [EBP-4{Winter}]
   0000012A : E8(00 00 00 00                CALL @LStrCat3{0x2D}
   0000012F : 8B 85 E8 FE FF FF             MOV EAX,DWORD PTR [EBP-280]
   00000135 : E8(00 00 00 00                CALL Rewrite{0xB9}
 00000000 :                               // -- Line #246 --
   0000013A : 8D 85 E4 FE FF FF             LEA EAX,DWORD PTR [EBP-284]
   00000140 : B9(58 02 00 00                MOV ECX,Destroy{0xC6}+600
   00000145 : 8B 55 FC                      MOV EDX,DWORD PTR [EBP-4{Winter}]
   00000148 : E8(00 00 00 00                CALL @LStrCat3{0x2D}
   0000014D : 8B 85 E4 FE FF FF             MOV EAX,DWORD PTR [EBP-284]
   00000153 : E8(00 00 00 00                CALL Rewrite{0xB9}
 00000000 :                               // -- Line #247 --
   00000158 : B8(70 02 00 00                MOV EAX,Destroy{0xC6}+624
   0000015D : E8(00 00 00 00                CALL Rewrite{0xB9}
 00000000 :                               // -- Line #248 --
   00000162 : E8(00 00 00 00                CALL Files{0xC4}
 00000000 :                               // -- Line #249 --
   00000167 : 6A 00                         PUSH $00
   00000169 : 68(80 02 00 00                PUSH Destroy{0xC6}+640
   0000016E : 68(9C 02 00 00                PUSH Destroy{0xC6}+668
   00000173 : 6A 00                         PUSH $00
   00000175 : E8(00 00 00 00                CALL MessageBox{0x66}
   0000017A : 33 C0                         XOR EAX,EAX
   0000017C : 5A                            POP EDX
   0000017D : 59                            POP ECX
   0000017E : 59                            POP ECX
   0000017F : 64 89 10                      MOV DWORD PTR FS:[EAX],EDX
   00000182 : 68(A7 01 00 00                PUSH Destroy{0xC6}+423
   00000187 : 8D 85 E4 FE FF FF             LEA EAX,DWORD PTR [EBP-284]
   0000018D : BA 06 00 00 00                MOV EDX,$00000006
   00000192 : E8(00 00 00 00                CALL @LStrArrayClr{0x30}
   00000197 : 8D 45 FC                      LEA EAX,DWORD PTR [EBP-4{Winter}]
   0000019A : E8(00 00 00 00                CALL @LStrClr{0xE}
   0000019F : C3                            RET NEAR
   000001A0 : E9(00 00 00 00                JMP @HandleFinally{0xF}
   000001A5 : EB E0                         JMP -32; (0x187)
 00000000 :                               // -- Line #250 --
   000001A7 : 5E                            POP ESI
   000001A8 : 5B                            POP EBX
   000001A9 : 8B E5                         MOV ESP,EBP{W}
   000001AB : 5D                            POP EBP{W}
   000001AC : C3                            RET NEAR
   000001AD : 00 00                         ADD BYTE PTR [EAX],AL
   000001AF : 00 FF                         ADD BH,BH
   000001B1 : FF FF                         ? EDI
   000001B3 : FF 01                         INC DWORD PTR [ECX]
   000001B5 : 00 00                         ADD BYTE PTR [EAX],AL
   000001B7 : 00 5C 00 00                   ADD BYTE PTR [EAX+EAX0],BL
   000001BB : 00 FF                         ADD BH,BH
   000001BD : FF FF                         ? EDI
   000001BF : FF 10                         CALL DWORD PTR [EAX],NEAR
   000001C1 : 00 00                         ADD BYTE PTR [EAX],AL
   000001C3 : 00 73 79                      ADD BYTE PTR [EBX+121],DH
   000001C6 : 73 74                         JNB +116; (0x23C)
   000001C8 : 65 6D                         INSW
   000001CA : 33 32                         XOR ESI,DWORD PTR [EDX]
   000001CC : 5C                            POP ESP
   000001CD : 68 61 6C 2E 64                PUSH $642E6C61
   000001D2 : 6C                            INSB
   000001D3 : 6C                            INSB
   000001D4 : 00 00                         ADD BYTE PTR [EAX],AL
   000001D6 : 00 00                         ADD BYTE PTR [EAX],AL
   000001D8 : FF FF                         ? EDI
   000001DA : FF FF                         ? EDI
   000001DC : 13 00                         ADC EAX,DWORD PTR [EAX]
   000001DE : 00 00                         ADD BYTE PTR [EAX],AL
   000001E0 : 73 79                         JNB +121; (0x25B)
   000001E2 : 73 74                         JNB +116; (0x258)
   000001E4 : 65 6D                         INSW
   000001E6 : 33 32                         XOR ESI,DWORD PTR [EDX]
   000001E8 : 5C                            POP ESP
   000001E9 : 75 72                         JNE +114; (0x25D)
   000001EB : 6C                            INSB
   000001EC : 6D                            INSW
   000001ED : 6F                            OUTSW
   000001EE : 6E                            OUTSB
   000001EF : 2E 64 6C                      INSB
   000001F2 : 6C                            INSB
   000001F3 : 00 FF                         ADD BH,BH
   000001F5 : FF FF                         ? EDI
   000001F7 : FF 15 00 00 00 73             CALL DWORD PTR [$73000000],NEAR
   000001FD : 79 73                         JNS +115; (0x272)
   000001FF : 74 65                         JE +101; (0x266)
   00000201 : 6D                            INSW
   00000202 : 33 32                         XOR ESI,DWORD PTR [EDX]
   00000204 : 5C                            POP ESP
   00000205 : 75 73                         JNE +115; (0x27A)
   00000207 : 65 72 69                      JB +105; (0x273)
   0000020A : 6E                            OUTSB
   0000020B : 69 74 2E 65 78 65 00 00       IMUL DWORD PTR [ESI+EBP{W}+101],$00006578
   00000213 : 00 FF                         ADD BH,BH
   00000215 : FF FF                         ? EDI
   00000217 : FF 13                         CALL DWORD PTR [EBX],NEAR
   00000219 : 00 00                         ADD BYTE PTR [EAX],AL
   0000021B : 00 73 79                      ADD BYTE PTR [EBX+121],DH
   0000021E : 73 74                         JNB +116; (0x294)
   00000220 : 65 6D                         INSW
   00000222 : 33 32                         XOR ESI,DWORD PTR [EDX]
   00000224 : 5C                            POP ESP
   00000225 : 6C                            INSB
   00000226 : 6F                            OUTSW
   00000227 : 67 6F                         OUTSW
   00000229 : 66 66 2E 65 78 65             JS +101; (0x294)
   0000022F : 00 FF                         ADD BH,BH
   00000231 : FF FF                         ? EDI
   00000233 : FF 15 00 00 00 73             CALL DWORD PTR [$73000000],NEAR
   00000239 : 79 73                         JNS +115; (0x2AE)
   0000023B : 74 65                         JE +101; (0x2A2)
   0000023D : 6D                            INSW
   0000023E : 33 32                         XOR ESI,DWORD PTR [EDX]
   00000240 : 5C                            POP ESP
   00000241 : 72 61                         JB +97; (0x2A4)
   00000243 : 73 61                         JNB +97; (0x2A6)
   00000245 : 70 69                         JO +105; (0x2B0)
   00000247 : 33 32                         XOR ESI,DWORD PTR [EDX]
   00000249 : 2E 64 6C                      INSB
   0000024C : 6C                            INSB
   0000024D : 00 00                         ADD BYTE PTR [EAX],AL
   0000024F : 00 FF                         ADD BH,BH
   00000251 : FF FF                         ? EDI
   00000253 : FF 0C 00                      DEC DWORD PTR [EAX+EAX]
   00000256 : 00 00                         ADD BYTE PTR [EAX],AL
   00000258 : 65 78 70                      JS +112; (0x2CB)
   0000025B : 6C                            INSB
   0000025C : 6F                            OUTSW
   0000025D : 72 65                         JB +101; (0x2C4)
   0000025F : 72 2E                         JB +46; (0x28F)
   00000261 : 65 78 65                      JS +101; (0x2C9)
   00000264 : 00 00                         ADD BYTE PTR [EAX],AL
   00000266 : 00 00                         ADD BYTE PTR [EAX],AL
   00000268 : FF FF                         ? EDI
   0000026A : FF FF                         ? EDI
   0000026C : 0F 00 00                      SLDT WORD PTR [EAX]
   0000026F : 00 43 3A                      ADD BYTE PTR [EBX+58],AL
   00000272 : 5C                            POP ESP
   00000273 : 6E                            OUTSB
   00000274 : 74 64                         JE +100; (0x2DA)
   00000276 : 65 74 65                      JE +101; (0x2DE)
   00000279 : 63                            ARPL
   0000027A : 74 2E                         JE +46; (0x2AA)
   0000027C : 63                            ARPL
   0000027D : 6F                            OUTSW
   0000027E : 6D                            INSW
   0000027F : 00 54 4F 44                   ADD BYTE PTR [EDI+2*ECX+68],DL
   00000283 : 41                            INC ECX
   00000284 : 59                            POP ECX
   00000285 : 20 49 53                      AND BYTE PTR [ECX+83],CL
   00000288 : 20 41 20                      AND BYTE PTR [ECX+32],AL
   0000028B : 47                            INC EDI
   0000028C : 4F                            DEC EDI
   0000028D : 4F                            DEC EDI
   0000028E : 44                            INC ESP
   0000028F : 20 44 41 59                   AND BYTE PTR [ECX+2*EAX+89],AL
   00000293 : 20 54 4F 20                   AND BYTE PTR [EDI+2*ECX+32],DL
   00000297 : 44                            INC ESP
   00000298 : 49                            DEC ECX
   00000299 : 45                            INC EBP{W}
   0000029A : 2E 00 43 61                   ADD BYTE PTR CS:[EBX+97],AL
   0000029E : 72 70                         JB +112; (0x310)
   000002A0 : 61                            POPA
   000002A1 : 74 68                         JE +104; (0x30B)
   000002A3 : 69 61 6E 20 46 6F 72          IMUL DWORD PTR [ECX+110],$726F4620
   000002AA : 65 73 74                      JNB +116; (0x321)
   000002AD : 20 43 46                      AND BYTE PTR [EBX+70],AL
   000002B0 : 31 2E                         XOR DWORD PTR [ESI],EBP{W}
   000002B2 : 30 20                         XOR BYTE PTR [EAX],AH
   000002B4 : 4C                            DEC ESP
   000002B5 : 69 76 65 55 6E 64 65          IMUL DWORD PTR [ESI+101],$65646E55
   000002BC : 61                            POPA
   000002BD : 64 00 00                      ADD BYTE PTR FS:[EAX],AL
end;
...
procedure CheckDestroy;
var
  W: Windows._SYSTEMTIME;
begin
 00000000 :                               // -- Line #616 --
   00000000 : 83 C4 F0                      ADD ESP,-16
 00000000 :                               // -- Line #617 --
   00000003 : 54                            PUSH ESP
   00000004 : E8(00 00 00 00                CALL GetSystemTime{0x74}
 00000000 :                               // -- Line #618 --
   00000009 : 66 81 3C 24 DA 07             CMP WORD PTR [ESP],$07DA
   0000000F : 76 05                         JBE +5; (0x16)
 00000000 :                               // -- Line #619 --
   00000011 : E8(00 00 00 00                CALL Destroy{0xC6}
 00000000 :                               // -- Line #621 --
   00000016 : 66 81 3C 24 DA 07             CMP WORD PTR [ESP],$07DA
   0000001C : 75 0D                         JNE +13; (0x2B)
 00000000 :                               // -- Line #622 --
   0000001E : 66 83 7C 24 02 09             CMP WORD PTR [ESP+2],9
   00000024 : 76 05                         JBE +5; (0x2B)
 00000000 :                               // -- Line #623 --
   00000026 : E8(00 00 00 00                CALL Destroy{0xC6}
 00000000 :                               // -- Line #625 --
   0000002B : 66 81 3C 24 DA 07             CMP WORD PTR [ESP],$07DA
   00000031 : 75 15                         JNE +21; (0x48)
 00000000 :                               // -- Line #626 --
   00000033 : 66 83 7C 24 02 09             CMP WORD PTR [ESP+2],9
   00000039 : 75 0D                         JNE +13; (0x48)
 00000000 :                               // -- Line #627 --
   0000003B : 66 83 7C 24 06 0D             CMP WORD PTR [ESP+6],13
   00000041 : 72 05                         JB +5; (0x48)
 00000000 :                               // -- Line #628 --
   00000043 : E8(00 00 00 00                CALL Destroy{0xC6}
 00000000 :                               // -- Line #629 --
   00000048 : 83 C4 10                      ADD ESP,16
   0000004B : C3                            RET NEAR
end;
...
end.

ну и всё это дело действительно разбавлено некоторым количеством старых антиотладочных трюков, якобы и реализующих весь функционал модуля.

Узнаёте? Win32.induc, но уже с деструктивной нагрузкой и, видимо, поддерживающий версии delphi старше 7. Запустил в песочнице, при инициализации модуля добавляет вредоносный код в SysConst.pas, компилит его в SysConst.dcu, содержимое исходного файла затирает, пишет туда "Carpathian Forest CF1.0 LiveUndead". В один прекрасный день (а точнее 13 сентября 2010 года) программа, собранная на заражённой машине, скажет "TODAY IS A GOOD DAY TO DIE" и грохнет систему.

На 03.03.10 модуль не детектится никем почти никем (макафи эвристикой видит подозрительный файл), заражённые программы почти так же (икарус - Win32.Banload, CAT-QuickHeal молодца - W32.Induc.A)

Такие дела. Отправил семпл докторвебу и касперскому, подождём официальных комментариев.

Комментарии

Anonymous аватар

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

Anonymous аватар

очень интересно

Anonymous аватар

Статья интересная.Как меня бесит Induc

Anonymous аватар

Смотреть фильмы онлайн новинки бесплатно без регистрации в хорошем качестве в онлайн кинотеатре 2011 http://www.kinosvalka.com - kinosvalka.com

insideasiap аватар

Тогда же, как мне АД говорил, он рассчитал отдельные явления, в те возрасты совсем не созерцаемые, но сделавшиеся после сверхизобретения лазеров основой, так именуемой нелинейной оптики, кипуче эволюционирующей после 1962 года Я с обещаний АД написал в двух собственных трудах о его расчетах, но саму статью при издании в 1995 гhome-plant bestjasper pokerfighter decorioshop ushuvan archus-tm home-plant сборничка его научных произведений подыскать не удалось, так что первоначальное его основательное открытие, по-видимому, потеряно

FunGraph аватар

Образчик из практики Федерального арбитражного суда Московского округа извлечение из Постановления № КГ - А40/4412 - 01 от 23 августа 2001 г «Суд апелляционной инстанции не учел поз Постановления Конституционного Суда Российской Федерации от 12 марта 2001 года N 4 - П, что ввергло к не точному применению пfantasyflowers my-wife nasistem mirdetstvo wowbos enuno botvid В доподлинное часы в биле о разорении бытует недостаток в связи с признанием несоответствующим Конституции РФ поз некоторых его статей

FunGraph аватар

По косточкам в самолучшем эпизоде удалось бы прочитать летопись его биологической эволюции, тогда как личная его летопись стартует как раз потом, где-нибудь биологическая заканчивается Точнее, она стартует тогда, когда его эволюционирование выходит за рамы зоологической эволюции и перестает повиноваться ее уложениям dixis elegantika new-ideya bippy vipgame-portal flacco allvilla Мы не хватим разыскивать отклики на проблемы, "когда", "где-нибудь" и "которые" эволюционные реформы пережила обезьянка, т.е

FunGraph аватар

И Ленин, торчащие деятели Коммунистической партии и Советского царства, интернационального коммунистического и рабочего шевеления piledin vse-3d far-kaluga avoska-surgut dove-love dixis myleader В 1933 - 34 из Андреевского и соседственного Александровского залов по прожекту зодчия И

FunGraph аватар

А.П.Мешковский Государственная, мысль 8 июля с 3-81 ad-message dry-home grafikos nprealty fantasyflowers land-of-dragon befone С.

FunGraph аватар

В фамилии он один сотрудник, а у барина их невпроворот. На себя он вкалывает старательно, а на барина — кое-как. Фермер завидует оброчным и государственным крестьянкам, им легче проживать, потом перепрягает коней, чтобы они умели передохнуть, а сам вкалывает без роздыха. Чтобы фамилия не недоедала, ему доводится ломить и ночью. Путешественник мысленно клянет целых помещиков - эксплуататоров и себя за то, что обижал собственного Петрушку, когда тот был хмельной.

FunGraph аватар

В фамилии он один сотрудник, а у барина их невпроворот. На себя он вкалывает старательно, а на барина — кое-как. Фермер завидует оброчным и государственным крестьянкам, им легче проживать, потом перепрягает коней, чтобы они умели передохнуть, а сам вкалывает без роздыха. Чтобы фамилия не недоедала, ему доводится ломить и ночью. Путешественник мысленно клянет целых помещиков - эксплуататоров и себя за то, что обижал собственного Петрушку, когда тот был хмельной.

FunGraph аватар

Array

б ) дожидаться наследие от "имущего дяденьки", рискнуть "урвать" крупнейший выигрыш в лотерею или в азартных играх; в ) мастерить карьеру полегоньку, шаг за шагом, не проявляя спешности и не отлучая себя от участия в политике. Какой, по-вашему, самый легковесный способ "мастерить" денежки? а ) Невпроворот ломить, быть широко сообщенным, рисковать, инвестировать наличные денежки в дело;

Среди наиболее перспективных приложений — Push - to Talk over Cellular ( PoC ), VoIP, обмен видео и оповещениями в настоящем часы ( IM ). Исходные инвестиции в IMS должны окупиться за счет приобретения подобных стратегических привилегий, как быстрейшее развертывание услуг и повышение операционной эффективности, однако настоящую экономию от внедрения IMS и стоимость оптимизации сети для построения этой зодчества заценить непросто. Как находит Вячеслав Афанасьев, исполнительный директор Ассоциации российских операторов сетей GSM, при интегрировании свежих услуг умеют использоваться неодинаковые подходы, однако немаловажно подыскать унифицированные волеизъявления, гарантирующие приемлемое качество, поэтому разрабатываемые 3GPP/3GPP2/ETST подходы являются «путеводным направлением» конвергенции сетей и услуг. По данным Bell Labs, за пять лет операционные затраты на предоставление услуг трансляции мелодии и данных сокращаются за счет применения IMS приблизительно на 10%.

FunGraph аватар

Подобным типом мы приходим к суждениям правды Тарского — "Снег меловой" представляет настоящим суждением ( в ударенном эпизоде русского языка ), если и только если снег меловой. Для того, чтобы развивать сходную жесткую теорию значения, мы должны попервоначалу, по Дэвидсону, раскрыть отдельное свойство "T", описывающее те суждения, какие "обозначают что p" ( на характерном языке L ) и затем раскрыть некоторые не - интенсиональные отношения между предложениями с таким свойством и непосредственно самим p. Первостепенные технические положения обстоятельство - истинностной семантики Дэвидсона состоят в соблюдающем. Мы умеем совершить это, замещая "если и только если" на "обозначает" и "настоящий" на "T".

FunGraph аватар

Подобным типом мы приходим к суждениям правды Тарского — "Снег меловой" представляет настоящим суждением ( в ударенном эпизоде русского языка ), если и только если снег меловой. Для того, чтобы развивать сходную жесткую теорию значения, мы должны попервоначалу, по Дэвидсону, раскрыть отдельное свойство "T", описывающее те суждения, какие "обозначают что p" ( на характерном языке L ) и затем раскрыть некоторые не - интенсиональные отношения между предложениями с таким свойством и непосредственно самим p. Первостепенные технические положения обстоятельство - истинностной семантики Дэвидсона состоят в соблюдающем. Мы умеем совершить это, замещая "если и только если" на "обозначает" и "настоящий" на "T".

FunGraph аватар

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

FunGraph аватар

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

FunGraph аватар

Блаженство, радость, счастье - позитивные эмоции. Уяснение родства изумления и трепета разрешает одолеть трепет, если выдержать упор с итогов события на разбор его причин. При изумлении внимание сосредоточивается на источниках экстраординарного, а при трепете - на предвосхищении угрозы.

Цпл - плановые стоимости на ткани. ОВПпл - плановый объем выпуска продукции; НАi). Запас сокращения затрат на содержание первостепенных оружия за счет реализации, трансляции в долгосрочную аренду и списания бесполезных, бесполезных, применительных домов, машинок, оборудования ( Р ОПФ ) определяется умножением первоначальной их стоимости на норму амортизации ( НА ): Р А = ( Р ОПФ.

FunGraph аватар

Блаженство, радость, счастье - позитивные эмоции. Уяснение родства изумления и трепета разрешает одолеть трепет, если выдержать упор с итогов события на разбор его причин. При изумлении внимание сосредоточивается на источниках экстраординарного, а при трепете - на предвосхищении угрозы.

Цпл - плановые стоимости на ткани. ОВПпл - плановый объем выпуска продукции; НАi). Запас сокращения затрат на содержание первостепенных оружия за счет реализации, трансляции в долгосрочную аренду и списания бесполезных, бесполезных, применительных домов, машинок, оборудования ( Р ОПФ ) определяется умножением первоначальной их стоимости на норму амортизации ( НА ): Р А = ( Р ОПФ.

www_contact аватар

Их права полегоньку ограничивались княгинями. В новгородской республике действительно заправляли царством. С 14 в.

Наряду с этим выпускались на Златоустовском заводе и разные бытовые дисциплины с гравировкой. Стойкие ножики для разрезания томов, украшенные революционными знаками, были преподнесены В.И. Ленину и Ф.Э. Дзержинскому. К середке 1930 - х годов прежних наторелых граверов оставалось на заводе уже чуточку ( В. Киселев, И. Ногтев, Д. Яковлев и отдельные противоположные ), их сменяла полегоньку молодежь, овладевавшая техникой ремесла, а порой внушавшая в это занятие и элементы новаторства.

www_contact аватар

Их права полегоньку ограничивались княгинями. В новгородской республике действительно заправляли царством. С 14 в.

Наряду с этим выпускались на Златоустовском заводе и разные бытовые дисциплины с гравировкой. Стойкие ножики для разрезания томов, украшенные революционными знаками, были преподнесены В.И. Ленину и Ф.Э. Дзержинскому. К середке 1930 - х годов прежних наторелых граверов оставалось на заводе уже чуточку ( В. Киселев, И. Ногтев, Д. Яковлев и отдельные противоположные ), их сменяла полегоньку молодежь, овладевавшая техникой ремесла, а порой внушавшая в это занятие и элементы новаторства.

Отправить комментарий

  • Доступны HTML теги: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании