我定制的一套Apklol脚本源码。最后作者不给我源码、最后不合跟我封掉了、。还有破解他的Apklol脚本源码有什么直接

君,已阅读到文档的结尾了呢~~
基于An droid定制的Lephone系..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于An droid定制的Lephone系统研析与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口【apk破解爱好者】关于android app相关破解技术
[问题点数:100分]
【apk破解爱好者】关于android app相关破解技术
[问题点数:100分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年12月 移动平台大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。Ajax引见_android代码搅混- 原来如此简单_CI框架源码阅览-程序入口文件__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
android代码搅混- 原来如此简单
CI框架源码阅览-程序入口文件
Ajax介绍 一、Ajax概念介绍
Ajax :是“Asynchronous JavaScript and XML”的缩写,即异步JavaScript和XML。Ajax是一个创建交互式网页应用的客户端技术。
Ajax可以进行同步交互也可以进行异步交互,一般都是使用其异步模型。
同步与异步在web开发中:
同步的交互方式,由用户触发一个HTTP请求到服务器,服务器对其进行处理后再返回一个新的HTHL页到客户端,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。
异步的交互方式,浏览器不必等待服务器返回结果,在服务器响应的时间内,客户仍可以继续做其他的事情。
因此,使用Ajax异步模型主要表现在:
1、通过适当的Ajax应用达到更好的用户体验;
2、把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担。
Ajax的交互流程:
浏览器将要处理的事情告诉Ajax Engine,由引擎和服务器交互,同时,浏览器可以继续执行其他命令。
二、Ajax的核心对象
Ajax的核心对象是XMLHttpRequest对象。如果有多个请求,需要多个XMLHttpRequest对象。主要掌握XHR对象的创建、五种状态、属性和方法。
常见XMLHttpRequest对象的代码
//创建Ajax核心udixiang XMLHttpRequest
function createXMLHttpRequest(){
//表示当前浏览器不是IE
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
XMLHttpRequest对象的五种状态,也就是readyState属性的五个值:
此时,已经创建一个xhr对象,但是还没有初始化。
代码已经调用了 open( )方法,并且xhr对象已经准备好把一个请求发送到服务器。
已经通过send()方法把一个请求发送到服务器,但是还没有收到一个响应。
3交互中 已经接收到http响应头部信息,但是消息体部分还没有完全接收结束。
此时,响应已经被完全接收。
几个主要属性和方法:
open("get/put",true/false)
建立服务器的调用,同时告诉服务器提交方式、url、交互方式(不写,默认为true)。open()方法也是使用Ajax技术的第一步(前提是已创建了XHR对象),我的理解就是请求是通过Ajax引擎和服务器交互的,所以首先要建立服务器的调用。
onreadystatechange事件
每个状态改变时都会触发这个事件。 属性值一般是回调函数的地址或者函数体,如果直接写函数体的话就是所谓的匿名函数。这个函数表示的是Ajax引擎处理完成后如何反馈结果。
status属性表示服务器的http状态码,200表示ok,400表示not fond。
responseText属性
表示服务器的响应。包含客户端接收到的http响应的文本内容,当readyState值为0、1、2时,responseText包含一个空字符串。当readyState值为3时,响应中包含客户端还未完成的响应信息。当readystate为4时,该respnseText包含完成的响应信息。
send()方法
向服务器发送请求。在最后调用这个方法之前,已经设置好了各种信息(提交方式、url、交互方式、反馈结果等等)。
实例:采用Ajax验证用户Id是否重复
第一步、创建XHR对象,代码略。
第二步、调用open方法与Ajax引擎建立连接,并告诉Ajax引擎我们的请求方式。
var url="user_validate.jsp?userId=" + trim(field.value) + "&time=" + new Date().getTime();
// 这里采用时间戳来i清除缓存
xmlHttp.open("GET",url,true);
第三步、告诉Ajax引擎处理完成后,如何把结果反馈给我们。callback()回调函数中写了反馈信息。
xmlHttp.onreadystatechange=
第四步、最后调用send方法把步骤2和3设置的参数发送给Ajax引擎。也就是真正的交给Ajax引擎去处理。
callback()函数:
function callback(){
//ajax引擎状态为成功
if(xmlHttp.readyState == 4){
//http协议状态为成功
if(xmlHttp.status==200){
alert(xmlHttp.responseText);
alert("请求失败,错误码=" + xmlHttp.status);
}请求响应的页面:
String userId = request.getParameter("userId");
if(UserManager.getInstance().findUserById(userId) != null){
out.println("用户代码已经存在!");
Ajax暂时先分析到此,随着以后理解的深入,还会继续更新。同时非常欢迎大家的指导。
android代码搅混- 原来如此简单
android代码混淆- 原来如此简单 原创加借鉴:http://blog.csdn.net/qeqeqe236/article/details/7346069
一个xxx.apk提交给测试、
ok,去倒杯水,看看网页~~~~~
呃,忽然觉得 是不是应该 给我的代码 提高点安全性,
记得看过 apk直接可以 解压,然后很容易的就可以 反编译出 .java
找了找,果然,这一切 只不过是 一分钟的事儿,
<span style="font-size:12 color:#、得到 classes.dex文件;直接用你机器上的
解压软件 打开 .apk 文件
  解压出 classes.dex 文件,(这个就是 .jar 的前生--- 其实应该说 后世)
<span style="font-size:12 color:#、还原.jar文件;这一步需要用到一个工具 dex2jar (谷歌的代码库里有/p/dex2jar/)
  看名字也不难知道他是干嘛的了吧?(没错,就是 把 dex 还原 成
  下载完了,解压,然后把第一步的 产物(即那个classes.dex文件)放到 dex2jar的解压目录里
  (解压目录里 有 dex2jar.bat 文件,检查一下,没有的话 说明目录不对、再 找找)
  cmd 命令行 ,目录切换到 dex2jar的目录下(linux 系统的话 执行那个 .sh文件)
  “ dex2jar.bat classes.dex”
  看到命令行
的 “Done” 之后, dex2jar 文件夹里 就会有“classes.dex.dex2jar.jar” 文件了,
  这个就是 传说中的 jar包了
2.3SDK的两个新特点:
1.刚安装上2.3时,查看sdk目录,发现在&SDK_PATH&\tools下新增了一文件夹“proguard”,如下图,我就在想是不是Google终于官方对proguard考虑进去了。理论上,对java的混淆都是可以的,但关键在于如何编写proguard的混淆脚本。
2.使用SDK2.3后,新建的工程下和之前相比,都会多了一个文件“proguard.cfg”。一打开,相当惊喜,这就是混淆所需的proguard脚本啊。
其代码如下:
view plaincopy to clipboardprint?
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * { native &methods&;
-keepclasseswithmembernames class * { public &init&(android.content.Context, android.util.AttributeSet);
-keepclasseswithmembernames class * { public &init&(android.content.Context, android.util.AttributeSet, int);
-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String);
-keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *;
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {native &methods&;
-keepclasseswithmembernames class * {public &init&(android.content.Context, android.util.AttributeSet);
-keepclasseswithmembernames class * {public &init&(android.content.Context, android.util.AttributeSet, int);
-keepclassmembers enum * {public static **[] values();public static ** valueOf(java.lang.String);
-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;
从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件。
并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考&proguard_path&\examples中的例子及注释。)
好了,进行得差不多了,下面就来看看如何真正的生成混淆APK吧。这儿又得提醒一下,SDK新的特性在文档里都是有的,所以文档很重要。
查看SDK2.3的文档,在路径“&androidSDK_path&/docs/guide/developing/tools/proguard.html”的“Enabling ProGuard ”中是这样描述的:
To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the proguard.config property in the &project_root&/default.properties file. The path can be an absolute path or a path relative to the project's root.
好的,那就这样做吧。
在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”,如下图:
这样就已经设置好ADT的混淆操作了。接下来就是正常的打包和签名了。。
好了,再次生成 新的
.apk文件,
然后用上面的方法 反编译你的 项目,你会看到 aa bb cc 的包、aa bb cc 的类 和 aa bb cc 的变量名,方法名.
这个我相信你自己也搞的头昏了吧?
下图是我混淆SDK Demo中自带的Notepad效果图:
注意要点: 1.混淆以后的包会比混淆前的包小一点,一定要注意这点.
如果混淆不成功,请在第2步,将proguard.config=proguard.cfg修改为proguard.config=E:\Mobile_Develop\Google_Android\publicGoldenBeach_new\proguard.cfg这种类似的用绝对路径,请注意绝对路径中的文件夹名不能含有空格,如果有空格请替换为"_".
2.android在用proguard混淆时,一般情况下使用系统自带的配置文件就可以保持大部分外部需要引用的类,比如Activity,view扩展等等,但是有些情况下一些引入的外部lib,如果被混淆也会出现各种各样的问题,如果不想混淆这些包,就要加上
-keep class packagename.** {*;}
这样就能完整保持原有class了
3.想自定义 混淆细节的话,就琢磨琢磨这个配置文件吧
CI框架源码阅览-程序入口文件
CI框架源码阅读----程序入口文件最近在学习CI框架,自己在按照代码执行顺序阅读源码。做了一些笔记。与其自己珍藏不如拿出来和大家分享
本人并非大牛,是一名处于成长初期的phper,难免有错误的地方。还希望大家能给予指正。
我的CI版本是2.1.3
csdn好像不能上传文件,我就讲代码放在笔记下面了。
如果觉得能对您有一些可以经常来看,我会不定期更新。知道读完CI源码
程序入口:
应用程序环境设置development
testing production
可以设置这三种环境
对不同的环境应用不同的错误级别
设置系统文件夹名
设置应用程序文件夹名
设置默认控制器(这里被注释掉了,如果想设置直接开启)
设置自定义配置
增强system path的可靠性
设置当前目录保证正确的请求
保证目录后面有/
判断当前系统路径是否存在
开始设置主路径常量
当前文件的路径
文件扩展名
前端控制器路径
系统文件夹路径
应用程序文件夹路径
9、调用BASEPATH.'core/CodeIgniter.php'文件进入系统引导程序
*---------------------------
* APPLICATION ENVIRONMENT
*---------------------------
* You can load different configurations depending on your
* current environment. Setting the environment also influences
* things like logging and error reporting.
* This can be set to anything, but default usage is:
development
production
* NOTE: If you change these, also change the error_reporting() code below
define('ENVIRONMENT', 'development');
*---------------------------
* ERROR REPORTING
*---------------------------
* Different environments will require different levels of error reporting.
* By default development will show errors but testing and live will hide them.
if (defined('ENVIRONMENT'))
switch (ENVIRONMENT)
case 'development':
error_reporting(E_ALL);
case 'testing':
case 'production':
error_reporting(0);
exit('The application environment is not set correctly.');
*---------------------------
* SYSTEM FOLDER NAME
*---------------------------
* This variable must contain the name of your "system" folder.
* Include the path if the folder is not in the same
* as this file.
$system_path = 'system';
*---------------------------
* APPLICATION FOLDER NAME
*---------------------------
* If you want this front controller to use a different "application"
* folder then the default one you can set its name here. The folder
* can also be renamed or relocated anywhere on your server.
* you do, use a full server path. For more info please see the user guide:
* /user_guide/general/managing_apps.html
* NO TRAILING SLASH!
$application_folder = 'application';
* --------------------------------
* DEFAULT CONTROLLER
* --------------------------------
* Normally you will set your default controller in the routes.php file.
* You can, however, force a custom routing by hard-coding a specific
* controller class/function here.
For most applications, you
* WILL NOT set your routing here, but it's an option for those 那些
* special 特殊 instances where you might 可能 want to override the standard 标准
* routing in a specific 明确的 front 前面 controller that shares a common CI installation.
* IMPORTANT: 重要的 If you set the routing here, NO OTHER controller will be
* callable. 可赎回的 In essence,本质 this preference 偏好、倾向、优先权 limits 范围、限制
* your application to ONE specific controller.
* Leave 许可、离开、留下 the function name blank空白,消失 if you need
* to call functions dynamically 动态的 via 通过 the URI.
* Un-comment the $routing array below 在下面 to use this feature 特色,特写,起重要作用
// The directory name, relative 相关的 to the "controllers" folder.
Leave blank
// if your controller is not in a sub-folder 代替-文件夹 within 在。。。之内
// the "controllers" folder
// $routing['directory'] = '';
// The controller class file name.
Mycontroller
// $routing['controller'] = '';
// The controller function you wish 希望 to be called.
// $routing['function'] = '';
* -------------------------------
CUSTOM 习惯、定制的、自定义的 CONFIG VALUES
* -------------------------------
* The $assign_to_config array below will be passed 通过 dynamically to the
* config class when initialized.初始化 This allows you to set custom config
* items or override any default config values found in the config.php file.
* This can be handy 方便的 as it permits 许可 you to share one application between
* multiple front controller files, with each 每各 file containing 包含 different
* config values.
* Un-comment the $assign_to_config array below to use this feature
// $assign_to_config['name_of_config_item'] = 'value of config item';
// --------------------------------
// END OF USER CONFIGURABLE 可配置的 SETTINGS.
DO NOT EDIT BELOW THIS LINE
// end of 最终 user configurable settings . do not edit below this line
// --------------------------------
* ---------------------------
Resolve 决定 the system path for increased 增强的、增加 reliability 可靠性
* ---------------------------
// Set the current directory correctly 正确的 for CLI requests 请求
if (defined('STDIN'))
chdir(dirname(__FILE__));
if (realpath($system_path) !== FALSE)
$system_path = realpath($system_path).'/';
// ensure 保证 there's a trailing 后面的 slash 斜杠
$system_path = rtrim($system_path, '/').'/';
// Is the system path correct?
if ( ! is_dir($system_path))
exit("Your system folder path does not appear to be set correctly. Please open the following file and correct this: ".pathinfo(__FILE__, PATHINFO_BASENAME));
* -------------------------------
Now that we know the path, set the main path constants 常量
* -------------------------------
// The name of THIS file
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
// The PHP file extension 扩展
// this global constant is deprecated.不赞成 弃用
define('EXT', '.php');
// Path to the system folder
define('BASEPATH', str_replace("\\", "/", $system_path));
// Path to the front controller (front controller)前端控制器 (this file)
define('FCPATH', str_replace(SELF, '', __FILE__));
// Name of the "system folder"
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));
// The path to the "application" folder
if (is_dir($application_folder))
define('APPPATH', $application_folder.'/');
if ( ! is_dir(BASEPATH.$application_folder.'/'))
exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
define('APPPATH', BASEPATH.$application_folder.'/');
* --------------------------------
* LOAD THE BOOTSTRAP 引导程序 FILE
* --------------------------------
* And away we go... 和我们走
require_once BASEPATH.'core/CodeIgniter.php';
/* End of file index.php */
/* Location: ./index.php */
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:

我要回帖

更多关于 脚本定制 的文章

 

随机推荐