| 
                    Шифрование имени функции Delphi
                   | 
                 
                
                  
                    
                      
                        | 
                          toorook
                         | 
                        
                          Дата: Воскресенье, 26.10.2014, 07:59 | Сообщение # 1
                         | 
                       
                      
                        
                           
                          
                            Был не раз
                           
                          
                          Зарегистрирован: 04.09.2014
                          
                            Группа: Пользователи
                           
                          
                            Сообщений: 11
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Всем Hi! Итак, есть такой хук: 
                          
                            
                            
                              Код
                             
                            
                              k_OldKbhik := SetWindowsHookEx(WH_KEYBOARD, @KbHik, HInstance, 0);
                             
                            
                          Возможно ли SetWindowsHookEx зашифровать ксором, а при вызове расшифровывать обратно? 
                          Например, как здесь, шифрование значения имени окна: 
                          
                            
                            
                              Код
                             
                            
                              FindWindow(nil, pchar(CodeS('аӇхЂГТӦЀӷ0ѫоЮҊЬ‘*et*6Mæ')));
                             
                            
                          В общем мне надо скрыть это от глаз АВ. 
                          Еще видел в сети пример (не могу найти, вытаскивал его из кеша гугла.) - там чел на форуме, показывал исходник, где из функции вызывает функцию winapi с пошифрованым именем. 
                          Хелп...   
                          Как вызовы WinApi прячуться от АнтиВирей? В какую строну копать? 
                           
                          [email protected]
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                     
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Slash
                         | 
                        
                          Дата: Воскресенье, 26.10.2014, 10:44 | Сообщение # 2
                         | 
                       
                      
                        
                           
                          
                            Постоянный
                           
                          
                          Зарегистрирован: 20.12.2012
                          
                            Группа: Пользователи
                           
                          
                            Сообщений: 161
                           
                          
                            Статус: Offline
                           
                         | 
                        Я в этом деле не мастер, но мне кажется в этом толку не будет, у почти каждого АВ есть эвристика, которая сразу эти дела остановит. | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                     
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Anton93
                         | 
                        
                          Дата: Воскресенье, 26.10.2014, 15:02 | Сообщение # 3
                         | 
                       
                      
                        
                           
                          
                            Продвинутый
                           
                          
                          Зарегистрирован: 06.01.2010
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 320
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          toorook, вот я как то объяснял https://delfcode.ru/forum/10-1148-8383-16-1388676469 
                          но это очень примитивный метод. сейчас все намного сложнее вызывается, так как многое уже эмулируеся. для изучения сойдет. хотя для полного FUD есть очень много тонкостей вызова апи 
                           
                            ICQ: 41896
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                     
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Anton93
                         | 
                        
                          Дата: Воскресенье, 26.10.2014, 15:04 | Сообщение # 4
                         | 
                       
                      
                        
                           
                          
                            Продвинутый
                           
                          
                          Зарегистрирован: 06.01.2010
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 320
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Slash, толк есть. поверь. особенно эффективно используется при написании базонезависимого кода. 
                           
                            ICQ: 41896
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                     
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          toorook
                         | 
                        
                          Дата: Воскресенье, 26.10.2014, 16:03 | Сообщение # 5
                         | 
                       
                      
                        
                           
                          
                            Был не раз
                           
                          
                          Зарегистрирован: 04.09.2014
                          
                            Группа: Пользователи
                           
                          
                            Сообщений: 11
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          
                          
                            
                            
                              Цитата Anton93 ( )
                             
                            
                              Slash, толк есть. поверь. особенно эффективно используется при написании базонезависимого кода.
                             
                            
                          Спс тебе... я видать не доглядел. несколько часов форум ковырял... спс. Уже есть мысли по доработке))) Толк есть однозначно. 
                           
                          [email protected]
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
                
                  | 
                    
                     
                    
                   | 
                 
                
                  
                    
                      
                        | 
                          Волк-1024
                         | 
                        
                          Дата: Воскресенье, 26.10.2014, 16:38 | Сообщение # 6
                         | 
                       
                      
                        
                           
                          
                            Авторитетный
                           
                          
                          Зарегистрирован: 24.07.2011
                          
                            Группа: Модераторы
                           
                          
                            Сообщений: 469
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Пригодится думаю: 
                          
                            
                            
                              Код
                             
                            
                               
                              type 
                                  TByteArray = array of Byte; 
                               
                              procedure RC4(Data, Key: Pointer; DataSize: DWORD; KeySize: BYTE); overload; 
                              var 
                                  Temp: BYTE; 
                                  Result: PBYTE; 
                                  X, Y, Z: DWORD; 
                                  RB: array[BYTE] of DWORD; 
                              begin 
                                  if Assigned(Data) and (Assigned(Key)) and (KeySize>0) then 
                                  try 
                                     for X:=0 to 255 do 
                                        RB[X]:=X; 
                                     X:=0; 
                                     Y:=0; 
                                     Z:=0; 
                                     for X:=0 to 255 do 
                                     begin 
                                        Y:=(Y+RB[X]+(TByteArray(Key)[X mod KeySize])) mod 256; 
                                        Temp:=RB[X]; 
                                        RB[X]:=RB[Y]; 
                                        RB[Y]:=Temp; 
                                     end; 
                                     X:=0; 
                                     Y:=0; 
                                     Z:=0; 
                                     Result:=Data; 
                                     for X:=0 to (DataSize-1) do 
                                     begin 
                                        Y:=(Y+1) mod 256; 
                                        Z:=(Z+RB[Y]) mod 256; 
                                        Temp:=RB[Y]; 
                                        RB[Y]:=RB[Z]; 
                                        RB[Z]:=Temp; 
                                        Result^:=Result^ xor (RB[(RB[Y]+RB[Z]) mod 256]); 
                                        Inc(Result); 
                                     end; 
                                  except 
                                  end; 
                              end; 
                               
                              function RC4(Str: string; Key: string): string; overload; 
                              begin 
                                  Result:=Str; 
                                  RC4(@Result[1], @Key[1], (Length(Result)), (Length(Key))); 
                              end;   
                             
                            
                           
                          Pascal, C\C++, Assembler, Python
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                 
               
             
           
          
          
          
          
          
          
       |