- Dex、Smali、Class、Java、Jar之间的相互转换
布道课堂
Dex、Smali、Class、Java、Jar之间的相互转换-分析Android底层代码工具工具作用javacjava------>classddxclass------>dexbaksmalidex------>smalismalismali------>dexdex2jardex------>jar(class的压缩包)apktoolapk------>smaliAndroid源代码从编译到
- [免费专栏] Android安全之静态逆向APK应用浅析「手动注入smali」+「IDA Pro静态分析so文件」+「IDA Pro基础使用讲解」
橙留香Park
网络安全渗透测试信息安全
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大少走了弯路,也就错过了风景,无论如何,感谢经历转移发布平台通知:将不再在CSDN博客发布新文章,敬请移步知识星球感谢大家一直以来对我CSDN博客的关注和支持,但是我决定不再在这里发布新文章了。为了给大家提供更好的服务和更深入的交流,我开设了一个知识星球,内部将会提供更深入、更实用的技术文章,这些文章将更有价值
- PowerShell3.0中,所有的命令
weixin_33976072
shellui
Get-Command*>>cmd.txtCommandTypeNameModuleName-------------------------Alias%->ForEach-ObjectAlias?->Where-ObjectAliasac->Add-ContentAliasAdd-ProvisionedAppxPackageDismAliasApply-WindowsUnattendDismAl
- 安卓学习笔记之二:APKtool工具实现反编译-编译-签名全过程
manmanbab
智能手机学习笔记
APKTool介绍APKTool是一个开源的、跨平台的反编译、回编译Android应用程序的工具。它能够将APK文件解压并还原成Android应用程序的资源文件和Smali代码,还能将修改后的资源文件和Smali代码重新打包成APK文件。APKTool是Android应用程序开发和逆向开发的重要工具之一,它能够帮助开发者对APK文件进行修改、分析和定制,也能够帮助安全研究人员和黑客对应用程序进行逆
- Android反编译之模拟重新打包
顺_967d
Baksmali:https://github.com/JesusFreke/smaliApktool:https://ibotpeaches.github.io/Apktool/dex2jar:https://sourceforge.net/projects/dex2jar/这几个工具,我注意到,大家基本上用的最多的是Baksmali,不过我使用的时候,发现其使用方法有了简单变化,所以简单记录一
- Android逆向基础1(Smali语法入门)
enj0y1
简单的说,Smali就是DalvikVM内部执行的核心代码。1.Smali的基本类型B---byteC---charD---doubleF---floatI---intJ---longS---shortV---voidZ---boolean[XXX---array(数组)Lxxx/yyy---object(对象)2.函数的定义函数的定义一般为:Func-Name(Para-Type1Para-Ty
- 逆向工程工具集
初见soulmate
1.安卓根据java代码查看smali代码:AS的java2smali插件逆向新手,记录一下相关工具,持续更新...
- Apktool 下载、安装和使用
给我一支白沙
Apktool简介用于反编译Androidapk,可以将应用中的资源提取出来,也可以在修改资源文件后重新打包。smali调试环境要求安装java1.8以上命令行运行java-version返回版本大于1.8如果没有,请安装java1.8下载与安装下载apktool_x.x.x.jar到本地官网下载或者镜像下载重命名下载的apktool_x.x.x.jar,改名为apktool.jar下载脚本并配置
- 空间转录组文章精析-第一期 黑色素瘤遗传异质性
我爱工作_工作使我快乐
本期,我们一起来分析一下2018年发表在CancerResearch(2019年该杂志最新影响因子为8.378)上的一篇由瑞典皇家理工学院发表的关于皮肤恶性黑色素瘤的文章。文章题目:SpatiallyResolvedTranscriptomicsEnablesDissectionofGeneticHeterogeneityinStageIIICutaneousMalignantMelanoma空间
- 2020-12-03 SQL数据库的列类型
今晚打老鼠儿
数值类型类型描述占位/字节tinyint十分小的数据1smalint较小的数据2mediumint中等大小的数据3int标准的整数4bigint较大的数据8float单精度浮点数4double双精度浮点数8decimal字符串形式的浮点数精度/2+1字符串类型类型描述长度char字符串0~255varchar可变字符串0~65535tinytext微型文本2^8-1text文本串2^16-1日期类
- Android逆向之旅。
銨靜菂等芐紶
Androidandroid
转载自品略图书馆http://www.pinlue.com/article/2020/03/1301/0610022114445.html一、前言今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为:第一篇:如何使用Eclipse动态调试smali源码第二篇:如何使用IDA动态调试SO文件现在要说的就是最后一篇了,如何应对Android中一些加固apk安全防护,在之前的两篇破解文章中,我们
- Android逆向之旅---动态方式破解apk终极篇(加固apk破解方式)
chupu2979
一、前言今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为:第一篇:如何使用Eclipse动态调试smali源码第二篇:如何使用IDA动态调试SO文件现在要说的就是最后一篇了,如何应对Android中一些加固apk安全防护,在之前的两篇破解文章中,我们可以看到一个是针对于Java层的破解,一个是针对于native层的破解,还没有涉及到apk的加固,那么今天就要来介绍一下如何应对现在市场中
- Android逆向之旅---动态方式破解apk终极篇 加固apk破解方式
是喝醉了吗
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!一、前言今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为:第一篇:如何使用Eclipse动态调试smali源码第二篇:如何使用IDA动态调试SO文件现在要说的就是最后一篇了,如何应对Android中一
- smali代码结构解析
oliveira-time
开发语言java
一、开头(类的声明)1、声明一个类继承自某个类java代码如下publicclassMainActivityextendsAppCompatActivity对应的smali代码如下,解析见每行注释(smali注释使用#):.classpublicLcom/ylw/yhds/activity/MainActivity;#声明类,其中Lcom/ylw/yhds/activity/MainActivit
- Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结
路遥在路上
无意中在看雪看到一个简单的CrackMe应用,正好就着这个例子总结一下逆向过程中基本的常用工具的使用,和一些简单的常用套路。感兴趣的同学可以照着尝试操作一下,过程还是很简单的。APK我已上传至Github,下载地址。首先安装一下这个应用,界面如下所示:要求就是通过注册。爆破的方法很多,大致可以归为三类,第一种是直接修改smali代码绕过注册,第二种是捋清注册流程,得到正确的注册码。第三种是hook
- 安卓逆向入门笔记——smali基础
biao197
编程&逆向android笔记
smali基础语法dalvik字节码1、先来了解一下dalvik虚拟机:dalvik虚拟机是Android5.0以前用于运行安卓应用的虚拟机,从Android4.4开始,Google开始引入了全新的虚拟机ART(AndroidRuntime),直到Android5.0开始ART虚拟机就替代了dalvik虚拟机。既然dalvik虚拟机被ART虚拟机替代了,那我们还有学的必要吗?ART是向下兼容的,A
- Android逆向笔记之AndroidKiller与Android Studio的使用
aijia1857
前言:书本中对crackme02.apk的破解是分析关键词进行破解的,而本文使用另外的Smali分析方式,对样本进行分析。样本:《Android软件安全与逆向分析》crackme02.apk工具:AndroidKillerv1.3.1.0(AK)&&AndroidStudio2.2.3(AS)语言:Java,Smali目的:Smali代码分析之前的准备工作一、样本反编译二、在AS下打开反编译出来的
- Apktool工具的下载安装和简单使用;反编译and解包打包;
Sciurdae
CTF学习笔记网络安全安全android
文章目录简介工具下载解包打包签名简介apktool"apktool"是一个用于反编译和重新编译AndroidAPK文件的开源工具,可以将APK文件反编译成可读的Smali代码或原始的XML布局文件。apktool需要java环境支持,请先安装好java环境,可以使用java-version,java版本尽量在1.8以上;工具下载下载地址:官网按照官方教程安装~解包命令行输入:apktooldbar
- Android Studio(3.6.2版本)安装 java2smali 插件,java2smali 插件的使用方法简述
oliveira-time
androidstudioandroidide
一、AndroidStudio(3.6.2版本)安装java2smali插件1、左上角File—>Setting,如下图2、Setting界面中:点击Plugins—>选择右侧上方Marketplace—>搜索栏输入java2smali,如下图3、点击Install按钮—>点击弹窗Accept按钮,如下图4、等待安装完成后出现RestartIDE按钮—>点击RestartIDE按钮—>点击弹窗Re
- android 逆向工程(待续)
yangzex
逆向软件安全
目录工具类IDASegmentregisters(shift+F8)反调试利用IO重定向来绕过反调试EBPF使用eBPF完成安卓ApphookxHookUNIDBG补环境文件结构ELFsection和segment的关系.dynamic段.init和.init_array段花指令花指令5要素Smali基础打包工具类IDASegmentregisters(shift+F8)当IDA遇到改变段寄存器的
- Android程序的签名保护及绕过方法
火龙果研究院
安卓开发安卓开发
转自:https://blog.csdn.net/wulianghuan/article/details/22497621随着Android市场的扩大,各类盗版、破解、打包党纷纷涌现,其使用的手法无非是apk_>smali->修改代码->重打包签名,为对抗此类技术,广大程序员挖掘了Android平台特有的保护技术:签名校验1、JAVA代码本地签名校验Android要求安装到手机上的APK文件必须有
- 破解app思路
Python9724
javascript开发语言ecmascript
1.会看smali代码逻辑一.快速定位关键代码1.分析流程搜索特征字符串搜索关键api通过方法名来判断方法的功能2.快速定位关键代码反编译APK程序AndroidManifest.xml=>包名/系统版本/组件程序的主activity(程序入口界面)每个Android程序有日只有一个主Activity分析程序的执行流程需重点关注的applicationapplication执行时间授权验证3.定位
- 【笔记】Smali语法
疼老婆会发达
笔记smali汇编
Smali语法Smali是一种汇编语言,通常用于Android应用程序的反汇编和修改。Smali代码是Dalvik虚拟机指令的文本表示形式。以下是一些常见的Smali语法元素:1.基本结构:Smali文件是文本文件,通常以.smali扩展名结尾。每个Smali文件对应一个类,并以类路径作为文件名。例如,类com.example.MyClass的Smali文件可能是com/example/MyCla
- 关于回编译 First Type is not attr
小慕汐
image.png要修改public.xml里面比attr值要小的,如image.png然后再修改smali里面的值
- 启xin宝app的token算法破解——逆向篇(二)
吾爱小白
启xin宝app的token算法破解——抓包分析篇(一)文章已经对该app进行了抓包分析,现在继续对它进行逆向。对于一个app而言,我们要逆向app,需要知道什么呢?逆向工具Java基础,甚至c和汇编基础加固类型和脱壳工具安卓开发基础对安卓系统的认知对xposed的认知smali基础以上这些是必须了解甚至掌握的,爬虫逆向路上越走越远了。回归正题,该app是怎样一种app呢??如何去查看app是否加
- 安卓逆向入门——smali语法(上)
送你一颗星星
安卓逆向androidjava爬虫开发语言
smali语法部分已经完结,感兴趣的可以访问下面这个链接阅读下一部分:安卓逆向入门——smali语法(下)_不会算法的小白的博客-CSDN博客smali和Java基本数据类型对比smalijavaBbyteSshortIintJlongFfloatDdoubleCcharZbooleanVvoid[数组L+全类名路径用/分割object注释使用`#`表示类声明.class+权限修饰符+类名;#以分
- 安卓逆向入门——smali语法(下)
送你一颗星星
安卓逆向开发语言android爬虫java
smali语法部分已经完结,感兴趣的可以访问下面这个链接阅读上一部分:安卓逆向入门——smali语法(上)_不会算法的小白的博客-CSDN博客创建对象对象的创建分多步进行:#声明实例new-instance+变量名,对象全包名路径;#调用构造方法(如果构造方法内还定义了成员变量,那么在调用之前需要提前声明,然后在invoke的时候当作参数一并传入)invoke-direct{变量名},对象全包名路
- NP管理器V3.0.18之第三方MT管理器VIP版
syx594
注意事项:常见闪退原因Root的手机闪退概率高Root了的手机不给root权限有xp环境的容易闪退没有网络手机开了VPN或者代理功能简介:主要是对Apk、Dex、Jar、Smali、Pdf、视频和音频文件的简单应用。Dex、Jar、Smali文件的相互转换;Dex文件合并、分割;Apk、dex、jar混淆和字符串加密;Apk签名、共存、去除签名校验、对话框取消、去除VPN/代理检测;Res资源混淆
- 吴恩达Coursera, 机器学习专项课程, Machine Learning:Supervised Machine Learning: Regression and Classification第三...
ZhemgLee
机器学习人工智能
Practicequiz:Classificationwithlogisticregression第1个问题:Whichisanexampleofaclassificationtask?【正确】Basedonthesizeofeachtumor,determineifeachtumorismalignant(cancerous)ornot.Basedonapatient'sbloodpressur
- apk反编译,注入smali代码,编译及重签名。
不见不散.
反编译apkwindowsjdk
apk反编译,注入代码,编译及重签名。下载apktool链接:https://pan.baidu.com/s/12eHW1vFqZVKOEmEb2I-sXA提取码:mrbq以下的apktool_2.3.1均更改为2.4.1(因为2.3.1在build的时候会出错,可能是jdk版本不对,我这里的jdk版本是14.0.2)解压下载的文件,得到如下两个文件:在以上解压的目录中输入cmd,回车,进入命令行
- java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
- Java异常那些不得不说的事
白糖_
javaexception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
- utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
- JAVA Annotation之定义篇
周凡杨
java注解annotation入门注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
- tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
- Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linuxcapistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
- log4j的用法
Harry642
javalog4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
- mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oraclejave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
- Hessian 简单例子
antlove
javaWebservicehessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
- 数据库对象的同义词和序列
百合不是茶
sql序列同义词ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
- 使用Powermock和mockito测试静态方法
bijian1013
持续集成单元测试mockitoPowermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
- 精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle数据库plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
- 【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
- jquery-validation备忘
白糖_
jquerycssF#Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
- solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
- 多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
- 买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
- [军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
- dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
- Hadoop如何实现关联计算
datamachine
mapreducehadoop关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
- 用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
- 中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
- js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格js去掉所有空格js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
- SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
- 《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
- JQuery EasyUI 验证扩展
可怜的猫
jqueryeasyui验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
- 架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
- Jquery性能优化
r361251
JavaScriptjquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
- 在eclipse项目中使用maven管理依赖
tjj006
eclipsemaven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
- 中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l