麻豆一区区三三四区产品麻豆-麻豆影视国产TV在线观看-麻豆影视国产在线观看-麻豆影视在线-麻豆影视在线观看av-麻豆影院

softtest
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 20 個
工控威望: 94 點
下載積分: 474 分
在線時間: 4(小時)
注冊時間: 2018-04-18
最后登錄: 2018-05-30
查看softtest的 主題 / 回貼
樓主  發(fā)表于: 2018-04-18 11:04
近日在學習昆侖通態(tài)資料,寫了一個反編譯工具 ,但發(fā)現(xiàn)一遍反編譯的話,while 指令還原不了。哪位有什么好建議沒?
'———————————————————————                                                                                                                                                                                                      
'自定義子函數(shù):DoStrCrc16。                                                                                                                                                                                                                          
'函數(shù)原型為: FUNCTION DoStrCrc16(strProtocol AS STRING) AS INTEGER                                                                                                                                                                                  
'這部分注釋請勿修改,請在下面編輯內容:                                                                                                                                                                                                              
'———————————————————————                                                                                   DoStrCrc16(strProtocol as string) as integer                                                                      
dim iLen as integer                                                                                            |dim Ta as integer                                                                                                                    
dim iSum as byte                                                                                               |dim Tb as byte                                                                                                                      
dim pData(1) as byte                                                                                           |dim Va(1) as byte                                                                                                                    
dim ulSeed as integer                                                                                          |dim Tc as integer                                                                                                                    
dim i    as integer                                                                                            |dim Td as integer                                                                                                                    
dim sel  as integer                                                                                            |dim Te as integer                                                                                                                    
dim wCRC16a(16) as integer                                                                                     |dim Vb(16) as integer                                                                                                                
dim wCRC16b(16) as integer                                                                                     |dim Vc(16) as integer                                                                                                                
wCRC16a[1]=0                                                                                                   |   Vb[1]= 0                                                                                                                          
wCRC16a[2]=49345                                                                                               |   Vb[2]= 49345                                                                                                                      
wCRC16a[3]=49537                                                                                               |   Vb[3]= 49537                                                                                                                      
wCRC16a[4]=320                                                                                                 |   Vb[4]= 320                                                                                                                        
wCRC16a[5]=49921                                                                                               |   Vb[5]= 49921                                                                                                                      
wCRC16a[6]=960                                                                                                 |   Vb[6]= 960                                                                                                                        
wCRC16a[7]=640                                                                                                 |   Vb[7]= 640                                                                                                                        
wCRC16a[8]=49729                                                                                               |   Vb[8]= 49729                                                                                                                      
wCRC16a[9]=50689                                                                                               |   Vb[9]= 50689                                                                                                                      
wCRC16a[10]=1728                                                                                               |   Vb[10]= 1728                                                                                                                      
wCRC16a[11]=1920                                                                                               |   Vb[11]= 1920                                                                                                                      
wCRC16a[12]=51009                                                                                              |   Vb[12]= 51009                                                                                                                    
wCRC16a[13]=1280                                                                                               |   Vb[13]= 1280                                                                                                                      
wCRC16a[14]=50625                                                                                              |   Vb[14]= 50625                                                                                                                    
wCRC16a[15]=50305                                                                                              |   Vb[15]= 50305                                                                                                                    
wCRC16a[16]=1088                                                                                               |   Vb[16]= 1088                                                                                                                      
wCRC16b[1]=0                                                                                                   |   Vc[1]= 0                                                                                                                          
wCRC16b[2]=52225                                                                                               |   Vc[2]= 52225                                                                                                                      
wCRC16b[3]=55297                                                                                               |   Vc[3]= 55297                                                                                                                      
wCRC16b[4]=5120                                                                                                |   Vc[4]= 5120                                                                                                                      
wCRC16b[5]=61441                                                                                               |   Vc[5]= 61441                                                                                                                      
wCRC16b[6]=15360                                                                                               |   Vc[6]= 15360                                                                                                                      
wCRC16b[7]=10240                                                                                               |   Vc[7]= 10240                                                                                                                      
wCRC16b[8]=58369                                                                                               |   Vc[8]= 58369                                                                                                                      
wCRC16b[9]=40961                                                                                               |   Vc[9]= 40961                                                                                                                      
wCRC16b[10]=27648                                                                                              |   Vc[10]= 27648                                                                                                                    
wCRC16b[11]=30720                                                                                              |   Vc[11]= 30720                                                                                                                    
wCRC16b[12]=46081                                                                                              |   Vc[12]= 46081                                                                                                                    
wCRC16b[13]=20480                                                                                              |   Vc[13]= 20480                                                                                                                    
wCRC16b[14]=39937                                                                                              |   Vc[14]= 39937                                                                                                                    
wCRC16b[15]=34817                                                                                              |   Vc[15]= 34817                                                                                                                    
wCRC16b[16]=17920                                                                                              |   Vc[16]= 17920                                                                                                                    
  iSum = 0                                                                                                     |   Tb= 0                                                                                                                            
  ulSeed=0                                                                                                     |   Tc= 0                                                                                                                            
  i=1                                                                                                          |   Td= 1                                                                                                                            
  iLen=!len(strProtocol)                                                                                       |   Ta= !len( strProtocol)                                                                                                            
  if iLen>0 then                                                                                               |   IF   Ta > 0 THEN                                                                                                                  
     iLen=!arrayResize(pData,iLen)                                                                             |      Ta= !ArrayResize( Va , Ta)                                                                                                    
     if !Str2ByteArr(strProtocol,pData)<>0 then                                                                |      IF   !Str2ByteArr( strProtocol , Va) <> 0 THEN                                                                                
      iSum=-1                                                                                                  |         Tb= -1                                                                                                                      
      exit                                                                                                     |         EXIT                                                                                                                        
   endif                                                                                                       |      ENDIF                                                                                                                          
   while iLen                                                                                                  |      IF   Ta THEN                                                                                                                  
     iSum=!BitXor(pData,uLseed)                                                                             |         Tb= !BitXor( Va[Td] , Tc)                                                                                                  
     ulSeed=!BitXor(!BitXor(!BitRShift(ulSeed,8),wCRC16a[!BitAnd(iSum,&H0F)+1]),wCRC16b[!BitRShift(iSum,4)+1]) |         Tc= !BitXor( !BitXor( !BitRShift( Tc , 8) , Vb[!BitAnd( Tb , 15) + 1]) , Vc[!BitRShift( Tb , 4) + 1])                      
     iLen=iLen-1                                                                                               |         Ta= Ta - 1                                                                                                                  
     i=i+1                                                                                                     |         Td= Td + 1                                                                                                                  
   endwhile                                                                                                    |      EndWhile      ENDIF                                                                                                            
  endif                                                                                                        |   ENDIF                                                                                                                            
  DoStrCrc16=!BitAnd(ulSeed,&Hffff)                                                                            |   DoStrCrc16= !BitAnd( Tc , 65535)                                                                                                  
                                                                                                               |   EXIT                                                                                                                              
左邊為設備原代碼,后面為反編譯還原后的。
softtest
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 20 個
工控威望: 94 點
下載積分: 474 分
在線時間: 4(小時)
注冊時間: 2018-04-18
最后登錄: 2018-05-30
查看softtest的 主題 / 回貼
1樓  發(fā)表于: 2018-04-18 11:21
CollectData設備采集函數(shù)() as Void
dim Ta as integer
dim Tb as integer
dim Tc as string
dim Td as string
dim Te as string
dim Tf as string
dim Va(0) as byte
dim Vb(0) as byte
dim Vc(0) as byte
dim Tg as integer
dim Th as integer
dim Ti as single
dim Tj as integer
   Ta= 0
   Tb= 0
   !ArrayResize( Va , 12)
   Va[1]= 0
   Va[2]= 1
   Va[3]= 2
   Va[4]= 3
   Va[5]= 4
   Va[6]= 5
   Va[7]= 6
   Va[8]= 7
   Va[9]= 8
   Va[10]= 9
   Va[11]= 0
   Va[12]= 0
   !SvrGetIntFromByteArr( Va , 2 , Ta , 1)
   !ArrayResize( Va , 8)
   Va[1]= 設備屬性00
   Va[2]= 3
   Va[3]= 0
   Va[4]= 0
   Va[5]= 0
   Va[6]= 8
   Tg= !SvrByteArrayModbusCRC( Va , 1 , 6)
   Va[7]= !BitAnd( Tg , 255)
   Th= !BitAnd( Tg , 65280)
   Va[8]= !BitRShift( Th , 8)
   !ArrayResize( Vb , 21)
   Tg= !DevWriteAndReadByteArr( Va , 8 , Vb , 21 , 設備屬性01)
   IF   Tg <> 21 THEN
      !SetSingleChannelValueByName( "通訊狀態(tài)" , 2)
      EXIT
   ENDIF
   Ta= 0
   !ArrayResize( Vc , 2)
   IF   Ta < 8 THEN
      Vc[1]= Vb[Ta * 2 + 5]
      Vc[2]= Vb[Ta * 2 + 4]
      Tg= !SvrGetShortFromByteArr( Vc , 1 , Tj , 0)
      Ti= Tj
      !SetSingleChannelValueByNum( Ta + Tb + 2 , Ti)
      Ta= Ta + 1
   EndWhile   ENDIF
   Tb= Tb + Ta
   !SetSingleChannelValueByName( "通訊狀態(tài)" , 0)
   EXIT

主站蜘蛛池模板: 特级BBBBBBBBB视频| 中文毛片无遮挡高潮免费| 四虎在线观看一区二区| 国产av天天操操操| a级高清免费| 精品久久av无码| 91精品国产入口| 欧洲一区二区三区在线播放| 99久久人妻精品免费二区 | 国产日韩在线| 欧洲精品专区永久免费区| 91视频永久入口| 亚洲欧美二区三区久本道| 国产精品公开免费视频| 黑人巨茎大战白人美女| 久久精品视频在线看| 国产系列视频二区| 亚洲精品国产一区二区 | 射精专区一区二区朝鲜小说| 国产精品高潮久久久久久无码| 久久免费看少妇高潮A片JA| 欧美精产国品一二三区别| 1区2区3区4区产品乱码芒果精品神马在线播放| 亚洲欧美另类都市激情一区| 国产成人免费福利a片| 91精品视品在线播放| 国产真人免费无码AV在线观看| 在线成色综合网站| 久久香蕉精品视频| 久久大香伊蕉在人线国产昨爱 | 91免费精品国自产拍在线不卡| 亚洲精品私拍国产福利在线| 国产成人精品日本亚洲18图| 国产精品无码AV77777| 国产亚洲一区二区三区不卡| 日日摸夜夜添夜夜添A片一Y| 久久久99精品成人片中文字幕| 制服 丝袜 亚洲 中文 综合| 欧美A级肉欲大片XXX| 亚洲一区二区三区中文字幕5566| 日韩欧美国产成人精品高清 |