欧美日韩在线一区二区-欧美日韩在线一区二区三区-欧美日韩在线一区亚洲二区-欧美日韩在线永久免费播放-欧美日韩整片中文字幕-欧美日韩制服丝袜六区

softtest
級別: 正式會員
精華主題: 0
發帖數量: 20 個
工控威望: 94 點
下載積分: 474 分
在線時間: 4(小時)
注冊時間: 2018-04-18
最后登錄: 2018-05-30
查看softtest的 主題 / 回貼
樓主  發表于: 2018-04-18 11:04
近日在學習昆侖通態資料,寫了一個反編譯工具 ,但發現一遍反編譯的話,while 指令還原不了。哪位有什么好建議沒?
'———————————————————————                                                                                                                                                                                                      
'自定義子函數:DoStrCrc16。                                                                                                                                                                                                                          
'函數原型為: 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
發帖數量: 20 個
工控威望: 94 點
下載積分: 474 分
在線時間: 4(小時)
注冊時間: 2018-04-18
最后登錄: 2018-05-30
查看softtest的 主題 / 回貼
1樓  發表于: 2018-04-18 11:21
CollectData設備采集函數() 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( "通訊狀態" , 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( "通訊狀態" , 0)
   EXIT

主站蜘蛛池模板: 欧洲人妻丰满av无码久久不卡 | 91国偷自产一区二区三区 | 91在线精品无码秘入口九色 | 国产精品日韩一区二区三区 | 91亚洲精品自产拍在线观看 | 久久人妻一区二区三区免费 | 国产精品一区二区男人的天堂 | 永久免费看成人A片在线播放 | 国产精品国产精品国产精品 | 亚洲精品无码精品mv在线观看 | 久久久久久精品人妻免费影视网 | 99精品视频观看 | 99国产在线 | 国产精品久久久久久无码人妻 | 国产成人无码av一区二区在线观看 | 色久综合网精品一区二区 | 亚洲精品无码久 | 精品无人区码一码二码三码区别 | 超清无码一区二区 | 永久在线精品免费视频观看 | 亚洲黄色片一级 | 女人张开腿让男人桶爽的 | 91精品啪在线观看国产在线 | 亚洲精品国产自在现线 | 国产精品美女久久久久av爽 | 中文国产剧情演绎丝 | 18无码粉嫩小泬无套 | 国产一区二区午夜福利在线观看 | 国产一区二区在线观看动漫 | 国产精品美女久久久浪潮av | 国产 日韩 欧美 中文字幕 | 亚洲国产日韩无在线播放 | 久久久蜜桃精品中文字幕 | 国产亚洲综合久久 | 五月天婷婷网址 | 国产美女精品一区二区三 | 久久久久久一级毛片免费无遮挡 | 久久久久人妻精品一区蜜桃网站 | 中文字幕中文乱码欧美一区二区 | 天天干在线色视频 日日夜夜操天天操 | 国产东北露脸熟妇 |