注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

android的一款整合jad,apktool,dex2jar的脚本  

2013-07-31 17:41:37|  分类: Android开发与逆 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Python代码  收藏代码
  1. #! /usr/bin/env python  
  2. #coding=utf-8  
  3. import os  
  4. import subprocess  
  5. import time  
  6. import shutil,sys  
  7. import zipfile   
  8.    
  9.   
  10.   
  11. apksrc="C:\\test\\test.apk"  
  12. apkdest=""  
  13. copyzip=""  
  14. dex2dir=""  
  15. jadsrc=""  
  16. projectcodepath=""  
  17. apktoolpath=r"F:\\bishe\android\apktool\apktool.bat"  
  18. dex2jarpath=r"F:\\bishe\android\dex2jar-0.0.9.8\dex2jar-0.0.9.8\dex2jar.bat"  
  19. jadexepath=r"F:\\bishe\android\jad158g\jad.exe"  
  20. def apktools(src,dest):  
  21.       
  22.       
  23.     cmd_list=apktoolpath+r" d -f "+src+" "+dest  
  24.       
  25.     print cmd_list  
  26.     process = subprocess.Popen(cmd_list)       
  27.     while 1:     
  28.         ret1 = subprocess.Popen.poll(process)     
  29.         if ret1 == 0:     
  30.             print process.pid,'end'    
  31.             break    
  32.         elif ret1 is None:     
  33.                
  34.             time.sleep(1)     
  35.         else:     
  36.             print sub2.pid,'term'    
  37.             break    
  38.       
  39.     print "apk tools end"  
  40. def jad(src,dest):  
  41.     codesrc=dest+"src\\"  
  42.     if((os.path.exists(codesrc))==False):  
  43.         os.makedirs(codesrc)  
  44.     cmd_list=jadexepath+" -o -r -d "+codesrc+" -s java "+src+"**\\*.class"  
  45.   
  46.     print cmd_list  
  47.     process = subprocess.Popen(cmd_list)       
  48.     while 1:     
  49.         ret1 = subprocess.Popen.poll(process)     
  50.         if ret1 == 0:     
  51.             print process.pid,'end'    
  52.             break    
  53.         elif ret1 is None:     
  54.            
  55.             time.sleep(1)     
  56.         else:     
  57.             print sub2.pid,'term'    
  58.             break    
  59.   
  60.   
  61. print "apk jad code successfully"      
  62.   
  63.   
  64. def dex2jar(src,dest):     
  65.       
  66.     cmd_list=dex2jarpath+" "+src+"classes.dex"  
  67.       
  68.     print cmd_list  
  69.     process = subprocess.Popen(cmd_list)       
  70.     while 1:     
  71.         ret1 = subprocess.Popen.poll(process)     
  72.         if ret1 == 0:     
  73.             print process.pid,'end'    
  74.             break    
  75.         elif ret1 is None:     
  76.                
  77.             time.sleep(1)     
  78.         else:     
  79.             print sub2.pid,'term'    
  80.             break    
  81.       
  82.       
  83.     print "apk dex2jar.bat successfully"      
  84.       
  85. def unzip(src,dest):  
  86.     print src  
  87.     f = zipfile.ZipFile(src)   
  88.     f.extractall(dest)       
  89.     f.close()    
  90.     print "apk unzip successfully"  
  91.       
  92. def GenerateProCode(dest):  
  93.     print     jadsrc+"src"  
  94.     print dest  
  95.     shutil.copytree(jadsrc+"src\\",dest)  
  96.     shutil.copytree(apkdest,dest)  
  97.       
  98.          
  99.       
  100.       
  101. def adbinstall(src):  
  102.     cmd_list="adb install "+src  
  103.       
  104.     print cmd_list  
  105.     process = subprocess.Popen(cmd_list)       
  106.     while 1:     
  107.         ret1 = subprocess.Popen.poll(process)     
  108.         if ret1 == 0:     
  109.             print process.pid,'end'    
  110.             break    
  111.         elif ret1 is None:     
  112.                
  113.             time.sleep(1)     
  114.         else:     
  115.             print sub2.pid,'term'    
  116.             break    
  117.       
  118.       
  119.     print "apk install successfully"      
  120.       
  121.   
  122.       
  123. def init(src,dest):  
  124.     global apkdest  
  125.     global dex2dir  
  126.     global copyzip  
  127.     global jadsrc  
  128.     global projectcodepath  
  129.     copyzip=os.path.dirname(src)+"\\"+"dex2jar.zip"  
  130.     if dest=="":  
  131.         apkdest=os.path.dirname(src)+"\\ProjectCode\\"  
  132.     shutil.copy2(src,copyzip)  
  133.     dex2dir=os.path.dirname(src)+"\\dex\\"  
  134.     jadsrc=os.path.dirname(src)+"\\jad\\"  
  135.       
  136.           
  137. init(apksrc,apkdest)  
  138. apktools(apksrc,apkdest)  
  139.   
  140. unzip(copyzip,dex2dir)  
  141. dex2jar(dex2dir,apkdest)  
  142. unzip(dex2dir+"classes_dex2jar.jar",jadsrc)  
  143. jad(jadsrc,apkdest)  
  144. adbinstall(apksrc)
  评论这张
 
阅读(86)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017