forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   Потестируйте (http://forum.boolean.name/showthread.php?t=11972)

Tronix 20.02.2010 18:38

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

UPD: Требует почему-то библиотеку для работы с CLX. Брать здесь: http://tronix286.pochta.ru/qtintf70.dll

Crystal 20.02.2010 18:44

Ответ: Потестируйте
 
Возбудитель для касперского.

Tronix 20.02.2010 18:46

Ответ: Потестируйте
 
Цитата:

Сообщение от Crys3D (Сообщение 138395)
Возбудитель для касперского.

Непонял? Вы имеете ввиду что типа мол вирус? Я гарантирую что не вирус.

SBJoker 20.02.2010 19:32

Ответ: Потестируйте
 
Вложений: 1
Вот такая реакция:
Вложение 9148
Windows7 x64 Home Premium

З.Ы. Вы уверены что патчить цветовой профиль устройства хорошая идея?

jimon 20.02.2010 19:51

Ответ: Потестируйте
 
хорошая манера - возможность указывать патчеру что патчить

Tronix 20.02.2010 19:54

Ответ: Потестируйте
 
Цитата:

Сообщение от SBJoker (Сообщение 138404)
Вот такая реакция:
Вложение 9148
Windows7 x64 Home Premium

З.Ы. Вы уверены что патчить цветовой профиль устройства хорошая идея?

Цветовой профиль устройства?? Нет, я хотел написать программу для патчинга программ, скомпилированных Intel Compiler. Всмысле чтобы блокировать так называемый "диспетчер процессора". Потому что он если не GenuineIntel, блокирует инструкции SSE, SSE2, и идет по пути i386. Для владельцев цпу от AMD пишу прогу.
Странно что вылетела с такой ошибкой? Что за dll такая.. Писал в дельфи обычной 7. Странно, ща загуглим что такое за длл

Tronix 20.02.2010 19:59

Ответ: Потестируйте
 
Цитата:

Сообщение от jimon (Сообщение 138412)
хорошая манера - возможность указывать патчеру что патчить

Дык все есть. Прога ищет некую сигнатуру в файлах exe и dll, если находит - добавляет имя файла в checklistbox. Потом если юзверю поставит галки будет патчить. Алгоритм примерно такой, только просто с гуи и рекурсивным обходом каталогов:

PHP код:

Type
  BufferType    
= Array[0..MaxLongInt-1of Byte;
  
pBuffer       = ^BufferType;

Const
      
Id : Array [0..23,0..7of Byte = (  // [7] - length, 01 - replace char
      
($3d,$47,$65,$6e,$75,$00,$00,$05),($3d,$69,$6e,$65,$49,$00,$00,$05),($3d,$6e,$74,$65,$6c,$00,$00,$05), //cmp eax
      
($81,$fb,$47,$65,$6e,$75,$00,$06),($81,$fb,$69,$6e,$65,$49,$00,$06),($81,$fb,$6e,$74,$65,$6c,$00,$06), //cmp ebx
      
($81,$f9,$47,$65,$6e,$75,$00,$06),($81,$f9,$69,$6e,$65,$49,$00,$06),($81,$f9,$6e,$74,$65,$6c,$00,$06), //cmp ecx
      
($81,$fa,$47,$65,$6e,$75,$00,$06),($81,$fa,$69,$6e,$65,$49,$00,$06),($81,$fa,$6e,$74,$65,$6c,$00,$06), //cmp edx
      
($81,$fd,$47,$65,$6e,$75,$00,$06),($81,$fd,$69,$6e,$65,$49,$00,$06),($81,$fd,$6e,$74,$65,$6c,$00,$06), //cmp ebp
      
($81,$fe,$47,$65,$6e,$75,$00,$06),($81,$fe,$69,$6e,$65,$49,$00,$06),($81,$fe,$6e,$74,$65,$6c,$00,$06), //cmp esi
      
($81,$ff,$47,$65,$6e,$75,$00,$06),($81,$ff,$69,$6e,$65,$49,$00,$06),($81,$ff,$6e,$74,$65,$6c,$00,$06), //cmp edi
      
($81,$7d,$01,$47,$65,$6e,$75,$07),($81,$7d,$01,$69,$6e,$65,$49,$07),($81,$7d,$01,$6e,$74,$65,$6c,$07// cmpl -0x4(%ebp)
      
);
      
Rp : Array [0..23,0..7of Byte = (
      (
$a9,$00,$00,$00,$00,$FF,$FF,$05),($a9,$00,$00,$00,$00,$FF,$FF,$05),($a9,$00,$00,$00,$00,$FF,$FF,$05),
      (
$f7,$c3,$00,$00,$00,$00,$FF,$06),($f7,$c3,$00,$00,$00,$00,$FF,$06),($f7,$c3,$00,$00,$00,$00,$FF,$06),
      (
$f7,$c1,$00,$00,$00,$00,$FF,$06),($f7,$c1,$00,$00,$00,$00,$FF,$06),($f7,$c1,$00,$00,$00,$00,$FF,$06),
      (
$f7,$c2,$00,$00,$00,$00,$FF,$06),($f7,$c2,$00,$00,$00,$00,$FF,$06),($f7,$c2,$00,$00,$00,$00,$FF,$06),
      (
$f7,$c5,$00,$00,$00,$00,$FF,$06),($f7,$c5,$00,$00,$00,$00,$FF,$06),($f7,$c5,$00,$00,$00,$00,$FF,$06),
      (
$f7,$c6,$00,$00,$00,$00,$FF,$06),($f7,$c6,$00,$00,$00,$00,$FF,$06),($f7,$c6,$00,$00,$00,$00,$FF,$06),
      (
$f7,$c7,$00,$00,$00,$00,$FF,$06),($f7,$c7,$00,$00,$00,$00,$FF,$06),($f7,$c7,$00,$00,$00,$00,$FF,$06),
      (
$f7,$45,$01,$00,$00,$00,$00,$07),($f7,$45,$01,$00,$00,$00,$00,$07),($f7,$45,$01,$00,$00,$00,$00,$07)
      );
      
AsmC : Array [0..23of String[40] = (
      
'cmp   eax,0756E6547 ;"uneG"',
      
'cmp   eax,049656E69 ;"Ieni"',
      
'cmp   eax,06C65746E ;"letn"',
      
'cmp   ebx,0756E6547 ;"uneG"',
      
'cmp   ebx,049656E69 ;"Ieni"',
      
'cmp   ebx,06C65746E ;"letn"',
      
'cmp   ecx,0756E6547 ;"uneG"',
      
'cmp   ecx,049656E69 ;"Ieni"',
      
'cmp   ecx,06C65746E ;"letn"',
      
'cmp   edx,0756E6547 ;"uneG"',
      
'cmp   edx,049656E69 ;"Ieni"',
      
'cmp   edx,06C65746E ;"letn"',
      
'cmp   ebp,0756E6547 ;"uneG"',
      
'cmp   ebp,049656E69 ;"Ieni"',
      
'cmp   ebp,06C65746E ;"letn"',
      
'cmp   esi,0756E6547 ;"uneG"',
      
'cmp   esi,049656E69 ;"Ieni"',
      
'cmp   esi,06C65746E ;"letn"',
      
'cmp   edi,0756E6547 ;"uneG"',
      
'cmp   edi,049656E69 ;"Ieni"',
      
'cmp   edi,06C65746E ;"letn"',
      
'cmpl  [ebp][-04],0756E6547 ;"Genu"',
      
'cmpl  [ebp][-0C],049656E69 ;"Ieni"',
      
'cmpl  [ebp][-14],06C65746E ;"letn"');

Var
      
File;
      
Buf Pointer;
      
i,j,k,tmp,count,
      
Size cardinal;
      
CB Byte//current byte;
      
SB Byte//save original byte

function IntToHex(IntValuecardinalDigitsinteger): string;
var
  
ijcardinal;
  
sstring;
begin
  s 
:= '';
  if 
IntValue 0 then
  begin
    i 
:= IntValue;
    while 
i>do
    
begin
      j 
:= i mod 16;
      if (
j<10then
        s 
:= Chr(Ord('0') + j) + s
      
else
        
:= Chr(Ord('A') + (10)) + s;
      
:= i div 16;
    
end;
  
end;
  if 
Digits 1 then Digits := 1;
  
:= Digits Length(s);
  while 
i>do
  
begin
    s 
:= '0' s;
    
:= 1;
  
end;
  
IntToHex := s;
end;

Begin
      WriteLn
(#13+#10+'Patcher for Intel Compiler(TM), disable "GenuineIntel" checking.'+#13+#10+
      
'Original perl version (C) Copyright M. D Mackey 2004.'+#13+#10+
      
'Port to Win32/PE v0.3 (C) Copyright Tronix 2010.'+#13+#10);
      
If ParamCount 1 then
            Begin
                  Writeln
('Usage: icc_patch <filename> [option]'#13#10#13#10+
                          
'    Options: /F - force patching');
                  
Halt;
            
End;
      
Count := 0;
      
Assign(F,{'e:\vp21\out.w32\1.txt'}Paramstr(1));
      
Reset(F,1);
      If 
IOResult <> 0 then
            Begin
                  WriteLn
('Error open file ',Paramstr(1));
                  
Halt;
            
End;
      
Size := FileSize(F);
      
GetMem(Buf,Size);
      
Write('Reading file into memory...');
      
BlockRead(F,pBuffer(Buf)^,Size);
      
Close(F);
      
Writeln(' done!'+#13+#10+'Searching...');
      
For := 0 to Size-do
            
Begin
               tmp 
:= i;           //save current POS
               
For := 0 to 23 do
                
Begin
                  asm
                        
xor   eax,eax //j = 0,
                        
mov   ediBuf
                        mov   edx
//i
                        
cmp   edx,size
                        ja    
@exit
                        
mov   esioffset Id
                        mov   ebx
k
                        shl   ebx
3
                        mov   cl
, [esi+ebx+7//al = id[k][7]
                        
mov   ch, [esi+ebx//cb := id[k][j]

                  
@loop:
                        
cmp   ch, [edi+edx]
                        
jne   @exit
                        
cmp   al,cl
                        jnb   
@exit

                        
inc   edx // inc(i)
                        
inc   eax  // inc(j)
                        
inc   ebx
                        mov   ch
, [esi+ebx]
                        
cmp   ch,1
                        jne   
@loop
                        mov   ch
, [edi+edx]
                        
mov   sbch
                        jmp   
@loop

                  
@exit:
                        
mov j,eax

                  end
;
                  If 
Id[k][7then // if positive
                        
Begin
                              i 
:= tmp// i = start offset
                              
WriteLn('Found at pos: ',IntToHex(i,8),'    ',AsmC[k]);
                              
inc(count);
                              For 
:= 0 to Id[k][7]-do
                                    
Begin
                                          
If Rp[k][j] = 1 then
                                              pBuffer
(Buf)^[i] := sb
                                          
else
                                              
pBuffer(Buf)^[i] := Rp[k][j];
                                          
Inc(i);
                                    
End;
                              
//Dec(I);
                        
End
                        
else := tmp;
                
End;

            
End;

      If 
count 0 then WriteLn('Nothing to patch!')
      else
      If (
count mod 3 0) or (Upcase(ParamStr(2)[2]) = 'F')  then
            Begin
                  WriteLn
('Rename ',Paramstr(1),' to ',Paramstr(1)+'.orig');
                  
Rename(F,Paramstr(1)+'.orig');
                  If 
IOResult <> 0 then
                        begin
                              Writeln
('Error rename file to '+Paramstr(1)+'.orig');
                              
FreeMem(Buf,Size);
                              
Halt;
                        
end;
                  
Assign(F,Paramstr(1));
                  
Rewrite(f,1);
                  
Write('Patching...');
                  
BlockWrite(f,Buf^,Size);
                  
Close(f);
                  
Writeln(' done!');
            
End
            
Else
                  
WriteLn('Count should be a multiple of 3! Skipping this file');
      
FreeMem(Buf,Size);
End


jimon 20.02.2010 20:08

Ответ: Потестируйте
 
Tronix
ну Intel это не совсем зря в компиляторы вставила, потому что дорогая AMD не согласовывает возможности своих процессоров с Intel, а если компилятор будет опираться на возможности AMD в полной силе то AMD может просто испортить свои возможности и обозвать компилятор Intel'а какашкой, стратегические войны однако

Tronix 20.02.2010 20:09

Ответ: Потестируйте
 
Я почему потестировать то прошу - потому что с тредами опять связался. Так они не логично в дельфях сделаны, либо я плохо эту идеалогию понимаю. Вот и хочу чтоб запустили и посмотрели - будет падать или нет. Ну плохо я потоки программлю ) сорри )

Tronix 20.02.2010 20:11

Ответ: Потестируйте
 
Цитата:

Сообщение от jimon (Сообщение 138419)
Tronix
ну Intel это не совсем зря в компиляторы вставила, потому что дорогая AMD не согласовывает возможности своих процессоров с Intel, а если компилятор будет опираться на возможности AMD в полной силе то AMD может просто испортить свои возможности и обозвать компилятор Intel'а какашкой, стратегические войны однако

Ну интел конечно прав в какой-то мере. Но, если убирать эту проверку, то например бенчмарк в Everest Ultimate начинает казать на 20-30 попугаев больше во всех тестах. Магия? Почему бы не получить дополнительную производительность?

Tronix 20.02.2010 22:39

Ответ: Потестируйте
 
Вложений: 1
Ребят, ну запустите прогу хоть на некоторое время. Важно протестировать работу с потоками, чтобы не вываливалась с ошибкой. У себя уже тестировал, не падает, но как поведет себя на других компьютерах - не знаю. Очень важно ваше мнение.
Это не вирус, я гарантирую это. Выше постами исходник консольного приложения, а теперь просто решил обертку написать (GUI). Очень важен ваш багрепорт. Заранее спасибо.

SBJoker 21.02.2010 00:25

Ответ: Потестируйте
 
Ну чо, теперь работает...


Часовой пояс GMT +4, время: 13:55.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot