ASV2012(ActionScriptViewer)解密反编译DoSWF加密Flash之图文教程

合集下载

【转】一步一步带你反编译apk,并教你修改smali和重新打包

【转】一步一步带你反编译apk,并教你修改smali和重新打包

【转】⼀步⼀步带你反编译apk,并教你修改smali和重新打包⼀、⼯具介绍:1.apktool:aapt.exe,apktool.bat,apktool.jar;三个在同⼀⽬录结合使⽤,⽤来反编译apk,apk重新打包;2.dex2jar:该⼯具作⽤是将classes.dex⽂件,反编译出源码(如果apk未加固),反编译出⽂件,使⽤jd-gui⼯具进⾏查看;3.Auto-Sign:⾃动签名⼯具,将重新打包的apk进⾏签名,如果不签名,⽆法安装使⽤。

⼯具下载地址:(需要3CSDN积分,原本我设置3积分的,不知道为什么涨到16积分了......)使⽤场景:项⽬源码丢失,只有线上apk,并且没有加固,要求修改apk接⼝地址,并且重新打包,再发布。

⼆、⼯具使⽤:解压后⼯具包如图:1.思路:使⽤⼯具dex2jar反编译,并⽤jd-gui⼯具进⾏查看项⽬结构,查看源码,并且找到接⼝地址类,修改接⼝地址;步骤⼀:下载好⼯具,将需要反编译的APK后缀名改为.rar或则 .zip,并解压,如图:得到其中的classes.dex⽂件(它就是java⽂件编译再通过dx⼯具打包⽽成的),将获取到的classes.dex复制到解压出来的⼯具dex2jar-0.0.9.15 ⽂件夹内,在命令⾏下,进⼊到dex2jar.bat所在⽬录,输⼊命令:dex2jar.bat classes.dex效果如下:步骤⼆:运⾏结束后,在该⽬录下会⽣成⼀个classes_dex2jar.jar的⽂件,如图:然后打开⼯具jd-gui⽂件夹⾥的jd-gui.exe,⽤该⼯具打开⽣成的classes_dex2jar.jar⽂件,便可以看到源码了,效果如下:2.思路:apktool,反编译修改smali⽂件,进⾏重新打包,通过⽤jd-gui⼯具找到接⼝地址类后,与相应的smali⽂件进⾏对⽐,修改接⼝地址;下载上述⼯具中的apktool,解压得到3个⽂件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK⽂件放到该⽬录下,如图:打开命令⾏界⾯(运⾏-CMD),定位到apktool⽂件夹,输⼊以下命令:apktool.bat d -f test.apk -o testapktool -f [待反编译的apk] -o [反编译之后存放⽂件夹]如图:反编译之后会得到test ⽂件夹,打开test⽂件夹,⾥边就是反编译出来的各种资源⽂件使⽤jd-gui查看源码找到地址类,然后在smali⽂件⾥找到地址的smali⽂件,更改smali⽂件内接⼝地址。

反编译神器bytecodeviewer

反编译神器bytecodeviewer
它是一款基于图形界面的java反编译器java字节码编辑器apk编辑器dex编辑器apk反编译器dex反编译器
反编译神器bytecodeviewer
bytecodeviewer是一款简单易用功能强大的反编译软件。
它是一款基于图形界面的Java反编译器,Java字节码编辑器,APK编辑器,Dex编辑器,APK反编译器,DEX反编译器。不仅如此,它还是一款Hex查看器,代码搜索器和代码调试器。除此之外,它还具备Smali和Baksmali等汇编器的相关功能。
点击.class文件即可看到反编译后的代码。
下载地址:https:///Konloch/bytecode-viewer/releases
下载zip压缩文件,解压文件之后执行java -jar BytecodeViewer2.9.8.jar
打开பைடு நூலகம்面
把想要反编译的apk拖入Files区域即可反编译apk
Decoded Resources为反编译后的文件。

反编译详细教程

反编译详细教程

.去震动教程.时间居中教程,时间显示到秒且居中在通知栏增加模拟时钟透明状态栏代码修改字体颜色修改关于运营商图标修改可以ctrl+F,按需搜索一:去震动教程:一、首先是配置编译和反编译环境,具体方法如下:1、在电脑上下载安装JRE(/file/clif5w53)。

其次下载好apk反编译工具(apk反编译软件.rar(2.43 MB, 下载次数: 5756) )2、在系统环境变量Path里加入java.exe所在路径。

右键我的电脑--属性--高级系统--设置--环境变量--系统环境变量,里面的path变量项,值里面添加java的所在路径(例如“;C:\Program Files\Java\jre6\bin”)3、将反编译软件解压出来,为了便于使用,最好放在C:\Windows目录下。

二、提取并反编译framework-res.apk文件1、手机必须root,先用RE管理器将/system/framework文件夹下的文件framework-res.apk复制到/sdcard,然后复制到电脑(为了方便后面的操作,建议将文件放到电脑某个盘符的根目录下。

例如:e:\framework-res.apk)2、反编译framework-res.apk文件。

具体方法运行cmd.exe(如图)然后在出来的命令提示行中输入以下命令:apktool+空格d+空格+framework-res.apk路径+空格+反编译后文件存放路径,比如文件放入d盘根目录则命令为:apktool d d:\framework-res.apk d:\framework-res(如图)(此时反编译出来的文件放在d盘framework-res文件夹下)三、修改去震动相关的xml文件一般framework-res\res\values\arrays.xml就是我们要修改的对象。

用xml编辑器(xml 编辑器.rar(345.03 KB, 下载次数: 3223) )打开这个文件。

Android逆向工具篇—反编译工具的选择与使用

Android逆向工具篇—反编译工具的选择与使用

Android逆向⼯具篇—反编译⼯具的选择与使⽤作者 | 天天记⼩本⼦上的lilac 来源 | CSDN今天给⼤家介绍⼀下Android App 在Java层的逆向⼯具。

逆向⼯具的介绍在过去,当我们想要了解⼀个 app 内部运作细节时,往往先通过 ApkTool 反编译 APK,⽣成 smali 格式的反汇编代码[1],然后⼤佬和⽼⼿直接阅读 smali 代码,适当的进⾏修改、插桩、调试,经过⼀定的经验和猜想,理解程序的运⾏逻辑和加解密细节,⽐如如下的 smali 代码。

smail我们只要先这样,再那样,最后再这样,对对对,就这样,⼀个程序的加密就被破解出来了。

是不是迫不及待想来⼀次App的逆向之旅了?事实上,这种⽅式对⼩⽩实在不友好,有没有更加友好的⽅式呢?当然是有的,如果你百度或者 google 搜索逆向相关的教程和分享,很容易就会发现下⾯这三个⼯具。

在介绍⼯具之前,我们先补充⼀下APK结构的知识,我们以伊对这个社交 Apk 为例。

APK ⽂件其实是⼀种特殊的 zip 格式,我们可以直接⽤ 360 压缩或者别的压缩⼯具打开。

为了满⾜⾃⾝的功能和设计,⼏乎每⼀个都会在基础的⽂件结构上添加不少东西,但有六个部分是不变的,我们罗列和称述⼀下。

⽂件或⽬录作⽤META-INF/描述apk包信息的⽬录,主要存放了签名信息,配置信息,service注册信息res/存放apk资源⽂件的⽬录,⽐如图⽚、图标、字符串、样式、颜⾊assets/同样是存放apk资源⽂件的⽬录,但和res有差异,和我们关系不⼤resources.arsc资源索引,包含不同语⾔环境中res⽬录下所有资源的类型、名称与ID所对应的信息lib/存放so⽂件,越来越多的应⽤由C/C++编写核⼼代码,以SO⽂件的形式供上层JAVA代码调⽤,以保证安全性,这个⽬录是逆向解密关注的重点classes.dex(⼀个或数个)Android程序运⾏在Dalvik虚拟机上,⽽dex就是Dalvik虚拟机的可执⾏⽂件, 相当于Windows平台中的exe⽂件,通过反编译dex,可以获得apk源码(这个说法不很准确,但⽅便理解)AndroidManifest.xml清单⽂件,包含了App⼤量的的配置信息,⽐如包名、应⽤需要拥有的权限(打电话/录⾳/⽹络通信等等)、以及所有的界⾯和程序组件的信息,⽆法解压apk时直接打开,因为清单⽂件在apk打包过程中被编译成了⼆进制格式⽂件接下来我们介绍以下反编译⼯具,看⼀下反编译⼯具的作⽤⼯具作⽤ApkTool解析resources.arsc,AndroidManifest.xml等⽂件,反编译dex⽂件为smali源码Dex2jar将dex⽂件转化为jar⽂件Jd-gui反编译jar,查看java源码⽐如使⽤ Dex2jar+Jd-gui, 最终得到这样的结果。

Flash文件的破解与加密方法探秘

Flash文件的破解与加密方法探秘

Flash文件的破解与加密方法探秘破解和防破解是必是同时存在的对立体。

如同制造病毒和防范病毒一样,制造病毒的言论从不会公开出现在一些名门场合,所以每当病毒来袭,防范的一方总是措不及防。

我们更希望看到的不是偷偷摸摸,而是从破解和防范中学习到实用的技术和知识。

一、破解篇这里所谈的破解,包括提取swf、破解已加密及未加密的swf,即通常所说的“swf to fla”。

获取swf的工具·Flash Saver - 保存网页中的swf·Flash文件格式转换器(FlashChanger) - 转换未加壳的exe 为swf·Flash吸血鬼- 不得已时用之。

提取范围很广,只要能看到Flash的窗口,包括加壳及未加壳的exe、网页等等。

在使用Flash吸血鬼提取swf的过程中建议不要进行其他操作,否则速度会变得极其缓慢,配置不好的机器有可能死机。

这也是这款软件目前版本(v2.2)最大的一个不足之处。

如果想中止程序,可以在任务管理器中结束。

使用Temporary Internet Files(IE缓存)下载MV、SWF等资源偶尔会有网友问我关于网上MV 如何下载,其实方法很简单,只要到Temporary Internet Files 文件夹下就能找到想找的大部分网络资源。

Temporary Internet Files 是IE 的临时文件夹。

目录一般在C:\Documents and Settings\你的用户名\Local Settings\Temporary Internet Files使用Temporary Internet Files 查找资源的技巧:先清空Temporary Internet Files,然后用IE 打开或刷新你要找的资源(比如MV) 所在的网页。

再刷新Temporary Internet Files 就能看到了,如果资源比较大,需要过一会,等下载完后再刷新才能看到。

最全的脱壳,反编译 ,汇编工具集合

最全的脱壳,反编译 ,汇编工具集合

最全的脱壳,反编译 ,汇编工具集合.txt蜜蜂整日忙碌,受到赞扬;蚊子不停奔波,人见人打。

多么忙不重要,为什么忙才重要。

本文由nbdsb123456贡献最全的脱壳,反编译,汇编工具集合破解工具下载连接1 调试工具Ollydbg V1.10 正式汉化修改版+最新最全插件2.02mSmartCheck V6.20 20.54MCompuware SoftICE V4.3.1 精简版10.57MCompuware (SoftICE) Driver Studio V3.1 完全版176.52MTRW2000 V1.22 汉化修改版+全部最新插件1.47Mforwin9X动态破解VB P-code程序的工具WKTVBDebugger1.4e2 反汇编工具W32Dasm是一个静态反汇编工具,也是破解人常用的工具之一,它也被比作破解人的屠龙刀。

W32Dasm10.0修改版是经Killer在W32Dasm8.93基础上修改的,修改后的W32Dasm功能更强大,能完美显示中文字符串及VB程序,内含16进制编辑器,破解修改软件更容易,真可谓是反汇编极品!W32Dasm V10.0 汉化增强版419 KB反汇编工具老大,功能大大的胜过了w32dasm。

学习加解密的朋友不可错过。

即使不用你也要收藏一份。

:)IDA Pro Standard V4.60.785 零售版 + Flair + SDK33.08 MBC32Asm是集反汇编、16进制工具、Hiew修改功能与一体的新工具。

强烈推荐!C32Asm V0.4.12 1.97 MBC32Asm V0.4.12 破解补丁 650 KB3 反编译工具DelphiDeDe3.50.04 Fix增强版5.3 MB4 PE相关工具PE编辑工具Stud_PE1.8 PE工具,用来学习PE格式十分方便。

/tools/PE_tools/Editor/stdupe/Stud_PE1.8.zipProcDump32v1.6.2 FINAL Windows下的脱壳工具并可进行PE编辑。

vep破解方法

vep破解方法

vep破解方法随着科技的发展和互联网的普及,人们对于信息安全的需求越来越高。

VEP(Virtual Execution Platform)作为一种保护软件版权和防止盗版的技术,其在众多领域得到了广泛应用。

然而,与此同时,VEP破解的方法也应运而生。

本文将从以下几个方面对VEP破解方法进行分析:一、VEP破解方法的背景和意义VEP技术通过对软件进行加密,使得只有通过授权的终端才能正常运行。

这对于保护软件开发者权益具有重要意义。

然而,加密技术并非牢不可破,黑客们通过不断研究,找到了破解VEP的方法。

这些方法在一定程度上降低了VEP技术的保护效果,但也促使厂商不断完善技术。

二、VEP破解方法的具体步骤1.反编译:黑客首先需要获取软件的源代码,然后对其进行反编译,了解程序结构和加密算法。

2.调试和修改:通过对反编译后的代码进行调试,找到加密的关键部分,并对代码进行修改,以达到破解的目的。

3.重新编译:在修改完成后,黑客需要重新编译代码,使其能够在未授权的终端上正常运行。

4.测试与发布:完成编译后,黑客会对破解后的软件进行测试,确保其功能正常。

随后,将破解版发布到网络上,供其他人下载和使用。

三、VEP破解方法的优缺点分析优点:破解VEP技术能够帮助用户绕过版权限制,免费使用软件。

此外,破解过程中的一些技术手段对于网络安全研究也具有一定的参考价值。

缺点:破解VEP技术违反了法律法规,侵犯了软件开发者的权益。

此外,破解行为还可能导致恶意软件的传播,对用户信息安全造成威胁。

四、VEP破解方法的法律与道德问题在我国,破解VEP技术属于违法行为。

根据《著作权法》等相关法律法规,未经著作权人许可,擅自破解、传播破解方法或未经授权使用他人作品,都将承担法律责任。

从道德层面来看,破解VEP技术也容易导致不公平竞争和劣币驱逐良币的现象,不利于整个行业的发展。

五、总结与建议虽然VEP破解方法在一定程度上满足了用户的需求,但其法律和道德问题不容忽视。

ioncube解密方法

ioncube解密方法

ioncube解密方法ionCube是一种用于加密和保护PHP脚本的工具,它通过对PHP代码进行编码和混淆,使得脚本文件无法直接阅读和修改。

然而,有时候我们可能需要解密ionCube加密过的脚本,以便进行修改、调试或扩展。

下面是一些常用的ionCube解密方法。

1. 使用ionCube解密工具:一些开发者开发了一些专门用于解密ionCube加密脚本的工具,如UnLoader和IonCube_deobfuscator。

这些工具可以通过解码和还原ionCube加密的脚本,使其变得可读。

2. 使用ionCube解密服务:一些公司或个人提供ionCube解密服务,他们通常有专门的团队和技术,可以解密各种类型的ionCube加密脚本。

你可以通过向这些服务商提交你的加密脚本,并支付一定的费用,他们会为你提供解密后的脚本文件。

3. 反编译:ionCube加密的脚本经过编码和混淆,使其难以直接解密。

但是通过反编译可以将编译后的代码还原成源代码,从而实现解密。

反编译的过程较为复杂,需要一定的编程和逆向工程知识,可以使用一些专门的逆向工程工具,如IDA Pro、OllyDbg等。

4. 手动解密:对于一些简单的ionCube加密脚本,可以通过手动解密来获取原始代码。

手动解密的方法是通过分析加密脚本的结构和逻辑,逐步还原出原始代码。

这需要对PHP和ionCube加密算法有一定的了解和经验。

总结一下,解密ionCube加密脚本的方法有:使用专门的解密工具,借助解密服务,进行反编译,以及手动解密。

然而,需要注意的是,解密ionCube加密脚本可能涉及到版权和法律问题,在进行解密之前,应该确保自己有解密的合法权益。

同时,解密加密脚本也是一种技术活动,需要具备相关的知识和经验。

最后,强烈建议开发者在编写PHP脚本时,采取其他更可靠的方式来保护脚本的安全性,如代码混淆、许可证限制等。

各种对抗反编译的手段

各种对抗反编译的手段

各种对抗反编译的⼿段正是因为反编译这么简单,如果不加保护,我们的劳动成果就会被轻易盗取。

市⾯上⽐较常⽤的反编译⼯具有:dex2jar,jd-gui,apktool,IDA等等。

这⾥我简单的说⼀下dex2jar这个常⽤反编译⼯具的使⽤。

在下载到了dex2jar和jd-gui这两个⼯具之后。

1.将要反编译的APK后缀名改为.rar或 .zip,并解压-------------------------------------------------------------2.得到其中的classes.dex⽂件(它就是java⽂件编译再通过dx⼯具打包⽽成的),将获取到的classes.dex放到之前解压出来的⼯具dex2jar-0.0.9.15 ⽂件夹内-------------------------------------------------------------3.在命令⾏下定位到dex2jar.bat所在⽬录,输⼊dex2jar.bat classes.dex。

效果如下:在该⽬录下会⽣成⼀个classes_dex2jar.jar的⽂件,然后打开⼯具jd-gui⽂件夹⾥的jd-gui.exe,之后⽤该⼯具打开之前⽣成的classes_dex2jar.jar⽂件,便可以看到源码了,效果如下:被混淆过的效果图(类⽂件名称以及⾥⾯的⽅法名称都会以a,b,c....之类的样式命名):没有经过处理或者只是简单的混淆过的APP其代码的反编译的⽐较容易的。

你的代码经过上⾯那三步已经暴露出来了。

在下⾯提供的更多的途径来给各位学习反编译。

更多反编译的教程:-------------------------------------------------------------[size=21.3333339691162px]apktool反编译⼯具使⽤教程:-------------------------------------------------------------反编译与防⽌反编译:-------------------------------------------------------------⿊马Android视频教程——119_应⽤程序的反编译:怎样防⽌应⽤被破解?在知道了这么容易就可以破解我苦⼼经营的APP时,我的⼼是崩溃的。

angelscript 反编译

angelscript 反编译

Angelscript是一种脚本语言,常用于游戏开发中。

但是有时候开发者会遇到需要反编译Angelscript的情况。

本文将介绍如何进行Angelscript的反编译,希望对相关开发者有所帮助。

一、Angelscript的反编译概述Angelscript的反编译是指将Angelscript脚本文件转换为其原始代码或者可读的源代码的过程。

开发者可能需要进行反编译来理解游戏中的一些功能实现,或者进行bug修复等操作。

二、Angelscript反编译的工具1. Angelscript反编译器:市面上有许多Angelscript反编译器可供开发者选择,比如ASDec,AngelDebugger等。

这些工具可以帮助开发者将Angelscript脚本文件进行反编译,并且提供了一些辅助性的功能,比如变量跟踪、函数调用查看等。

2. 文本编辑器:除了专门的反编译工具,开发者也可以使用文本编辑器,比如Notepad++,Sublime Text等,来对Angelscript脚本文件进行反编译。

这种方法需要开发者对Angelscript语法有一定的了解,但是也可以达到相同的效果。

三、Angelscript反编译的步骤1. 选择合适的反编译工具:根据自己的需求选择合适的Angelscript 反编译工具,如果是初学者建议使用一些简单易用的工具,比如ASDec。

2. 打开需要反编译的Angelscript文件:使用选定的反编译工具打开需要反编译的Angelscript文件。

3. 进行反编译:根据工具的操作指引进行反编译操作,通常情况下只需点击几个按钮即可完成整个反编译过程。

四、Angelscript反编译的注意事项1. 法律风险:在进行Angelscript反编译时,开发者需要注意相关的法律风险,确保自己的操作不会侵犯到他人的知识产权。

2. 熟悉Angelscript语法:进行反编译需要对Angelscript语法有一定的了解,如果开发者对Angelscript并不熟悉,可能会造成反编译的困难。

flash_快捷键大全

flash_快捷键大全

调试影片命令文件(F)新建(N)... Ctrl+N打开(O)... Ctrl+O在 Bridge 中浏览 Ctrl+Alt+O 关闭(C) Ctrl+W全部关闭 Ctrl+Alt+W共享我的屏幕...退出(X) Ctrl+Q编辑(E)复制(C) Ctrl+C全选(L) Ctrl+A查找(N)... Ctrl+F再次查找(A) F3转到行(G)... Ctrl+G首选参数(F)... Ctrl+U快捷键(K)...视图(V)隐藏字符(C) Ctrl+Shift+8自动换行(W) Ctrl+Shift+W隐藏面板(P) F4调试(D)继续(C) Alt+F5结束调试会话(E) Alt+F12跳入(I) Alt+F6跳过(V) Alt+F7跳出(O) Alt+F8切换断点(B) Ctrl+B删除所有断点(A) Ctrl+Shift+B 开始远程调试会话(R) ActionScript 3.0ActionScript 2.0窗口(W)工具栏(O)主工具栏(M)控制器(O)编辑栏(E)时间轴 Ctrl+Alt+T工具 Ctrl+F2属性(P) Ctrl+F3库(L) Ctrl+L, F11公用库(B)libraries动画预设动作(A) F9行为 Shift+F3编译器错误 Alt+F2调试面板(D)变量ActionScript 2.0 调试器 Shift+F4影片浏览器(M) Alt+F3输出(U) F2对齐(G) Ctrl+K颜色(C) Shift+F9信息(I) Ctrl+I样本(W) Ctrl+F9变形(T) Ctrl+T组件(X) Ctrl+F7组件检查器(R) Shift+F7其他面板辅助功能(A) Shift+F11历史记录(H) Ctrl+F10场景(S) Shift+F2屏幕(C)字符串(T) Ctrl+F11Web 服务(W) Ctrl+Shift+F10项目扩展工作区(S)隐藏面板(H) F4帮助(H)Flash 帮助(H) F1Adobe 产品改进计划(I)...Flash Exchange管理扩展功能(M)...Flash 技术支持中心(S)Adobe 在线论坛(F)Adobe 培训(T)Updates...关于 Adobe Flash CS4 Professional (A)绘画菜单命令文件(F)新建(N)... Ctrl+N打开(O)... Ctrl+O在 Bridge 中浏览 Ctrl+Alt+O关闭(C) Ctrl+W全部关闭 Ctrl+Alt+W保存(S) Ctrl+S保存并压缩(M)另存为(A)... Ctrl+Shift+S另存为模板(T)...存回...全部保存还原(H)导入(I)导入到舞台(I)... Ctrl+R导入到库(L)...打开外部库(O)... Ctrl+Shift+O导入视频...导出(E)导出图像(E)...导出影片(M)... Ctrl+Alt+Shift+S发布设置(G)... Ctrl+Shift+F12发布预览(R)默认(D) - (HTML) F12, Ctrl+F12FlashHTMLGIFJPEGPNG放映文件(R)发布(B) Shift+F12AIR 设置...文件信息...共享我的屏幕...页面设置(U)...打印(P)... Ctrl+P发送(D)...退出(X) Ctrl+Q编辑(E)撤消(U) 导入 Ctrl+Z重做(R) Ctrl+Y剪切(T) Ctrl+X复制(C) Ctrl+C粘贴到中心位置(J) Ctrl+V粘贴到当前位置(P) Ctrl+Shift+V选择性粘贴(O)...清除(Q) Backspace, Clear, Delete直接复制(D) Ctrl+D全选(L) Ctrl+A取消全选(V) Ctrl+Shift+A查找和替换(F) Ctrl+F查找下一个(N) F3时间轴(M)删除帧(R) Shift+F5剪切帧(T) Ctrl+Alt+X复制帧(C) Ctrl+Alt+C粘贴帧(P) Ctrl+Alt+V清除帧(L) Alt+Backspace选择所有帧(S) Ctrl+Alt+A复制动画(X)将动画复制为 ActionScript 3.0 脚本(O)... 粘贴动画(A)选择性粘贴动画...编辑元件(E) Ctrl+E编辑所选项目(I)在当前位置编辑(E)全部编辑(A)首选参数(S)... Ctrl+U自定义工具面板(Z)...字体映射(G)...快捷键(K)...视图(V)转到(G)第一个(F) Home前一个(P) Page Up下一个(N) Page Down最后一个(L) End放大(I) Ctrl+=缩小(O) Ctrl+-缩放比率(M)符合窗口大小(W)25%50%100% Ctrl+1200%400% Ctrl+4800% Ctrl+8显示帧(F) Ctrl+2显示全部(A) Ctrl+3预览模式(P)轮廓(U) Ctrl+Alt+Shift+O高速显示(S) Ctrl+Alt+Shift+F消除锯齿(N) Ctrl+Alt+Shift+A消除文字锯齿(T) Ctrl+Alt+Shift+T 整个(F)粘贴板 Ctrl+Shift+W标尺(R) Ctrl+Alt+Shift+R网格(D)显示网格(D) Ctrl+'编辑网格(E)... Ctrl+Alt+G辅助线(E)显示辅助线(U) Ctrl+;锁定辅助线(K) Ctrl+Alt+;编辑辅助线... Ctrl+Alt+Shift+G 清除辅助线贴紧(S)贴紧对齐(S)贴紧至网格(R) Ctrl+Shift+'贴紧至辅助线(G) Ctrl+Shift+;贴紧至像素(P)贴紧至对象(O) Ctrl+Shift+/编辑贴紧方式(E)... Ctrl+/隐藏边缘(H) Ctrl+H显示形状提示(A) Ctrl+Alt+H显示 Tab 键顺序(T)插入(I)新建元件(N)... Ctrl+F8补间动画补间形状(Z)传统补间(C)时间轴(T)图层(L)图层文件夹(O)帧(F) F5关键帧(K)空白关键帧(B)场景(S)修改(M)文档(D)... Ctrl+J转换为元件(C)... F8分离(K) Ctrl+B位图(B)交换位图(S)...转换位图为矢量图(B)...元件(S)交换元件(W)...直接复制元件(D)...形状(P)高级平滑(S)... Ctrl+Alt+Shift+M 高级伸直(T)... Ctrl+Alt+Shift+N 优化(O)... Ctrl+Alt+Shift+C将线条转换为填充(C)扩展填充(E)...柔化填充边缘(F)...添加形状提示(A) Ctrl+Shift+H删除所有提示(M)合并对象(O)删除封套联合交集打孔裁切时间轴(M)分散到图层(D) Ctrl+Shift+D图层属性(L)...翻转帧(R)同步元件(S)转换为关键帧(K) F6清除关键帧(A) Shift+F6转换为空白关键帧(B) F7变形(T)扭曲(D)封套(E)缩放(S)旋转与倾斜(R)缩放和旋转(C)... Ctrl+Alt+S顺时针旋转 90 度(0) Ctrl+Shift+9 逆时针旋转 90 度(9) Ctrl+Shift+7 垂直翻转(V)水平翻转(H)取消变形(T) Ctrl+Shift+Z排列(A)移至顶层(F) Ctrl+Shift+上箭头上移一层(R) Ctrl+上箭头下移一层(E) Ctrl+下箭头移至底层(B) Ctrl+Shift+下箭头锁定(L) Ctrl+Alt+L解除全部锁定(U) Ctrl+Alt+Shift+L 对齐(N)左对齐(L) Ctrl+Alt+1水平居中(C) Ctrl+Alt+2右对齐(R) Ctrl+Alt+3顶对齐(T) Ctrl+Alt+4垂直居中(V) Ctrl+Alt+5底对齐(B) Ctrl+Alt+6按宽度均匀分布(D) Ctrl+Alt+7按高度均匀分布(H) Ctrl+Alt+9设为相同宽度(M) Ctrl+Alt+Shift+7 设为相同高度(S) Ctrl+Alt+Shift+9 相对舞台分布(G) Ctrl+Alt+8组合(G) Ctrl+G取消组合(U) Ctrl+Shift+G文本(T)样式(Y)粗体(B) Ctrl+Shift+B斜体(I) Ctrl+Shift+I仿粗体(F)仿斜体(T)下标(S)上标(U)对齐(A)左对齐(L) Ctrl+Shift+L居中对齐(C) Ctrl+Shift+C右对齐(R) Ctrl+Shift+R两端对齐(J) Ctrl+Shift+J字母间距(L)增加(I) Ctrl+Alt+右箭头减小(D) Ctrl+Alt+左箭头重置(R) Ctrl+Alt+上箭头检查拼写(C)...拼写设置(P)...命令(C)管理保存的命令(M)...获取更多命令(G)...运行命令(R)...复制 ActionScript 的字体名称导入动画 XML导出动画 XML将动画复制为 XML控制(O)播放(P) Enter后退(R) Shift+,, Ctrl+Alt+R 转到结尾(G) Shift+.前进一帧(F) .后退一帧(B) ,测试影片(M) Ctrl+Enter测试场景(S) Ctrl+Alt+Enter 删除 ASO 文件(C)删除 ASO 文件和测试影片(D) 循环播放(L)播放所有场景(A)启用简单帧动作(I) Ctrl+Alt+F 启用简单按钮(T) Ctrl+Alt+B 启用动态预览(W)静音(N) Ctrl+Alt+M窗口(W)直接复制窗口(F) Ctrl+Alt+K 工具栏(O)主工具栏(M)控制器(O)编辑栏(E)时间轴(J) Ctrl+Alt+T动画编辑器工具(K) Ctrl+F2属性(P) Ctrl+F3库(L) Ctrl+L, F11公用库(N)声音按钮类动画预设动作(A) F9行为(B) Shift+F3编译器错误(E) Alt+F2调试面板(D)变量ActionScript 2.0 调试器 Shift+F4影片浏览器(M) Alt+F3输出(U) F2对齐(G) Ctrl+K颜色(C) Shift+F9信息(I) Ctrl+I样本(W) Ctrl+F9变形(T) Ctrl+T组件(X) Ctrl+F7组件检查器(Q) Shift+F7其他面板(R)辅助功能(A) Shift+F11历史记录(H) Ctrl+F10场景(S) Shift+F2屏幕(C)字符串(T) Ctrl+F11Web 服务(W) Ctrl+Shift+F10项目扩展工作区(S)动画传统调试设计人员开发人员基本功能重置 '传统'(R)新建工作区(N)...管理工作区(M)...隐藏面板(P) F4帮助(H)Flash 帮助(H) F1Adobe 产品改进计划(B)...Flash Exchange管理扩展功能(M)...Flash 技术支持中心(S)Adobe 在线论坛(F)Adobe 培训(T)Updates...关于 Adobe Flash CS4 Professional (A)工具面板箭头 V部分选定 A套索 L线 N钢笔 P删除锚点 -转换锚点 C文本 T椭圆 O矩形 R基本椭圆 O基本矩形 R铅笔 Y刷子 B墨水瓶 S颜料桶 K滴管 I橡皮擦 E手形 H放大镜 M任意变形 Q填充变形 F对象绘制 J3D 平移工具 G3D 旋转工具 W全局转换 DDeco 工具 U喷涂刷 B骨骼工具 X绑定工具 Z测试影片菜单命令文件(F)关闭(C) Ctrl+W视图(V)放大 Ctrl+=缩小 Ctrl+-缩放比率25%50%100% Ctrl+1200%400% Ctrl+4800% Ctrl+8显示帧(F) Ctrl+2显示全部(A) Ctrl+3带宽设置(B) Ctrl+B数据流图表(T) Ctrl+G 帧数图表(F) Ctrl+F模拟下载(S) Ctrl+Enter 下载设置(D)用户设置 1用户设置 2用户设置 4用户设置 5用户设置 6用户设置 7用户设置 8自定义...品质低中高显示重绘区域(R) Ctrl+E控制(C)播放(P) Enter后退(R) Shift+,, Ctrl+Alt+R循环(L)前进一帧(F) .后退一帧(B) ,禁用快捷键调试(D)继续(C) Alt+F5结束调试会话(E) Alt+F12跳入(I) Alt+F6跳过(G) Alt+F7跳出(D) Alt+F8切换断点(B)删除所有断点(A)开始远程调试会话(R)ActionScript 3.0ActionScript 2.0列出对象(O) Ctrl+L列出变量(V) Ctrl+Alt+V窗口(W)工具栏(O)主工具栏(M)控制器(O)ActionScript 2.0 调试器(D) Shift+F4 输出(U) F2帮助(H)Flash 帮助(H) F1Adobe 产品改进计划(A)...Flash Exchange管理扩展功能(M)...Flash 技术支持中心(S)Adobe 在线论坛(F)Adobe 培训(T)Updates...脚本编辑命令文件(F)新建(N)... Ctrl+N打开(O)... Ctrl+O在 Bridge 中浏览 Ctrl+Alt+O关闭(C) Ctrl+W全部关闭 Ctrl+Alt+W保存(S) Ctrl+S另存为(A)... Ctrl+Shift+S存回...全部保存还原(R)导入脚本(I)... Ctrl+Shift+I打印(P)... Ctrl+P共享我的屏幕...退出(X) Ctrl+Q编辑(E)撤消(U) Ctrl+Z重做(R) Ctrl+Y剪切(T) Ctrl+X复制(C) Ctrl+C粘贴(P) Ctrl+V删除(D) Backspace, Clear, Delete 全选(L) Ctrl+A查找和替换(N)... Ctrl+F再次查找(A) F3转到行(G)... Ctrl+G缩进代码(I) Ctrl+[凸出代码(O) Ctrl+]平衡大括号(B) Ctrl+'代码折叠(S)成对大括号间折叠(B) Ctrl+Shift+' 折叠所选(L) Ctrl+Shift+C折叠所选之外(O) Ctrl+Alt+C展开所选(E) Ctrl+Shift+X展开全部(X) Ctrl+Alt+X应用注释应用 // 注释删除注释首选参数(F)... Ctrl+U快捷键(K)...视图(V)Esc 快捷键(E)隐藏字符(C) Ctrl+Shift+8行号(L) Ctrl+Shift+L自动换行(W) Ctrl+Shift+W隐藏面板(P) F4工具(T)自动套用格式(A) Ctrl+Shift+F语法检查(C) Ctrl+T显示代码提示(S) Ctrl+Spacebar控制(O)测试影片(T) Ctrl+Enter删除 ASO 文件(F)删除 ASO 文件和测试影片(M)调试(D)调试影片(D) Ctrl+Shift+Enter继续(C) Alt+F5结束调试会话(E) Alt+F12跳入(I) Alt+F6跳过(V) Alt+F7跳出(O) Alt+F8切换断点(B) Ctrl+B删除此文件中的断点(K) Ctrl+Shift+B 删除所有 AS 文件中的断点(A)开始远程调试会话(R)ActionScript 3.0ActionScript 2.0窗口(W)工具栏(O)主工具栏(M)控制器(O)编辑栏(E)时间轴 Ctrl+Alt+T工具 Ctrl+F2属性(P) Ctrl+F3库(L) Ctrl+L, F11公用库(B)libraries动画预设动作(A) F9行为 Shift+F3编译器错误 Alt+F2调试面板(D)调试控制台变量ActionScript 2.0 调试器 Shift+F4 影片浏览器(M) Alt+F3输出(U) F2对齐(G) Ctrl+K颜色(C) Shift+F9信息(I) Ctrl+I样本(W) Ctrl+F9变形(T)组件(X) Ctrl+F7组件检查器(R) Shift+F7其他面板辅助功能(A) Shift+F11历史记录(H) Ctrl+F10场景(S) Shift+F2屏幕(C)字符串(T) Ctrl+F11Web 服务(W) Ctrl+Shift+F10项目扩展工作区(S)隐藏面板(H) F4帮助(H)Flash 帮助(H) F1Adobe 产品改进计划(G)...Flash Exchange管理扩展功能(M)...Flash 技术支持中心(S)Adobe 在线论坛(F)Adobe 培训(T)Updates...关于 Adobe Flash CS4 Professional (A)工作区辅助功能命令面板焦点前置 Ctrl+F6面板焦点后置 Ctrl+Shift+F6选择舞台 Ctrl+Alt+Home选择下一个对象 Tab选择上一个对象 Shift+Tab动作面板命令自动套用格式 Ctrl+Shift+F语法检查 Ctrl+T显示代码提示 Ctrl+Spacebar脚本助手 Ctrl+Shift+EEsc 快捷键隐藏字符 Ctrl+Shift+8行号 Ctrl+Shift+L自动换行 Ctrl+Shift+W再次查找 F3查找和替换... Ctrl+F转到行... Ctrl+G平衡大括号 Ctrl+'缩进代码 Ctrl+[凸出代码 Ctrl+]代码折叠成对大括号间折叠 Ctrl+Shift+'折叠所选 Ctrl+Shift+C折叠所选之外 Ctrl+Alt+C展开所选 Ctrl+Shift+X展开全部 Ctrl+Alt+X应用注释应用 // 注释。

Android软件代码反编译方法

Android软件代码反编译方法

Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,类似Sun JavaMe 的Jar压缩格式一样,不过比较去别的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。

所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。

Google最然在Android Market上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。

dexdump是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件dump到txt文件中:D:\ProgramFiles\android-sdk-windows-1.6_r1\platforms\android-1.6\tools> dexdump.exe -d classes.dex > spk.dump.txt得到的文件内容,描述了类的信息,但是不怎么好阅读这个方法就强大了,AXMLPrinter2是还原AndroidManifest.xml和main.xml的工具,直接打开这两个xml文件是乱码,而通过还原之后,可以很明白的看到里面的内容(我猜测还是使用了字节异或的方式加的密)。

baksmali.jar是反解析dex的工具,smali.jar则是再还原成dex的工具操作方式如下:1.1、java -jar AXMLPrinter2.jar D:\play\AndroidManifest.xml >AndroidManifest.txt2.2、java -jar AXMLPrinter2.jar D:\play\res\layout\main.xml > main.txt3.3、java -jar baksmali-1.2.5.jar -o classout/d:\play\classes.dex复制代码baksmali可解析(注意,是解析,不是反编译)原java包以及引用的lib包,解析出的文件认真看还是能看懂,比如以下片段:1.2.3.view plaincopy to clipboardprint?4..class Lcom/paul/test/a;5..super Landroid/view/View;6.7.# static fields8..field private static final a:Landroid/graphics/Typeface;9.10.# instance fields11..field private b:I12..field private c:I13..field private d:Z14..field private e:J15..field private f:I16..field private l:[Ljava/lang/String;17.18.# direct methods19..method static constructor <clinit>()V20. .registers 221. sget-object v0,Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;22. const/4 v1, 0x023. invoke-static {v0, v1},Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)La ndroid/graphics/Typeface;24. move-result-object v025. sput-object v0,Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;26. return-void27..end method28.#29.# other methods ..........30.#31.# virtual methods32..method public onKeyUp(ILandroid/view/KeyEvent;)Z33. .registers 434. const/16 v0, 0x4235. if-eq p1, v0, :cond_836. const/16 v0, 0x1737. if-ne p1, v0, :cond_b38. :cond_839. invoke-direct {p0}, Lcom/paul/test/a;->d()V40. :cond_b41. const/4 v0, 0x042. invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V43. invoke-super {p0, p1, p2},Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z44. move-result v045. return v046..end method47..class Lcom/paul/test/a;48..super Landroid/view/View;49.50.# static fields51..field private static final a:Landroid/graphics/Typeface;52.53.# instance fields54..field private b:I55..field private c:I56..field private d:Z57..field private e:J58..field private f:I59..field private l:[Ljava/lang/String;60.61.# direct methods62..method static constructor <clinit>()V63. .registers 264. sget-object v0,Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;65. const/4 v1, 0x066. invoke-static {v0, v1},Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)La ndroid/graphics/Typeface;67. move-result-object v068. sput-object v0,Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;69. return-void70..end method71.#72.# other methods ..........73.#74.# virtual methods75..method public onKeyUp(ILandroid/view/KeyEvent;)Z76. .registers 477. const/16 v0, 0x4278. if-eq p1, v0, :cond_879. const/16 v0, 0x1780. if-ne p1, v0, :cond_b81. :cond_882. invoke-direct {p0}, Lcom/paul/test/a;->d()V83. :cond_b84. const/4 v0, 0x085. invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V86. invoke-super {p0, p1, p2},Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z87. move-result v088. return v089..end method90.复制代码认真一看,就知道:# static fields 定义静态变量的标记# instance fields 定义实例变量的标记# direct methods 定义静态方法的标记# virtual methods 定义非静态方法的标记以onKeyUp方法为例,其中定义了处理逻辑,if-eq p1, v0, :cond_8 表示如果p1和v0相等,则执行cond_8的流程:1.2. :cond_83. invoke-direct {p0}, Lcom/paul/test/a;->d()V4.复制代码调用com.paul.test.a的d()方法不相等:if-ne p1, v0, :cond_b 则执行cond_b的流程:1.2. :cond_b3. const/4 v0, 0x04.5. invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V6.7. invoke-super {p0, p1, p2},Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z 8.9. move-result v010.复制代码大概意思就是调用com.paul.test.a的setPressed方法,然后再调用父类View的onKeyUp方法最后1.return v0复制代码该方法,能把外部引用的lib包类也解析出来,能开到包的全貌。

vlx代码反编译

vlx代码反编译

vlx代码反编译VLX(Virtual Lightweight Xcode)是一种用于代码反编译的工具,它可以将编译后的代码重新转换为可读的源代码。

本文将探讨VLX 代码反编译的过程和应用,并分析其在软件开发和安全领域中的重要性。

第一部分:VLX代码反编译的基本原理VLX代码反编译是通过分析二进制文件的结构和指令来实现的。

在编译过程中,源代码会经过多个阶段的转换,最终生成机器码。

VLX 可以将这些机器码还原为原始的源代码形式,使开发者能够更好地理解和修改已编译的程序。

VLX代码反编译的基本原理是通过解析二进制文件的结构,并将其转换为中间表示形式。

这个中间表示形式类似于高级编程语言,但比较低级。

然后,VLX根据这个中间表示形式生成可读的源代码。

第二部分:VLX代码反编译的应用领域1. 代码审计:VLX代码反编译可以帮助开发人员和安全专家分析已编译程序的源代码,发现潜在的漏洞和安全问题。

通过分析反编译后的代码,可以确定是否存在代码注入、缓冲区溢出等常见的安全漏洞。

2. 逆向工程:VLX代码反编译在逆向工程中发挥着重要的作用。

逆向工程是指对已有的二进制文件进行分析和修改的过程。

VLX可以将二进制文件还原为源代码形式,使得逆向工程变得更加容易。

逆向工程常用于分析和修改第三方应用程序,以实现一些自定义的功能或修复已有的问题。

3. 软件维护:VLX代码反编译也可以帮助软件开发人员进行代码维护。

当项目的原始源代码丢失或不可用时,VLX可以将已编译的程序还原为源代码形式,使得开发人员能够继续修改和维护这些程序。

第三部分:VLX代码反编译的优势和局限性1. 优势:- VLX可以将已编译的程序还原为源代码形式,使得开发人员能够更好地理解和修改这些程序。

- VLX可以帮助安全专家发现潜在的安全漏洞和问题,从而提高软件的安全性。

- VLX可以用于逆向工程,使得分析和修改第三方应用程序变得更加容易。

- VLX可以帮助软件开发人员进行代码维护,即使原始源代码丢失或不可用。

[安卓ROM定制教程4]APK反编译及重编译过程

[安卓ROM定制教程4]APK反编译及重编译过程

[安卓ROM定制教程4] APK反编译及重编译过程By Ry09iu欢迎关注本人微博获取更多教程: /zuhdroid QQ交流群33616843这篇教程教大家如何反编译apk程序,并且如何重编译为apk。

一般我们在进行ROM美化或者汉化的时候会经常用到反编译apk。

在这里,我们以反编译cm7中system/app/SystemUI.apk为例1、下载我提供的土豆工具箱,原版中apktool工具版本为v1.3.2,我已将之更新为v1.4.2,并为了方便大家使用,修改了原版设定的资源包名称。

土豆工具箱下载:/file/dpfnn81q#土豆ROM工具箱.rar2、下载后解压,得到两个文件和一个文件夹data。

3、当我们反编译某rom中自带的apk时,需要提取该rom的资源包,也就是system/framework/framework-res.apk,提取此文件复制到data目录。

(有些机型的资源包不是这个名字,如果不是,需要手动更改为此名称)4、运行土豆ROM工具箱.bat ,按0,回车,再回车5、加载资源完毕后按回车,然后关闭此窗口,至此,资源包加载完毕,以后如果仍然是反编译这个rom的系统程序,将无需重复导入。

(但如果你之前导入的资源是cm7的,之后你想要反编译官方rom中的程序,那么你需要导入官方rom中的资源包,否则反编译或者重编译会报错)。

6、再次运行土豆ROM工具箱.bat ,按3,回车,这时,土豆工具箱所在的目录生成一个新文件夹“需要解包-apk”,窗口不要关闭,现在复制cm7中的SystemUI.apk到“需要解包-apk”文件夹中,回到工具窗口,按回车,反编译开始,时间长短视程序大小而定,一般不会太久。

7、出现类似如下的提示即为正常,你也可能会遇到报错情况,关于报错的处理,我会单独出教程,一般情况下,cm7中的系统程序不会报错,除非你没加载资源。

》》》SystemUI.apk 解包中...《《《I: Baksmaling...testI: Loading resource table...I: Loaded.I: Loading resource table from file: C:\Documents and Settings\Administrator\apktool\framework\1.apkI: Loaded.I: Decoding file-resources...I: Decoding values*/* XMLs...I: Done.I: Copying assets and libs...》》》SystemUI.apk 解包完成!《《《移动了 1 个文件。

在asp中通过vbs类实现rsa加密与解密

在asp中通过vbs类实现rsa加密与解密

在asp中通过vbs类实现rsa加密与解密本文章有两文件组成test.asp 测试演示文件clsrsa.asp 实现rsa加密与解密的vbs类文件下面是代码:1. test.asp<%rem 文章标题:在asp中通过vbs类实现rsa加密与解密rem 收集整理:yanekrem 联系:**************%><%Option Explicit%><%Dim LngKeyEDim LngKeyDDim LngKeyNDim StrMessageDim ObjRSAIf Not Request.Form = '' ThenLngKeyE = Request.Form('KeyE')LngKeyD = Request.Form('KeyD')LngKeyN = Request.Form('KeyN')StrMessage = Request.Form('Message')Set ObjRSA = New clsRSASelect Case Request.Form('Action')Case 'Generate Keys'Call ObjRSA.GenKey()LngKeyE = ObjRSA.PublicKeyLngKeyD = ObjRSA.PrivateKeyLngKeyN = ObjRSA.ModulusCase 'Encrypt'ObjRSA.PublicKey = LngKeyEObjRSA.Modulus = LngKeyNStrMessage = ObjRSA.Encode(StrMessage)Case 'Decrypt'ObjRSA.PrivateKey = LngKeyDObjRSA.Modulus = LngKeyNStrMessage = ObjRSA.Decode(StrMessage)End SelectSet ObjRSA = NothingEnd If%>RSA Cipher DemonstrationYou will first need to generate your public/privage key-pair before you can encrypt/decrypt messages.Public KeyModulusTest Message:clsrsa.asp<%rem 实现rsa加密与解密的vbs类文件rem 文章标题:在asp中通过vbs类实现rsa加密与解密rem 收集整理:yanekrem 联系:**************' RSA Encryption Class'' .PrivateKey' Your personal private key. Keep this hidden.'' .PublicKey' Key for others to encrypt data with.'' .Modulus' Used with both public and private keys when encrypting ' and decrypting data.'' .GenKey()' Creates Public/Private key set and Modulus'' .Crypt(pLngMessage, pLngKey)' Encrypts/Decrypts message and returns' as a string.'' .Encode(pStrMessage)' Encrypts message and returns in double-hex format'' .Decode(pStrMessage)' Decrypts message from double-hex format and returns a string'Class clsRSAPublic PrivateKeyPublic PublicKeyPublic ModulusPublic Sub GenKey()Dim lLngPhiDim qDim pRandomizeDoDo' 2 random primary numbers (0 to 1000)Dop = Rnd * 1000 \ 1Loop While Not IsPrime(p)Doq = Rnd * 1000 \ 1Loop While Not IsPrime(q)' n = product of 2 primesModulus = p * q \ 1' random decryptor (2 to n)PrivateKey = Rnd * (Modulus - 2) \ 1 + 2lLngPhi = (p - 1) * (q - 1) \ 1PublicKey = Euler(lLngPhi, PrivateKey)Loop While PublicKey = 0 Or PublicKey = 1' Loop if we can't crypt/decrypt a byteLoop While Not TestCrypt(255)End SubPrivate Function TestCrypt(ByRef pBytData)Dim lStrCryptedlStrCrypted = Crypt(pBytData, PublicKey) TestCrypt = Crypt(lStrCrypted, PrivateKey) = pBytData End FunctionPrivate Function Euler(ByRef pLngPHI, ByRef pLngKey) Dim lLngR(3)Dim lLngP(3)Dim lLngQ(3)Dim lLngCounterDim lLngResultEuler = 0lLngR(1) = pLngPHI: lLngR(0) = pLngKeylLngP(1) = 0: lLngP(0) = 1lLngQ(1) = 2: lLngQ(0) = 0lLngCounter = -1Do Until lLngR(0) = 0lLngR(2) = lLngR(1): lLngR(1) = lLngR(0)lLngP(2) = lLngP(1): lLngP(1) = lLngP(0)lLngQ(2) = lLngQ(1): lLngQ(1) = lLngQ(0) lLngCounter = lLngCounter + 1lLngR(0) = lLngR(2) Mod lLngR(1)lLngP(0) = ((lLngR(2)\lLngR(1)) * lLngP(1)) + lLngP(2) lLngQ(0) = ((lLngR(2)\lLngR(1)) * lLngQ(1)) + lLngQ(2) LooplLngResult = (pLngKey * lLngP(1)) - (pLngPHI * lLngQ(1)) If lLngResult > 0 ThenEuler = lLngP(1)ElseEuler = Abs(lLngP(1)) + pLngPHIEnd IfEnd FunctionPublic Function Crypt(pLngMessage, pLngKey)On Error Resume NextDim lLngModDim lLngResultDim lLngIndexIf pLngKey Mod 2 = 0 ThenlLngResult = 1For lLngIndex = 1 To pLngKey / 2lLngMod = (pLngMessage ^ 2) Mod Modulus' Mod may error on key generationlLngResult = (lLngMod * lLngResult) Mod ModulusIf Err Then Exit FunctionNextElselLngResult = pLngMessageFor lLngIndex = 1 To pLngKey / 2lLngMod = (pLngMessage ^ 2) Mod ModulusOn Error Resume Next' Mod may error on key generationlLngResult = (lLngMod * lLngResult) Mod ModulusIf Err Then Exit FunctionNextEnd IfCrypt = lLngResultEnd FunctionPrivate Function IsPrime(ByRef pLngNumber)Dim lLngSquareDim lLngIndexIsPrime = FalseIf pLngNumber < 2 Then Exit FunctionIf pLngNumber Mod 2 = 0 Then Exit Function lLngSquare = Sqr(pLngNumber)For lLngIndex = 3 To lLngSquare Step 2If pLngNumber Mod lLngIndex = 0 Then Exit Function NextIsPrime = TrueEnd FunctionPublic Function Encode(ByVal pStrMessage)Dim lLngIndexDim lLngMaxIndexDim lBytAsciiDim lLngEncryptedlLngMaxIndex = Len(pStrMessage)If lLngMaxIndex = 0 Then Exit FunctionFor lLngIndex = 1 To lLngMaxIndexlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) lLngEncrypted = Crypt(lBytAscii, PublicKey)Encode = Encode & NumberToHex(lLngEncrypted, 4)NextEnd FunctionPublic Function Decode(ByVal pStrMessage)Dim lBytAsciiDim lLngIndexDim lLngMaxIndexDim lLngEncryptedDataDecode = ''lLngMaxIndex = Len(pStrMessage)For lLngIndex = 1 To lLngMaxIndex Step 4lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))lBytAscii = Crypt(lLngEncryptedData, PrivateKey)Decode = Decode & Chr(lBytAscii)NextEnd FunctionPrivate Function NumberT oHex(ByRef pLngNumber, ByRef pLngLength)NumberT oHex = Right(String(pLngLength, '0') & Hex(pLngNumber), pLngLength)End FunctionPrivate Function HexToNumber(ByRef pStrHex)HexToNumber = CLng('&h' & pStrHex)End FunctionEnd Class%>演示地址:/myrsa/test.asp。

Android逆向分析实例(三)-解密微信EnMicroMsg.db数据库

Android逆向分析实例(三)-解密微信EnMicroMsg.db数据库

Android逆向分析实例(三)-解密微信EnMicroMsg.db数据库1.简介⾸先介绍下EnMicroMsg.db数据库:这个数据库是存放在Android⼿机本地的⽤来保存微信聊天记录的⼀个数据库,是⼀个Sqlite数据库,且⼿机必须要有root权限才能获取到,⽽且是被加密过的,必须先找到密钥才能打开。

我们现在要做的就是找到这个密钥。

⽹上关于该数据库的解密⽅法⼏乎都⼀样:⾸先通过微信的 system_config_prefs.xml ⽂件获取uin值,然后获取⼿机的IMEI值,最后 (IMEI值+uin值)取MD5的前七位就是数据库的密码。

说下这个⽅法的缺陷:1. 该⽅法只能在微信没有修改加密算法的前提下使⽤,⼀旦新版本微信修改加密算法,此⽅法就会⽴刻失效。

2. ⽽且前两天⾃⼰在微信8.0.2版本尝试过这种⽅法,⽣成的密钥并不正确。

下⾯将介绍通过frida hook⽅法获取数据库密钥。

实验准备:1. 微信(版本任意,我的版本是8.0.2)2. frida环境配置(没有配置环境的可以看这篇⽂章:)3. ⼀台拥有root权限的⼿机或者模拟器4. SqlCipher⼯具(⽤来打开数据库,关注下⾯公众号回复sqlcipher获取下载链接)2.实验⾸先将EnMicroMsg.db⽂件从模拟器(⼿机)复制到电脑上(⼿机或者模拟器要登陆微信):adb pull /data/data/com.tencent.mm/MicroMsg/8e1435ec4ddf157ca48ec73b4fc108ac/EnMicroMsg.db C:\Users\lxh\Desktop\WeiXin\EnMicroMsg#8e1435ec4ddf157ca48ec73b4fc108ac这个⽂件夹名称可能不⼀样,要注意⼀下。

然后可以这样想:微信在启动时,肯定会连接到这个数据库,连接后需要⼀个函数以及密码来打开数据库读取其中的内容,我们要做的就是找到这个打开数据库的函数,然后⽤frida hook 这个函数,打印出密码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档