ASP文本文档加密怎么加密?我的QQ823437807

常用ASP代码加密工具的工作原理
本帖回复8次,查看1935次
听众数精华0最后登录主题帖子鲜花1 臭蛋0 贡献123 在线时间64 小时注册时间
落伍者(一心一意), 积分 124, 距离下一级还需 876 积分
帖子鲜花1 贡献123 在线时间64 小时注册时间
打开ASP文件,经常看到类似这样的代码,创建一个组件,然后传入一大堆没有意义的字符,如下:
Set obj = Server.CreateObject(&AspDeCode.DeCode&)
obj.AddCode &PCUNCm9wdGlvbiBleHBsaWNpdA0KQ29uc3QgSkVUXzNYID0gNA0KaWYgIiImUmVxdWVzdC5Gb3JtKCJzZXNzaW9uaWQiKSYiIjw+&
obj.AddCode &IiImc2Vzc2lvbi5zZXNzaW9uaWQmIiIgdGhlbiBBbGVydCgi0KfR6cLrtO3O8yIpDQoNCkRpbSBkYnBhdGgsYm9vbElzOTcNCmRi&
obj.AddCode &PiINCglFbmQgSWYNCkVuZCBGdW5jdGlvbg0KDQpTdWIgQWxlcnQoTWVzc2FnZSkNCiU+DQo8c2NyaXB0IGxhbmd1YWdlPSdKYXZh&
obj.AddCode &U2NyaXB0JyB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmFsZXJ0KCc8JT1NZXNzYWdlJT4nKTtoaXN0b3J5LmJhY2soKTs8L3Njcmlw&
obj.AddCode &dD48c2NyaXB0IGxhbmd1YWdlPSdKYXZhU2NyaXB0JyB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPndpbmRvdy5jbG9zZSgpOzwvc2Ny&
obj.AddCode &aXB0Pg0KPCUNCglyZXNwb25zZS5lbmQNCkVuZCBTdWINCiU+DQo=&
obj.RunCode
Set obj = Nothing
& & 然ASP文件却可以正常执行,其实,这种ASP代码是被一种加密算法加密了,那么,为何被加密了却可以正确执行?这种加密都有
一个共同的特征,需要临时解密,要在服务器注册一个对应的ASP代码解密组件,我们看到,代码的起始位置有一句创建组件的代码,
该组件将密文解密成原始的ASP脚本,再将脚本传入产生的临时文件或者脚本引擎组件(Msscript.ocx)解释执行。其中,产生临时
文件的方式可以达到完全兼容,无需任何人工修改量的效果。不论其ASP代码有多么复杂,都可以实现无错加密。那么,其具体的
工作原理又是怎样的呢?
& & 相信大多数ASP开发者都很想知道是怎样运行的,而另一种以封装DLL形式的加密方式没有秘密可言,使用AspToDll风火轮将其生成
VB6代码,然后编译通过就可。但这种ASP代码解密组件的代码却是黑匣子,其中有什么玄妙之处?虽然,对于专业技术人员来说,
这其实并不是什么秘密,不过,对于广大的ASP业余开发者或者一般电脑爱好者来说,却不是那么容易看出其端倪的,让AspToDll风火轮
为大家解开其神秘的面纱。
& & 打开AspToDll风火轮1.35版本,选择好你要加密的源文件目录,输出目录,再点击“编码加密”按钮,很快,目录下的所有ASP源文件
已经被编码并生成到输出目录的ASPCODE子目录中,检查当中的每一个文件,发现都被加密成了如上的怪字符,我们只需要将输出目录的
DLL子目录里面的AspDeCode.dll组件注册一下(运行RegDll.bat),再去访问AspCode目录里面的ASP文件,运行效果简直与加密之前
如出一辙,不论你的代码如何复杂,都不影响运行效果。
& & 那么,AspDeCode.dll里面又是具体如何工作的呢?相信广大业余开发者是最想知道的事情了,因此,AspToDll风火轮向大家直接提供了
AspDeCode.dll的源代码,就在AspToDll风火轮安装之后的AspDeCode子目录,为打开源代码,我们需要安装VB6,打开之后,我们发现
加密和解密以及运行的代码都非常简单,只有一个DeCode类,里面的加密解密算法就是几段标准的BASE64代码,在这里,我们只需要
重点介绍当中的RunCode过程,我们分析一下这段代码:
Public Sub RunCode()
On Error Resume Next
& & Dim fso As New Scripting.FileSystemObject
& & Dim f As Scripting.TextStream
& & Dim strTemp As String
& & strTemp = &~& & Rnd & &.tmp&
& & Set f = fso.CreateTextFile(Server.MapPath(strTemp), True)
& & f.Write DecodeBase64String(strCode)
& & f.Close
& & Server.Transfer strTemp
& & DeleteFile Server.MapPath(strTemp)
& & AspDeCode.dll就是通过执行这一段RunCode过程运行ASP的,首先是创建一个fso组件对象,然后生成一个随机数字命名的临时文件,
将密文用BASE64解密,写入到临时文件中。最后,使用Server.Transfer方法转向到临时文件执行,然后删除临时文件,就这样完成任务了,
这种现买现卖的临时文件障眼法是不是很神奇呢?
& & 好了,既然ASP代码解密组件的代码向大家公开了,意味着可以随意修改AspDeCode.dll,个性化自己的ASP代码解密组件了,你可以增加一些
授权的代码,还可以修改加密算法,在AspToDll风火轮里面的编码型加密标签,点击“自定义算法”选项,在左边的文本框中写入标准VBScript
的加密算法,至于解密算法,你既可以在软件中写入解密算法,也可以直接修改AspDeCode.dll源代码实现。通过修改自定义的加密解密算法,
你已经可以打造出一款完全无错加密且又与众不同的ASP代码加密工具了。
听众数精华0最后登录主题帖子鲜花1 臭蛋1 贡献848 在线时间180 小时注册时间
落伍者(一心一意), 积分 835, 距离下一级还需 165 积分
帖子鲜花1 贡献848 在线时间180 小时注册时间
路过,支持一下
听众数精华0最后登录主题帖子鲜花1 臭蛋0 贡献447 在线时间43 小时注册时间
落伍者(一心一意), 积分 517, 距离下一级还需 483 积分
帖子鲜花1 贡献447 在线时间43 小时注册时间
落伍中 …… 逢贴必回
听众数精华0最后登录主题帖子鲜花4 臭蛋1 贡献843 在线时间510 小时注册时间
落伍者(三羊开泰), 积分 8744, 距离下一级还需 1256 积分
帖子鲜花4 贡献843 在线时间510 小时注册时间
听众数精华0最后登录主题帖子鲜花2 臭蛋0 贡献168 在线时间8 小时注册时间
落伍者(一心一意), 积分 4, 距离下一级还需 996 积分
帖子鲜花2 贡献168 在线时间8 小时注册时间
任务中~~~~~~
听众数精华0最后登录主题帖子鲜花0 臭蛋0 贡献43 在线时间23 小时注册时间
落伍者(一心一意), 积分 130, 距离下一级还需 870 积分
帖子鲜花0 贡献43 在线时间23 小时注册时间
看不懂啊、
听众数精华0最后登录主题帖子鲜花0 臭蛋0 贡献3 在线时间37 小时注册时间
落伍者(一心一意), 积分 125, 距离下一级还需 875 积分
帖子鲜花0 贡献3 在线时间37 小时注册时间
这个很受用,不过我有点看不明白,希望得到指教一下!
听众数精华0最后登录主题帖子鲜花3 臭蛋1 贡献78 在线时间1140 小时注册时间
落伍者(四季发财), 积分 38009, 距离下一级还需 11991 积分
帖子鲜花3 贡献78 在线时间1140 小时注册时间
听众数精华0最后登录主题帖子鲜花4 臭蛋1 贡献4395 在线时间164 小时注册时间
落伍者(四季发财), 积分 11182, 距离下一级还需 38818 积分
帖子鲜花4 贡献4395 在线时间164 小时注册时间
有意思的, 一定要来支持一下咯
落伍QQ绑定
该帐号已经进行QQ绑定
删违规/投诉/建议合作请联系:
 广告投放:
落伍者创建于,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:(欢迎关注) 管理员QQ:288753 邮箱:(|)
浙ICP备号 BBS专项电子公告通信管[号
  落伍法律顾问:
Powered by网上很多人在问怎么实现Web系统URL传输(表单提交)参数加密。例如:要进行一个用户帐号编辑,要传递用户的ID,URL如下:http://localhost/mysystem/editAccounts.aspx?ID=2
但又不想让别人知道这个用户的ID为2,恶意的使用者可能还会将2修改,改为别的用户ID。
加密传递的参数值可以解决问题。
以下是自己写的DEC加密、解密的基类。
文件名:Security.CS
using System.Security.C
using System.IO;
using System.T
namespace EIP.Framework
/// Security 的摘要说明。
/// Security类实现.NET框架下的加密和解密。
/// CopyRight @@
public class Security
string _QueryStringKey = "abcdefgh"; //URL传输参数加密Key
string _PassWordKey = "hgfedcba"; //PassWord加密Key
public Security()
// TODO: 在此处添加构造函数逻辑
/// 加密URL传输的字符串
public string EncryptQueryString(string QueryString)
return Encrypt(QueryString,_QueryStringKey);
/// 解密URL传输的字符串
public string DecryptQueryString(string QueryString)
return Decrypt(QueryString,_QueryStringKey);
/// 加密帐号口令
public string EncryptPassWord(string PassWord)
return Encrypt(PassWord,_PassWordKey);
/// 解密帐号口令
public string DecryptPassWord(string PassWord)
return Decrypt(PassWord,_PassWordKey);
/// DEC 加密过程
public string Encrypt(string pToEncrypt,string sKey)
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //把字符串放到byte数组中
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
//byte[] inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //原文使用ASCIIEncoding.ASCII方法的GetBytes方法
MemoryStream ms = new MemoryStream(); //使得输入密码必须输入英文文本
CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach(byte b in ms.ToArray())
ret.AppendFormat("{0:X2}", b);
ret.ToString();
return ret.ToString();
/// DEC 解密过程
public string Decrypt(string pToDecrypt, string sKey)
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for(int x = 0; x & pToDecrypt.Length / 2; x++)
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //建立加密对象的密钥和偏移量,此值重要,不能修改
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder(); //建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象
return System.Text.Encoding.Default.GetString(ms.ToArray());
/// 检查己加密的字符串是否与原文相同
public bool ValidateString(string EnString, string FoString, int Mode)
switch (Mode)
if (Decrypt(EnString,_QueryStringKey) == FoString.ToString())
if (Decrypt(EnString,_PassWordKey) == FoString.ToString())
类中URL及帐号加密使用了不同的KEY。调用URL加密过程如下:
EIP.Framework.Security objSecurity = new EIP.Framework.Security();
objSecurity.EncryptQueryString(''待加密的字符串'');
解密:objSecurity.DecryptQueryString(''传递过来的参数);&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:164856次
积分:3160
积分:3160
排名:第3839名
原创:89篇
评论:153条
文章:53篇
阅读:55793
CSDN-北京群:
(1)(1)(1)(2)(1)(7)(1)(1)(7)(2)(1)(5)(6)(7)(3)(11)(4)(3)(13)(11)(9)已经到最后一张了!
HJGC加密和解密文件源码
价格: 免费
累计评价:
源码目录结构图
DesFile.vshost.exe[11KB]
DesFile.vshost.exe.manifest[490B]
DesFile.exe[36KB]
DesignTimeResolveAssemblyReferences.cache[673B]
DesignTimeResolveAssemblyReferencesInput.cache[5KB]
DesFile.Form1.resources[15KB]
DesFile.projdata[6KB]
App.ico[1KB]
DesFile.csproj.user[1KB]
DesFile.sln[898B]
DesFile.suo[12KB]
from.gif[4KB]
最新Asp.Net源码下载.url[123B]
HJGC加密和解密文件源码源码描述:对选择的文件进行加密和解密。输入设置好的密码对加密文件进行解密,功能很简单,欢迎感兴趣的用户下载学习注意:加密后的文件默认是在Debug文件下。
责任编辑:霹雳贝贝
相关商业代码
同类下载排行
对您有用的代码
数据库应用
ASP.NET MVC安装组件
Windows Phone手机开发工具
Windows 云开发
常见技术问题AspApp golden3.0(中文名称:asp加密锁3.0企业版)加密分析
标 题:AspApp golden3.0(中文名称:asp加密锁3.0企业版)加密分析
作 者:路人张三
时 间:<font color="#08-04-05 10:01 链 接:
软件名称:AspApp&golden3.0(中文名称:asp加密锁3.0企业版)(想传附件可是权限不够,软件可以自己下载)
保护方式:加壳+反跟踪(可能还有别的保护方式)
加壳方式:ASPack&2.12
软件简介:&将IIS&+&ASP(Active&Server&Page)实现的网站进行加密、压缩,加密后的应用仍然可以在IIS下使用,但是他人已经无法直接阅读ASP脚本内容,彻底保护您的辛苦劳动成果和知识产权。
加密后的代码样式如下:
&%@&Language=&VBSCRIPT&&%&
&%&'AspApp&Golden&-&Enterprise&(V3.0.0.0)
&&On&Error&Resume&Next
&&Set&MyAspAppG&=&Server.CreateObject(&AspAppGX.AspDecoder&)
&&If&Not&IsObject(MyAspAppG)&Then
&&&&Response.Write&&请先运行Setup_Ent.exe并注册组件!&&&&(setup_ent.exe等同于&regsvr32.exe&aspappG.dll)&
&&&&Response.End
&&MyAspAppG.Tag&=&&ZY3BywXyuYlp=|X1o&
&&MyAspAppG.Crc64&=&&415r1a|mED;_*AH1HO|@Ppp&
&&MyAspAppG.Crc32&=&&S8ZnhxVfWCV9/B/Y7N4KFClA3fHjAk2dJMBIzwcyHzk=&
&&MyAspAppG.AddCode&&jvPFkUtIhuV11sFGCHGKm/+TdNnAqPe3hlINvF3XVuR9TgKHmBxZTFt/JwJJA6gdzXLtgjfj1m4tUoil&
&&MyAspAppG.AddCode&&L/zmqixl9I5+Yo/J61C18UEoyBPKLxlFxtYqqvfPQ7c16oe8Gh5ENl6gF5Snz1IvK72zN4/K8EJyrYsn&
&&MyAspAppG.AddCode&&LQZ+Y0omo3aWUxeqII3+17mycWbajZLKaejTRQO+u9GBnI2emn9UkWCh9nP8G/roDtwsIcbsFLfFKahC&
&&MyAspAppG.AddCode&&fesyREg2R+cXYfaDwzFZNcjkwIU1gASGTmEk4fyMVzMdlyhZ8/jFWgEfpvwbdcrknMtezxX7zTfGiqtM&
&&MyAspAppG.AddCode&&JCiaWalJcLn4Of6Dudkn21gWedShsQXkh4AS/Mau9VLsU48ZYWcnjBgbWDlPGpOEfdHR466Qs6BbN3Vx&
&&MyAspAppG.AddCode&&0s8r8RJX7+yznlqCaJpvFglgNHedXLW82mFgcfNQ/7lUb2D1V4POgd8xwvdnIy8qx2/EwWj3LdCm5LST&
&&MyAspAppG.AddCode&&G/LiX8VfJrihCAZkyV0JbEgE8Y5qdlZK36wPZglLKIZaVOh19U5XnQeSCGKKnMnP/dK5EE8oOOgxD5U5&
&&MyAspAppG.AddCode&&1/ka+h4Q207ED3mx9vYQzr1eTSRa1uSStKxXt0crMdJ6Rksj8VrBO7WAiU5eGN6wK/9Bqg==&
&&MyAspAppG.Execute
&&Set&MyAspAppG&=&nothing
经过测试:同一asp源代码,加密后MyAspAppG.Crc32后面的数据是一样的,其它三项:MyAspAppG.Tag\MyAspAppG.Crc64\MyAspAppG.RegCode数据每次都不一样.
加密后的代码要在IIS下使用,必须注册一个组件:aspappG.dll(setup_ent.exe等同于&regsvr32.exe&aspappG.dll).
目&&&&&的:找出其加密算法(具软件主页说是采用高强度算法进行加密的).
声&&&&&明:我是一只菜得不能再菜的菜鸟,没有汇编基础,编程语言只学过QBASIC皮毛。在分析过程中,找不到高手请教,全凭对软件加解密的一腔热情,以下是我一个月以来对这个软件分析过程写的笔记,如有不对之处请高手指教,也许aspappG.dll里有解密的代码,但是对DLL文件不知道要怎么分析,只好做罢。
&&&&&&&&&&&&&&&&
带壳情况下用OD载入,跟进就退出,说明软件有反动态跟踪,可以用OD的一个插件轻松对付(插件叫什么名字,忘记了)。
首先想到对AspAppEncoder.exe进行脱壳,用PEID查是用ASPack&2.12&-&&Alexey&Solodovnikov加的壳,脱壳后一运行就退出,认为是文件有CRC校验,用OD载入脱壳后的文件,按F8键一步一步的跟进到处,如下:
&&|.&&E8&3292F0FF&&&call&&&&0040A8EC&&&&&&&&&&&&&&&;&&取文件大小
005016BA&&|.&&81FE&D8FC0800&cmp&&&&&esi,&8FCD8&&&&&&&&&&&&&;&&此时ESI值班为001B1600即十进制的:1775104刚好是文件的大小,和8FCD8比较,
&&|.&&7E&05&&&&&&&&&jle&&&&&short&&&&&&&&&&;&&因为脱壳后的文件比较大,所以这个跳转不会实现
&&&&&&E8&3D34F0FF&&&call&&&&00404B04。
退出程序。
将上面的8FCD8的值改大一点,这里就会可以过去。
再跟进到处:
&&|.&&84C0&&&&&&&&&&test&&&&al,&al&&&&&&&&&&&&&&&&&&;这里的al=00,然后跳转不会实现,下一步和上面一样:CALL到00404B04处运行,退出程序,我和加壳的源程序对比了一下,加壳的源程序运行到此处al=01,(在信息窗口可以看到)我不知道这里怎么才能让al=01,
&&|.&&75&05&&&&&&&&&jnz&&&&&short&0050170B&&&&&&&&&&;只能改这里,将jnz改成jmp,无条件转移。
&&|.&&E8&F933F0FF&&&call&&&&00404B04
改后,继续跟进,到此处。
&&|.&&E8&6C3CF6FF&&&call&&&&&&&&&&&&&&&&&&&&;这个call就会打开那个NAG窗口,不知道为什么,继续跟进到终止运行,窗口里面的字啊什么的全部都没有,我认为:根据壳的原理,程序完全运行后,代码是还原的真的代码,因为我的目的是待程序完全载入后,点开始加密找出加密的方式,所有就没有对脱壳进行下去。(脱壳失败)
以下分析全部是用OD带壳分析的过程,
用OD载入源程序,按F9直接让程序运行,程序完全载入后,代码停在如下位置:
0050164B&&&&56&&&&&&&&&&&&&&push&&&&esi
0050164C&&&&57&&&&&&&&&&&&&&push&&&&edi
0050164D&&&&33C0&&&&&&&&&&&&xor&&&&&eax,&eax
0050164F&&&&8945&E8&&&&&&&&&mov&&&&&dword&ptr&[ebp-18],&eax
&&&&8945&EC&&&&&&&&&mov&&&&&dword&ptr&[ebp-14],&eax
&&&&B8&&&&&&mov&&&&&eax,&
0050165A&&&&E8&C15AF0FF&&&&&call&&&&
0050165F&&&&8B3D&B0C15100&&&mov&&&&&edi,&dword&ptr&[51C1B0]&&&&&&&&&&;&AspAppEn.0051FE58
&&&&33C0&&&&&&&&&&&&xor&&&&&eax,&eax
&&&&55&&&&&&&&&&&&&&push&&&&ebp
&&&&68&&&&&&push&&&&
0050166D&&&&64:FF30&&&&&&&&&push&&&&dword&ptr&fs:[eax]
&&&&64:8920&&&&&&&&&mov&&&&&dword&ptr&fs:[eax],&esp
&&&&8B07&&&&&&&&&&&&mov&&&&&eax,&dword&ptr&[edi]
&&&&E8&923CF6FF&&&&&call&&&&0046530C
0050167A&&&&E8&5DF7FFFF&&&&&call&&&&00500DDC
0050167F&&&&84C0&&&&&&&&&&&&test&&&&al,&al
&&&&74&07&&&&&&&&&&&je&&&&&&short&0050168A
&&&&8B07&&&&&&&&&&&&mov&&&&&eax,&dword&ptr&[edi]
&&&&E8&063EF6FF&&&&&call&&&&
0050168A&&&&8D55&EC&&&&&&&&&lea&&&&&edx,&dword&ptr&[ebp-14]
0050168D&&&&8B07&&&&&&&&&&&&mov&&&&&eax,&dword&ptr&[edi]
0050168F&&&&E8&E842F6FF&&&&&call&&&&0046597C
&&&&8B45&EC&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp-14]
&&&&BA&&&&&&mov&&&&&edx,&40
0050169C&&&&E8&2791F0FF&&&&&call&&&&
&&&&8BD8&&&&&&&&&&&&mov&&&&&ebx,&eax
&&&&B9&&&&&&mov&&&&&ecx,&2
在OD中右键查找所有参考文件字符,找到
&地址=004FEBC5&&&&反汇编=mov&&&&&eax,&004FEFC8&&&文本字串=ASCII&&hh:nn:ss&&&开始加密...&&&
双击到反汇编窗口,如下:
004FEBC5&&&&B8&C8EF4F00&&&&&mov&&&&&eax,&004FEFC8&&&&&&&&&&&&&&&&&&&&;&ASCII&&hh:nn:ss&&&开始加密...&&&
004FEBCA&&&&E8&0DE4F0FF&&&&&call&&&&0040CFDC
004FEBCF&&&&8B4D&D8&&&&&&&&&mov&&&&&ecx,&dword&ptr&[ebp-28]
004FEBD2&&&&B2&01&&&&&&&&&&&mov&&&&&dl,&1
004FEBD4&&&&8B45&F0&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp-10]
004FEBD7&&&&E8&84C9FFFF&&&&&call&&&&004FB560
004FEBDC&&&&A1&B0C15100&&&&&mov&&&&&eax,&dword&ptr&[51C1B0]
004FEBE1&&&&8B00&&&&&&&&&&&&mov&&&&&eax,&dword&ptr&[eax]
004FEBE3&&&&E8&1066F6FF&&&&&call&&&&
在004FEBC5行按F2下断点,然后切换到aspapp程序(以下称源程序)窗口,点击开始加密,自动跳回OD窗口,并且停在我下断点的位置,按F8跟进,在不停重新载入程序,下断点,删除断点的过程中,最后一次我在004FD469处下断点,程序到了如下位置:
004FD469&&&&E8&EEA1F8FF&&&&&call&&&&0048765C&&&&&&&&&&&&&&&&&&&&&&&&&;&得到CRC32&每次一样
004FD46E&&&&8B95&94FDFFFF&&&mov&&&&&edx,&dword&ptr&[ebp-26C]
004FD474&&&&8B45&F4&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp-C]
004FD477&&&&E8&7078F0FF&&&&&call&&&&00404CEC
004FD47C&&&&33C0&&&&&&&&&&&&xor&&&&&eax,&eax
004FD47E&&&&5A&&&&&&&&&&&&&&pop&&&&&edx
004FD47F&&&&59&&&&&&&&&&&&&&pop&&&&&ecx
004FD480&&&&59&&&&&&&&&&&&&&pop&&&&&ecx
004FD481&&&&64:8910&&&&&&&&&mov&&&&&dword&ptr&fs:[eax],&edx
按一下F8键到
004FD46E&&&&8B95&94FDFFFF&&&mov&&&&&edx,&dword&ptr&[ebp-26C]
此时,信息窗口显示如下:
堆栈&ss:[FD4668,&(ASCII&&S8ZnhxVfWCV9/B/Y7N4KFClA3fHjAk2dJMBIzwcyHzk=&)&&记住这个SS=00FD4668这个值。
S8ZnhxVfWCV9/B/Y7N4KFClA3fHjAk2dJMBIzwcyHzk=就是密文里面“MyAspAppG.Crc32&=”后面的数据。
再往下跟进(F8)到这里:
004FD49E&&&&E8&9160F0FF&&&&&call&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
004FD4A3&&&&8BF0&&&&&&&&&&&&mov&&&&&esi,&eax
004FD4A5&&&&8D8D&DCFDFFFF&&&lea&&&&&ecx,&dword&ptr&[ebp-224]
004FD4AB&&&&8B45&14&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp+14]
004FD4AE&&&&8B40&F0&&&&&&&&&mov&&&&&eax,&dword&ptr&[eax-10]
004FD4B1&&&&BA&&&&&&mov&&&&&edx,&10
按两下F8跟进到
004FD4A5&&&&8D8D&DCFDFFFF&&&lea&&&&&ecx,&dword&ptr&[ebp-224]
此时,信息窗口显示如下:
堆栈地址=0012F84C,&(ASCII&14,&wdqT/c7B0p(B?0DecEs6&)&&这里是MyAspAppG.Crc64,&但是不全。
ecx=00F8C5B0
再跟进,到这里
004FD4BB&&&&8D95&DCFDFFFF&&&lea&&&&&edx,&dword&ptr&[ebp-224]
004FD4C1&&&&8B45&F8&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp-8]
004FD4C4&&&&E8&2B7AF0FF&&&&&call&&&&00404EF4
004FD4C9&&&&8BDE&&&&&&&&&&&&mov&&&&&ebx,&esi
004FD4CB&&&&53&&&&&&&&&&&&&&push&&&&ebx
此时,信息窗口显示如下:
堆栈地址=0012F84C,&(ASCII&10,&82|e?Wv_(K!m4!aZ&)&&这里是MyAspAppG.Tag,但是少第一个字母(不知道为什么)
edx=00FD3340
再跟进,到这里
004FD4E6&&&&8B95&90FDFFFF&&&mov&&&&&edx,&dword&ptr&[ebp-270]
004FD4EC&&&&8B45&0C&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp+C]
004FD4EF&&&&E8&F877F0FF&&&&&call&&&&00404CEC
004FD4F4&&&&53&&&&&&&&&&&&&&push&&&&ebx
004FD4F5&&&&8D85&8CFDFFFF&&&lea&&&&&eax,&dword&ptr&[ebp-274]
004FD4FB&&&&50&&&&&&&&&&&&&&push&&&&eax
此时,信息窗口显示如下:
CAJjPvAxj9j1l68nZ7&.)
堆栈&ss:[F24D48,&(ASCII&&2aDcyjdIzeko8pda4ilpvRK2J20QERbAk3+LKu0EbPdN/ls1y+4JgREHQx29abeXJUSOLOwKJqsIod7wh14H/Vomv5L56jrKB/y6dxEEw8K6HPVm6l9hMUrwo48HfNtldf586s/7hMffYC7lc5yalmihblOxmHGTyrpdjqmwmCuRXvm6jLLOdfx5yVJzXwD/Is6FNngQHWKggH6XkcsEsTO78clCAJjPvAxj9j1l68nZ7&.)
edx=00EC72E8,&(ASCII&69,&f&StrComp(AspApp_MC_MC,&&&346CA61E&&,&0)&&&&0&then&,CR,LF,&Response.write&&&&p&&center&&Font&size&=&4&color=#FF0000&)
堆栈后面的ASCII&就是“MyAspAppG.AddCode”里面的数据。记住这个SS=00F24D48这个值。
按F9让程序运行完,加密后的密文如下:
MyAspAppG.Tag&=&&Z82|e?Wv_(K!m4!aZ&
&&MyAspAppG.Crc64&=&&V49wdqT/c7B0p(B?0DecEs6&
&&MyAspAppG.Crc32&=&&S8ZnhxVfWCV9/B/Y7N4KFClA3fHjAk2dJMBIzwcyHzk=&(是不是和上面的一样)
&&MyAspAppG.AddCode&&2aDcyjdIzeko8pda4ilpvRK2J20QERbAk3+LKu0EbPdN/ls1y+4JgREHQx29abeXJUSOLOwKJqsIod7w&
&&MyAspAppG.AddCode&&h14H/Vomv5L56jrKB/y6dxEEw8K6HPVm6l9hMUrwo48HfNtldf586s/7hMffYC7lc5yalmihblOxmHGT&
&&MyAspAppG.AddCode&&yrpdjqmwmCuRXvm6jLLOdfx5yVJzXwD/Is6FNngQHWKggH6XkcsEsTO78clCAJjPvAxj9j1l68nZ71oW&
&&MyAspAppG.AddCode&&nJmX74qD63kftpkooo4hDzc6yqYGT62ZlOKEhGtjt7nGivcYBzs7BSCA8DQGo/iCyR8aaPV5HUafZjQw&
&&MyAspAppG.AddCode&&BUXDC7iqvX7OFfgrS+5qUxfFetfdbvUSiVWowiKrHaW/bX3r0F4Qs8tTbD+1Mrmobd0EgMGh1KbKkI+m&
&&MyAspAppG.AddCode&&SW9sdcCNW59t1OH+kg91fdfIu8Nost16oqQvoVkDhtsN6Ett7xzuEZoNZBqoY8RD96lMIRxJn85ivdQF&
&&MyAspAppG.AddCode&&ttH1sc7nKmZl0EwfIATcTFoc65sYE8dmIHInRdsKYeY3I0I2zMbY+e82UZdTB0twc/qzx4TWe9kJe/8F&
&&MyAspAppG.AddCode&&oZ5tkZTkN/ceiLdFw4ODluYSKsd9O45VVH8BuAN9HaC1bS7a73HJHZZC7RTYm2jFaw3OKA==&
&&MyAspAppG.Execute
&&Set&MyAspAppG&=&nothing
可以看到,每次读到密文的时候,堆栈里面:都是已经全部算好的。我先找MyAspAppG.AddCode的算法
重新载入程序,让程序完全运行后,转入OD在数据窗口转入到00F24D48这个位置,在刚才得到MyAspAppG.Crc32的地方按F2下断点。即:
004FD46E&&&&8B95&94FDFFFF&&&mov&&&&&edx,&dword&ptr&[ebp-26C]
转到源程序窗口,点击开始加密,程序跳到OD我下断点的位置,可以看到00F24D48里的数据变掉了,
00F24D48&&CA&D4&D3&C3&B0&E6&C9&FA&B3&C9&B5&C4&BC&D3&C3&DC&&试用版生成的加密
00F24D58&&41&53&50&CE&C4&BC&FE&A3&A1&D6&BB&C4&DC&D4&DA&C9&&ASP文件!只能在
00F24D68&&FA&B3&C9&D5&E2&B8&F6&BC&D3&C3&DC&CE&C4&BC&FE&B5&&烧飧黾用芪募
00F24D78&&C4&BB&FA&C6&F7&C9&CF&CA&D4&D3&C3&A1&A3&A3&A1&3C&&幕魃鲜杂谩#?
00F24D88&&2F&66&6F&6E&74&3E&3C&2F&63&65&6E&74&65&72&3E&3C&&/font&&/center&&
00F24D98&&2F&70&3E&20&22&0D&0D&0A&41&73&70&41&70&70&5F&49&&/p&&&...AspApp_I
00F24DA8&&6E&6E&65&72&43&6F&6E&74&72&6F&6C&2E&45&4E&44&5F&&nnerControl.END_
00F24DB8&&0D&0A&45&6E&64&20&49&66&0D&0A&20&52&65&73&70&6F&&..End&If..&Respo
(用试用版的加密后,aspapp会自动在所加密的asp文件里加入这些提示)
在数据窗口里00F24D48行C3那里下内存写入断点,禁止掉之前F2所下的所有断点,按F9让程序运行,OD会停在这里:
00467BC7&&&&880C06&&&&&&&&&&mov&&&&&byte&ptr&[esi+eax],&cl&&&&&&&&&&&;这里是写密文第一个字母。
00467BCA&&&&C1EA&06&&&&&&&&&shr&&&&&edx,&6&&&&&&&&&&&&&&&&&&&&&&&&&&&;&右移6
00467BCD&&&&48&&&&&&&&&&&&&&dec&&&&&eax&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&EAX自减1
00467BCE&&&&83F8&FF&&&&&&&&&cmp&&&&&eax,&-1&&&&&&&&&&&&&&&&&&&&&&&&&&;&和-1比较
00467BD1&&^&75&D9&&&&&&&&&&&jnz&&&&&short&00467BAC&&&&&&&&&&&&&&&&&&&;&ZF=0转移
00467BD3&&&&83C6&04&&&&&&&&&add&&&&&esi,&4
00467BD6&&&&85DB&&&&&&&&&&&&test&&&&ebx,&ebx
向上翻一点,到这里,这段代码就是算MyAspAppG.AddCode密文的。在00467B8A位置下断点,跟进一下,可以看到数据窗口00F24D48的位置密文是4个4个算出来的。
00467B8A&&&&33D2&&&&&&&&&&&&xor&&&&&edx,&edx
00467B8C&&&&B8&&&&&&mov&&&&&eax,&3
00467B91&&&&C1E2&08&&&&&&&&&shl&&&&&edx,&8&&&&&&&&&&&&&&&&&&&&&&&&&&&;&EDX左移8
00467B94&&&&85DB&&&&&&&&&&&&test&&&&ebx,&ebx
00467B96&&&&7E&0B&&&&&&&&&&&jle&&&&&short&00467BA3
00467B98&&&&8B4D&FC&&&&&&&&&mov&&&&&ecx,&dword&ptr&[ebp-4]
00467B9B&&&&0FB609&&&&&&&&&&movzx&&&ecx,&byte&ptr&[ecx]
00467B9E&&&&0BD1&&&&&&&&&&&&or&&&&&&edx,&ecx
00467BA0&&&&FF45&FC&&&&&&&&&inc&&&&&dword&ptr&[ebp-4]&&&&&&&&&&&&&&&&;&自加1
00467BA3&&&&4B&&&&&&&&&&&&&&dec&&&&&ebx&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&EBX自减1
00467BA4&&&&48&&&&&&&&&&&&&&dec&&&&&eax&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&EAX自减1
00467BA5&&^&75&EA&&&&&&&&&&&jnz&&&&&short&00467B91&&&&&&&&&&&&&&&&&&&;&ZF=0&跳转
00467BA7&&&&B8&&&&&&mov&&&&&eax,&3&&&&&&&&&&&&&&&&&&&&&&&&&&&;&EAX加3
00467BAC&&&&85DB&&&&&&&&&&&&test&&&&ebx,&ebx
00467BAE&&&&7D&0C&&&&&&&&&&&jge&&&&&short&00467BBC&&&&&&&&&&&&&&&&&&&;&大于等于转移
00467BB0&&&&8B4D&F8&&&&&&&&&mov&&&&&ecx,&dword&ptr&[ebp-8]
00467BB3&&&&8A49&40&&&&&&&&&mov&&&&&cl,&byte&ptr&[ecx+40]
00467BB6&&&&880C06&&&&&&&&&&mov&&&&&byte&ptr&[esi+eax],&cl
00467BB9&&&&43&&&&&&&&&&&&&&inc&&&&&ebx
00467BBA&&&&EB&0E&&&&&&&&&&&jmp&&&&&short&00467BCA
00467BBC&&&&8BCA&&&&&&&&&&&&mov&&&&&ecx,&edx&&&&&&&&&&&&&&&&&&&&&&&&&;&将EDX赋值给ECX
00467BBE&&&&83E1&3F&&&&&&&&&and&&&&&ecx,&3F&&&&&&&&&&&&&&&&&&&&&&&&&&;&与运算,3F=63
00467BC1&&&&8B7D&F8&&&&&&&&&mov&&&&&edi,&dword&ptr&[ebp-8]&&&&&&&&&&&;&指向00467C1E
00467BC4&&&&8A0C0F&&&&&&&&&&mov&&&&&cl,&byte&ptr&[edi+ecx]
00467BC7&&&&880C06&&&&&&&&&&mov&&&&&byte&ptr&[esi+eax],&cl
00467BCA&&&&C1EA&06&&&&&&&&&shr&&&&&edx,&6&&&&&&&&&&&&&&&&&&&&&&&&&&&;&右移6
00467BCD&&&&48&&&&&&&&&&&&&&dec&&&&&eax&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&EAX自减1
00467BCE&&&&83F8&FF&&&&&&&&&cmp&&&&&eax,&-1&&&&&&&&&&&&&&&&&&&&&&&&&&;&和-1比较
00467BD1&&^&75&D9&&&&&&&&&&&jnz&&&&&short&00467BAC&&&&&&&&&&&&&&&&&&&;&ZF=0转移
00467BD3&&&&83C6&04&&&&&&&&&add&&&&&esi,&4
00467BD6&&&&85DB&&&&&&&&&&&&test&&&&ebx,&ebx
00467BD8&&^&7F&B0&&&&&&&&&&&jg&&&&&&short&00467B8A
用同样的方法可以得到MyAspAppG.Crc32也是在这里算出来的。程序是先算出MyAspAppG.Crc32的密文,存放在00FD4668,然后再跳转回来算MyAspAppG.AddCode的密文,存放在00F24D48(为什么每次MyAspAppG.Crc32的数据一样,而MyAspAppG.AddCode的数据不一样?)
00467BDA&&&&8B45&08&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp+8]
00467BDD&&&&8B00&&&&&&&&&&&&mov&&&&&eax,&dword&ptr&[eax]
00467BDF&&&&E8&64D5F9FF&&&&&call&&&&
00467BE4&&&&8BD6&&&&&&&&&&&&mov&&&&&edx,&esi
00467BE6&&&&2BD0&&&&&&&&&&&&sub&&&&&edx,&eax
00467BE8&&&&8B45&08&&&&&&&&&mov&&&&&eax,&dword&ptr&[ebp+8]
00467BEB&&&&E8&E4D6F9FF&&&&&call&&&&
同样样利用下内存断点的方法可以找到另外两个密文MyAspAppG.Tag和MyAspAppG.Crc64的加密代码,运行到这里:
004FB44F&&&&8B86&&&&mov&&&&&eax,&dword&ptr&[esi+464]
004FB455&&&&E8&F69AF0FF&&&&&call&&&&00404F50
004FB45A&&&&E8&D580F0FF&&&&&call&&&&
004FB45F&&&&8B96&&&&mov&&&&&edx,&dword&ptr&[esi+464]
004FB465&&&&8A1402&&&&&&&&&&mov&&&&&dl,&byte&ptr&[edx+eax]
004FB468&&&&8D45&F8&&&&&&&&&lea&&&&&eax,&dword&ptr&[ebp-8]
004FB46B&&&&8850&01&&&&&&&&&mov&&&&&byte&ptr&[eax+1],&dl
004FB46E&&&&C600&01&&&&&&&&&mov&&&&&byte&ptr&[eax],&1
004FB471&&&&8D55&F8&&&&&&&&&lea&&&&&edx,&dword&ptr&[ebp-8]
004FB474&&&&8D45&FC&&&&&&&&&lea&&&&&eax,&dword&ptr&[ebp-4]
004FB477&&&&E8&789AF0FF&&&&&call&&&&00404EF4
004FB47C&&&&8D45&FC&&&&&&&&&lea&&&&&eax,&dword&ptr&[ebp-4]
004FB47F&&&&50&&&&&&&&&&&&&&push&&&&eax
004FB480&&&&8D45&F4&&&&&&&&&lea&&&&&eax,&dword&ptr&[ebp-C]
004FB483&&&&8BD7&&&&&&&&&&&&mov&&&&&edx,&edi
004FB485&&&&E8&6A9AF0FF&&&&&call&&&&00404EF4
004FB48A&&&&8B55&F4&&&&&&&&&mov&&&&&edx,&dword&ptr&[ebp-C]
004FB48D&&&&58&&&&&&&&&&&&&&pop&&&&&eax
004FB48E&&&&E8&C59AF0FF&&&&&call&&&&00404F58
004FB493&&&&8B55&FC&&&&&&&&&mov&&&&&edx,&dword&ptr&[ebp-4]
004FB496&&&&8BC7&&&&&&&&&&&&mov&&&&&eax,&edi
004FB498&&&&B9&FF000000&&&&&mov&&&&&ecx,&0FF
004FB49D&&&&E8&8A9AF0FF&&&&&call&&&&00404F2C
004FB4A2&&&&4B&&&&&&&&&&&&&&dec&&&&&ebx
004FB4A3&&^&75&AA&&&&&&&&&&&jnz&&&&&short&004FB44F
信息窗口如下:
ds:[00F668C4]=00F5F778,&(ASCII&&pSL!FtyZ*X?G(K=HJ)q;12wB{NM}3r4eu_056RgI78hjklzTYU9QWOPasdfxEAD!@CViopcvbnm^$&*/|\&)
下面是对MyAspAppG.Tag加密代码的分析,为了便于理解,我将每一步寄存器的变化都复制下来了,用红色表示,变化的寄存器用蓝色表示。
004FB44F&&&&8B86&&mov&&&&&eax,&dword&ptr&[esi+464]&&:将[esi+464]&赋值给eax,此时:ESI=00F66460
dword&ptr&[esi+464]=ds:[00F668C4]=00F5F778(ds:[00F668C4]=00F5F778,&(ASCII&&pSL!FtyZ*X?G(K=HJ)q;12wB{NM}3r4eu_056RgI78hjklzTYU9QWOPasdfxEAD!@CViopcvbnm^$&*/|\&))
004FB455&&&&E8&F6&call&&&&00404F50&&&&:转到00404F50处执行子程序如下:
00404F50&&&&85C0&&test&&&&eax,&eax&&&&&;测试&&eax
00404F52&&&&74&03&je&&&&&&short&00404F57&&&;这个跳转不会实现。
00404F54&&&&8B40&&mov&&&&&eax,&dword&ptr&[eax-4]&&&;将dword&ptr&[eax-4]赋值给eax
dword&ptr&[eax-4]=ds:[00F5F774]=
eax=00F5F778,&(ASCII&&pSL!FtyZ*X?G(K=HJ)q;12wB{NM}3r4eu_056RgI78hjklzTYU9QWOPasdfxEAD!@CViopcvbnm^$&*/|\&)
ECX&0012F84C
ESI&00F66460
EDI&0012F84C
EIP&00404F57&AspAppEn.00404F57
00404F57&&&&C3&&&&retn&&&;返回到上一级:004FB45A
004FB45A&&&&E8&D5&call&&&&&&&:转到处执行子程序如下
&&&&&&&&&&&&53&&&&push&&&&ebx&&&;ebx入栈&ebx=
&&&&&&&&EAX&
ECX&0012F84C
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&&AspAppEn.
&&&&31DB&&xor&&&&&ebx,&ebx&&&&&;ebx清零
ECX&0012F84C
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&&AspAppEn.
&&&&6993&&imul&&&&edx,&dword&ptr&[ebx+502008],&8088405&&&&;这是带符号数乘法具体是怎么算的,不知道
[ebx+502008]=ds:[6895CD
ECX&0012F84C
EDX&05B0A101
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&&AspAppEn.
&&&&42&&&&inc&&&&&edx&&&;&&&edx+1
ECX&0012F84C
EDX&05B0A102
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&&AspAppEn.
&&&&8993&&mov&&&&&dword&ptr&[ebx+502008],&edx&&&;将edx赋值给006895CD?
edx=05B0A102
dword&ptr&[ebx+502008]=&ds:[6895CD
&&&&F7E2&&mul&&&&&edx&&&;无符号数乘法?EDX=?
EAX&D29392A4&&&?变了
ECX&0012F84C
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&0040354A&AspAppEn.0040354A
0040354A&&&&89D0&&mov&&&&&eax,&edx&&&;将EDX赋值给EAX
ECX&0012F84C
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&0040354C&AspAppEn.0040354C
0040354C&&&&5B&&&&pop&&&&&ebx&&&;EBX出栈
ECX&0012F84C
ESI&00F66460
EDI&0012F84C
EIP&0040354D&AspAppEn.0040354D
0040354D&&&&C3&&&&retn&&&;返回到&004FB45F&
ECX&0012F84C
ESI&00F66460
EDI&0012F84C
EIP&004FB45F&AspAppEn.004FB45F
004FB45F&&&&8B96&&mov&&&&&edx,&dword&ptr&[esi+464]&&&&;将dword&ptr&[esi+464]赋值给EDX&dword&ptr&[esi+464]=ds:[00F668C4]=00F5F778,&(ASCII&&pSL!FtyZ*X?G(K=HJ)q;12wB{NM}3r4eu_056RgI78hjklzTYU9QWOPasdfxEAD!@CViopcvbnm^$&*/|\&)
ECX&0012F84C
EDX&00F5F778&ASCII&&pSL!FtyZ*X?G(K=HJ)q;12wB{NM}3r4eu_056RgI78hjklzTYU9QWOPasdfxEAD!@CViopcvbnm^$&*/|\&
ESI&00F66460
EDI&0012F84C
004FB465&&&&8A140&mov&&&&&dl,&byte&ptr&[edx+eax]&&&;将byte&ptr&[edx+eax]赋值给DL&byte&ptr&[edx+eax]=ds:[00F5F779]=53&('S')&dl=78&('x')
ECX&0012F84C
EDX&00F5F753
ESI&00F66460
EDI&0012F84C
EIP&004FB468&AspAppEn.004FB468
004FB468&&&&8D45&&lea&&&&&eax,&dword&ptr&[ebp-8]&&&;有效地址传送指令:dword&ptr&[ebp-8]&到&EAX&堆栈地址=ebp-8=
ECX&0012F84C
EDX&00F5F753
ESI&00F66460
EDI&0012F84C
EIP&004FB46B&AspAppEn.004FB46B
004FB46B&&&&8850&&mov&&&&&byte&ptr&[eax+1],&dl&&&;dl=53&('S')&堆栈&ds:[
004FB46E&&&&C600&&mov&&&&&byte&ptr&[eax],&1&&&&;堆栈&ds:[&运行后
004FB471&&&&8D55&&lea&&&&&edx,&dword&ptr&[ebp-8]&&&;将ebp-8赋值给EDX&EBP=&&堆栈地址=&edx=00F5F753&&
ECX&0012F84C
ESI&00F66460
EDI&0012F84C
EIP&004FB474&AspAppEn.004FB474
004FB474&&&&8D45&&lea&&&&&eax,&dword&ptr&[ebp-4]&&&;有效地址传送指令。将传送给EAX
ECX&0012F84C
ESI&00F66460
EDI&0012F84C
EIP&004FB477&AspAppEn.004FB477
004FB477&&&&E8&78&call&&&&00404EF4&&&&;转入00404EF4处理子程序
ECX&0012F84C
ESI&00F66460
EDI&0012F84C
EIP&00404EF4&AspAppEn.00404EF4
00404EF4&&&&31C9&&xor&&&&&ecx,&ecx&&&;ECX清零
00404EF6&&&&8A0A&&mov&&&&&cl,&byte&ptr&[edx]&&&;堆栈&ds:[&cl=00
ESI&00F66460
EDI&0012F84C
EIP&00404EF8&AspAppEn.00404EF8
00404EF8&&&&42&&&&inc&&&&&edx&&&&;EDX+1
ESI&00F66460
EDI&0012F84C
EIP&00404EF9&AspAppEn.00404EF9
00404EF9&&^&E9&8A&jmp&&&&&00404D88&&&&&&;无条件跳转到00404D88
00404D88&&&&53&&&&push&&&&ebx&&&&&;EBX入栈
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&00404D89&AspAppEn.00404D89
00404D89&&&&56&&&&push&&&&esi&&&&&&;ESI入栈
ESI&00F66460
EDI&0012F84C
EIP&00404D8A&AspAppEn.00404D8A
00404D8A&&&&57&&&&push&&&&edi&&&&&&;EDI入栈
ESI&00F66460
EDI&0012F84C
EIP&00404D8B&AspAppEn.00404D8B
00404D8B&&&&89C3&&mov&&&&&ebx,&eax&&&;EAX传送给EBX
ESI&00F66460
EDI&0012F84C
EIP&00404D8D&AspAppEn.00404D8D
00404D8D&&&&89D6&&mov&&&&&esi,&edx&&&;EDX传送给ESI
EDI&0012F84C
EIP&00404D8F&AspAppEn.00404D8F
00404D8F&&&&89CF&&mov&&&&&edi,&ecx&&&&;ECX传送给EDI
EIP&00404D91&AspAppEn.00404D91
00404D91&&&&89F8&&mov&&&&&eax,&edi&&&&&;EDI传送给EAX
EIP&00404D93&AspAppEn.00404D93
00404D93&&&&E8&C4&call&&&&00404D5C&&&&&&;转入00404D5C
00404D5C&&&&85C0&&test&&&&eax,&eax&&&&&;这里可能是为了改标志位
00404D5E&&&&7E&24&jle&&&&&short&00404D84&&&&;这个跳转不会实现
00404D60&&&&50&&&&push&&&&eax&&&&&&;EAX入栈
ESP&0012F75C
EIP&00404D61&AspAppEn.00404D61
00404D61&&&&83C0&&add&&&&&eax,&0A&&&&&&;EAX+0A(十进制是:10)
EAX&0000000B
ESP&0012F75C
EIP&00404D64&AspAppEn.00404D64
00404D64&&&&83E0&&and&&&&&eax,&FFFFFFFE&&&&&;逻辑与运算
EAX&0000000A&&&&&;为什么=0000000A
ESP&0012F75C
EIP&00404D67&AspAppEn.00404D67
00404D67&&&&50&&&&push&&&&eax&&&&&&;EAX入栈
EAX&0000000A
EIP&00404D68&AspAppEn.00404D68
00404D68&&&&E8&A3&call&&&&00402A10&&&&&&;跑转到:00402A10
EAX&0000000A
EIP&00402A10&AspAppEn.00402A10
00402A10&&&&53&&&&push&&&&ebx&&&&&;入栈
00402A11&&&&85C0&&test&&&&eax,&eax
00402A13&&&&7E&15&jle&&&&&short&00402A2A&&&&;这个跳转不会实现
00402A15&&&&FF15&&call&&&&dword&ptr&[502030]&&&&&;dword&ptr&[408458&跳到:
EAX&0000000A
ESP&0012F74C
EIP&&AspAppEn.
&&&&8D50&&lea&&&&&edx,&dword&ptr&[eax+3]&&&&;dword&ptr&[eax+3]=0000000D
EAX&0000000A
EDX&0000000D
ESP&0012F74C
EIP&0040845B&AspAppEn.0040845B
0040845B&&&&C1EA&&shr&&&&&edx,&3&&&&&;逻辑右移指令EDX右移3
EAX&0000000A
ESP&0012F74C
EIP&0040845E&AspAppEn.0040845E
0040845E&&&&3D&2C&cmp&&&&&eax,&0A2C&&&&&;EAX和0A2C(十进制2604)比较
&&&&53&&&&push&&&&ebx&&&&&&&&;EBX入栈
EAX&0000000A
EIP&&AspAppEn.
&&&&8A0D&&mov&&&&&cl,&byte&ptr&[51D04D]&&&&&;ds:[0051D04D]=01&&cl=01
0040846A&&&&0F87&&ja&&&&&&0040869C&&&&&&;跳转不实现
&&&&84C9&&test&&&&cl,&cl&&&
&&&&0FB68&movzx&&&eax,&byte&ptr&[edx+51D734]&&&&&;byte&ptr&[edx+51D734]=ds:[
EIP&&AspAppEn.
&&&&8D1CC&lea&&&&&ebx,&dword&ptr&[eax*8+5020DC]&&&&&;有效地址传送:地址=005020DC
EBX&005020DC&AspAppEn.005020DC
EIP&&AspAppEn.
&&&&75&56&jnz&&&&&short&&&&&&;跳转已实现到
&&&&B8&&&&&&mov&&&&&eax,&100&&&&&;将100(十进制256)赋值给EAX
EBX&005020DC&AspAppEn.005020DC
EIP&004084DD&AspAppEn.004084DD
004084DD&&&&F0:0FB023&&&&&&&lock&cmpxchg&byte&ptr&[ebx],&ah&&&&&;锁定&&比较数据交换?
&&&&&&&&ah=01&&ds:[005020DC]=00
&&^\74&9F&&&&&&&&&&&je&&&&&&short&&&&&&;跳转实现到时
&&&&8B53&&mov&&&&&edx,&dword&ptr&[ebx+4]&&&&&&;将dword&ptr&[EBX+4]赋值给EDX
dword&ptr&[EBX+4]&=&ds:[]=00FC4CE0
EDX&00FC4CE0
EBX&005020DC&AspAppEn.005020DC
EIP&&AspAppEn.
&&&&8B42&&mov&&&&&eax,&dword&ptr&[edx+8]&&&&&&;将dword&ptr&[edx+8]赋值给EAX
dword&ptr&[edx+8]&=&ds:[00FC4CE8]=00FC5130
EAX&00FC5130
EDX&00FC4CE0
EBX&005020DC&AspAppEn.005020DC
EIP&&AspAppEn.
&&&&B9&F8&mov&&&&&ecx,&-8&&&&;将-8赋值给ECX
EAX&00FC5130
ECX&FFFFFFF8
EDX&00FC4CE0
EBX&005020DC&AspAppEn.005020DC
EIP&0040848D&AspAppEn.0040848D
0040848D&&&&39DA&&cmp&&&&&edx,&ebx&&&&&;比较EDX&和EBX
0040848F&&&&74&17&je&&&&&&short&&&&&&&;跳转不实现
&&&&8342&&add&&&&&dword&ptr&[edx+C],&1&&&&&;+1&edx+C&=&00FC4CEC&ds:[00FC4CEC]=
&&&&2348&&and&&&&&ecx,&dword&ptr&[eax-4]&&&&;ECX+dword&ptr&[eax-4]&&&&
ds:[00FC512C]=00FC51A1&ecx=FFFFFFF8
EAX&00FC5130
ECX&00FC51A0
EDX&00FC4CE0
EBX&005020DC&AspAppEn.005020DC
EIP&&AspAppEn.
&&&&894A&&mov&&&&&dword&ptr&[edx+8],&ecx&&&&;&ecx=00FC51A0&&ds:[00FC4CE8]=00FC5130
0040849B&&&&8950&&mov&&&&&dword&ptr&[eax-4],&edx&&&&&;edx=00FC4CE0&ds:[00FC512C]=00FC51A1
0040849E&&&&74&28&je&&&&&&short&&&&&&&&;跳转未实现
&&&&C603&&mov&&&&&byte&ptr&[ebx],&0&&&&&;ds:[005020DC]=01
&&&&5B&&&&pop&&&&&ebx&&&;EBX出栈&&堆栈&[12F794&()
EAX&00FC5130
ECX&00FC51A0
EDX&00FC4CE0
ESP&0012F74C
EIP&&AspAppEn.
&&&&F3:&&&prefix&rep:&&&&&;不知道什么意思,运行后跳转到00402A1B
EAX&00FC5130
ECX&00FC51A0
EDX&00FC4CE0
EIP&00402A1B&AspAppEn.00402A1B
00402A1B&&&&8BD8&&mov&&&&&ebx,&eax&&&&&;将EAX传送给EBX
EAX&00FC5130
ECX&00FC51A0
EDX&00FC4CE0
EBX&00FC5130
EIP&00402A1D&AspAppEn.00402A1D
00402A1D&&&&85DB&&test&&&&ebx,&ebx&&&&&
00402A1F&&&&75&0B&jnz&&&&&short&00402A2C&&&&&跳转已实现&跳转到00402A2C
00402A2C&&&&8BC3&&mov&&&&&eax,&ebx&&&&&&;将EBX传送给EAX
00402A2E&&&&5B&&&&pop&&&&&ebx&&&&&&&;EBX出栈
EAX&00FC5130
ECX&00FC51A0
EDX&00FC4CE0
EIP&00402A2F&AspAppEn.00402A2F
00402A2F&&&&C3&&&&retn&&&&&;返回到&00404D6D&
&&&&&&&&EAX&00FC5130
ECX&00FC51A0
EDX&00FC4CE0
EIP&00404D6D&AspAppEn.00404D6D
00404D6D&&&&5A&&&&pop&&&&&edx&&&&&&;EDX出栈
EAX&00FC5130
ECX&00FC51A0
EDX&0000000A
ESP&0012F75C
EIP&00404D6E&AspAppEn.00404D6E
00404D6E&&&&66:C7&mov&&&&&word&ptr&[edx+eax-2],&0&&&&&&&&;edx+eax-2=00FC5138&ds:[00FC运行后变为:0000
00404D75&&&&83C0&&add&&&&&eax,&8&&&&&&;EAX+8
EAX&00FC5138
ECX&00FC51A0
EDX&0000000A
ESP&0012F75C
EIP&00404D78&AspAppEn.00404D78
00404D78&&&&5A&&&&pop&&&&&edx&&&&&&;EDX出栈&&堆栈&[0012F75C]=&
EAX&00FC5138
ECX&00FC51A0
EIP&00404D79&AspAppEn.00404D79
00404D79&&&&8950&&mov&&&&&dword&ptr&[eax-4],&edx&&&&&&;eax-4=00FC5134&ds:[00FC03
00404D7C&&&&C740&&mov&&&&&dword&ptr&[eax-8],&1&&&&&ds:[00FC00&运行后&00FC1
00404D83&&&&C3&&&&retn&&&&&&&&&;返回到&00404D98&
EAX&00FC5138
ECX&00FC51A0
EIP&00404D98&AspAppEn.00404D98
00404D98&&&&89F9&&mov&&&&&ecx,&edi&&&&&&;将EDI传送给ECX
EAX&00FC5138
EIP&00404D9A&AspAppEn.00404D9A
00404D9A&&&&89C7&&mov&&&&&edi,&eax&&&&&;将EAX传送给EDI
EAX&00FC5138
EDI&00FC5138
EIP&00404D9C&AspAppEn.00404D9C
00404D9C&&&&85F6&&test&&&&esi,&esi&&&&&&
00404D9E&&&&74&09&je&&&&&&short&00404DA9&&&&&;跳转未实现
00404DA0&&&&89C2&&mov&&&&&edx,&eax&&&&&&&&&&&;将EAX传送给EDX
EAX&00FC5138
EDX&00FC5138
EDI&00FC5138
EIP&00404DA2&AspAppEn.00404DA2
00404DA2&&&&89F0&&mov&&&&&eax,&esi&&&&&&&&&;将ESI传送给EAX
EDX&00FC5138
EDI&00FC5138
EIP&00404DA4&AspAppEn.00404DA4
00404DA4&&&&E8&93&call&&&&00402C3C
00402C3C&&&&56&&&&&&&&&&&&&&push&&&&esi&&&&&&&;ESI入栈
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00402C3C&AspAppEn.00402C3C
00402C3D&&&&57&&&&&&&&&&&&&&push&&&&edi&&&&&;EDI入栈
EDX&00FC4FB8
ESP&0012F75C
EDI&00FC4FB8
EIP&00402C3D&AspAppEn.00402C3D
00402C3E&&&&89C6&&&&&&&&&&&&mov&&&&&esi,&eax&&&&&;将EAX传送给ESI
00402C40&&&&89D7&&&&&&&&&&&&mov&&&&&edi,&edx&&&&&;将EDX传送给EDI
00402C42&&&&89C8&&&&&&&&&&&&mov&&&&&eax,&ecx&&&&&;将ECX传送给EAX
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00402C44&AspAppEn.00402C44
00402C44&&&&39F7&&&&&&&&&&&&cmp&&&&&edi,&esi&&;比较ESI和EDI&&ESI()=63&&EDI(00FC4FB8)=00
00402C46&&&&77&13&&&&&&&&&&&ja&&&&&&short&00402C5B&&&&&;跳转已实现&&&到:00402C5B
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00402C5B&AspAppEn.00402C5B
00402C5B&&&&8D7431&FC&&&&&&&lea&&&&&esi,&dword&ptr&[ecx+esi-4]&&&&;有效地址传送&&堆栈地址=0012F78E
EDX&00FC4FB8
ESI&0012F78E
EDI&00FC4FB8
EIP&00402C5F&AspAppEn.00402C5F
00402C5F&&&&8D7C39&FC&&&&&&&lea&&&&&edi,&dword&ptr&[ecx+edi-4]&&&&;有效地址传送&&堆栈地址=00FC4FB5
EDX&00FC4FB8
ESI&0012F78E
EDI&00FC4FB5
EIP&00402C63&AspAppEn.00402C63
00402C63&&&&C1F9&02&&&&&&&&&sar&&&&&ecx,&2&&&&&;ECX右移2
EDX&00FC4FB8
ESI&0012F78E
EDI&00FC4FB5
EIP&00402C66&AspAppEn.00402C66
00402C66&&&&78&11&&&&&&&&&&&js&&&&&&short&00402C79&&&&&;跳转未实现
00402C68&&&&FD&&&&&&&&&&&&&&std&&&&&&&&&&&&;处理器控制指令-标志位操作指令,不知道什么意思
00402C69&&&&F3:A5&&&&rep&&&&movs&dword&ptr&es:[edi],&dword&ptr&[esi]&&&&&;重复前缀,不知道是什么意思
ecx=&(十进制&0.)
ds:[esi]=stack&[0012F78E]=
es:[edi]=[00FC4FB5]=
00402C6B&&&&89C1&&&&&&&&&&&&mov&&&&&ecx,&eax&&&&&;将EAX传送给ECX
EDX&00FC4FB8
ESI&0012F78E
EDI&00FC4FB5
EIP&00402C6D&AspAppEn.00402C6D
00402C6D&&&&83E1&03&&&&&&&&&and&&&&&ecx,&3&&&&&;与运算ecx,&3
00402C70&&&&83C6&03&&&&&&&&&add&&&&&esi,&3&&&&&;esi+&3&&
EDX&00FC4FB8
EDI&00FC4FB5
EIP&00402C73&AspAppEn.00402C73
00402C73&&&&83C7&03&&&&&&&&&add&&&&&edi,&3&&&&&;edi+&3&
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00402C76&AspAppEn.00402C76
00402C76&&&&F3:A&rep&&&&&&&&movs&byte&ptr&es:[edi],&byte&ptr&[esi]&&&&&&&;重复前缀,不知道是什么意思
EDX&00FC4FB8
EDI&00FC4FB7
EIP&00402C78&AspAppEn.00402C78
00402C78&&&&FC&&&&&&&&&&&&&&cld&&&&&&&&&&&&&&&;处理器控制指令-标志位操作指令,不知道什么意思
00402C79&&&&5F&&&&&&&&&&&&&&pop&&&&&edi&&&&&;EDI出栈&&堆栈&[FC4FB8
EDX&00FC4FB8
ESP&0012F75C
EDI&00FC4FB8
EIP&00402C7A&AspAppEn.00402C7A
00402C7A&&&&5E&&&&&&&&&&&&&&pop&&&&&esi&&&&&;ESI出栈&&堆栈&[0012F75C]=&
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00402C7B&AspAppEn.00402C7B
00402C7B&&&&C3&&&&&&&&&&&&&&retn&&&&&;返回到&00404DA9&
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00404DA9&AspAppEn.00404DA9
00404DA9&&&&89D8&&mov&&&&&eax,&ebx&&&&&&;将EBX传送给EAX&
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00404DAB&AspAppEn.00404DAB
00404DAB&&&&E8&E8&call&&&&00404C98&&&&&&&;转入00404C98处理
EDX&00FC4FB8
EDI&00FC4FB8
EIP&00404C98&AspAppEn.00404C98
00404C98&&&&8B10&&&&&&&&&&&&mov&&&&&edx,&dword&ptr&[eax]&&&&&;堆栈ds:[000000
EDI&00FC4FB8
EIP&00404C9A&AspAppEn.00404C9A
00404C9A&&&&85D2&&&&&&&&&&&&test&&&&edx,&edx&&&&&
00404C9C&&&&74&1C&&&&&&&&&&&je&&&&&&short&00404CBA&&&&&;跳转已实现&到00404CBA
00404CBA&&&&C3&&&&&&&&&&&&&&retn&&&&&;返回到&00404DB0&
EDI&00FC5138
EIP&00404DB0&AspAppEn.00404DB0
00404DB0&&&&893B&&mov&&&&&dword&ptr&[ebx],&edi&&&&&;edi=00FC4FB8&堆栈&ds:[000000
00404DB2&&&&5F&&&&pop&&&&&edi&&&&&&;EDI出栈
EDI&0012F84C
EIP&00404DB3&AspAppEn.00404DB3
00404DB3&&&&5E&&&&pop&&&&&esi&&&;ESI出栈&&&堆栈&[F66460&
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&00404DB4&AspAppEn.00404DB4
00404DB4&&&&5B&&&&pop&&&&&ebx&&&&&;EBX出栈&&&堆栈&[0012F76C]=
ESI&00F66460
EDI&0012F84C
EIP&00404DB5&AspAppEn.00404DB5
00404DB5&&&&C3&&&&retn&&&&&&;返回到&004FB47C&
ESI&00F66460
EDI&0012F84C
EIP&004FB47C&AspAppEn.004FB47C
004FB47C&&&&8D45&&lea&&&&&eax,&dword&ptr&[ebp-4]&&&&&;堆栈地址=EBP-4=
004FB47F&&&&50&&&&push&&&&eax
ESI&00F66460
EDI&0012F84C
EIP&004FB480&AspAppEn.004FB480
004FB480&&&&8D45&&lea&&&&&eax,&dword&ptr&[ebp-C]&&&&;ebp-C&=&0012F78C&&有效地址传送
EAX&0012F78C
ESI&00F66460
EDI&0012F84C
EIP&004FB483&AspAppEn.004FB483
004FB483&&&&8BD7&&mov&&&&&edx,&edi&&&&&;将EDI传送给EDX
EAX&0012F78C
EDX&0012F84C
ESI&00F66460
EDI&0012F84C
EIP&004FB485&AspAppEn.004FB485
004FB485&&&&E8&6A&call&&&&00404EF4&&&&&;继续转入00404EF4处理子程序
和上面一样,(这里略...)运行完寄存器如下:
EAX&0012F78C
ESI&00F66460
EDI&0012F84C
EIP&004FB48A&AspAppEn.004FB48A
004FB48A&&&&8B55&&mov&&&&&edx,&dword&ptr&[ebp-C]&&&&&;ebp-C=0012F78C&堆栈&ss:[0012F78C]=
004FB48D&&&&58&&&&pop&&&&&eax&&&&&&&&&;堆栈&[12F794&
ESI&00F66460
EDI&0012F84C
EIP&004FB48E&AspAppEn.004FB48E
004FB48E&&&&E8&C5&call&&&&00404F58&&&&&&&&;转入00404F58处理子程序
00404F58&&&&85D2&&&&&&&&&&&&test&&&&edx,&edx
00404F5A&&&&74&3F&&&&&&&&&&&je&&&&&&short&00404F9B&&&&&跳转实现,转到00404F8F
00404F8F&&&&C3&&&&&&&&&&&&&&retn&&&&&;返回到&004FB493&
&&&&&&&&EAX&
ESI&00F66460
EDI&0012F84C
EIP&004FB493&AspAppEn.004FB493
004FB493&&&&8B55&&mov&&&&&edx,&dword&ptr&[ebp-4]&&&&&;ebp-4=&堆栈&ss:[FC5138
EDX&00FC5138
ESI&00F66460
EDI&0012F84C
EIP&004FB496&AspAppEn.004FB496
004FB496&&&&8BC7&&mov&&&&&eax,&edi&&&&&;将EDI传送给EAX
EAX&0012F84C
EDX&00FC5138
ESI&00F66460
EDI&0012F84C
EIP&004FB498&AspAppEn.004FB498
004FB498&&&&B9&FF&mov&&&&&ecx,&0FF&&&&&;将0FF(十进制:255)传送给ECX
EAX&0012F84C
ECX&000000FF
EDX&00FC5138
ESI&00F66460
EDI&0012F84C
EIP&004FB49D&AspAppEn.004FB49D
004FB49D&&&&E8&8A&call&&&&00404F2C&&&&&;转入00404F2C处理子程序
EAX&0012F84C
ECX&000000FF
EDX&00FC5138
ESI&00F66460
EDI&0012F84C
EIP&00404F2C&AspAppEn.00404F2C
00404F2C&&&&53&&&&&&&&&&&&&&push&&&&ebx&&&&&;EBX入栈
EAX&0012F84C
ECX&000000FF
EDX&00FC5138
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&00404F2D&AspAppEn.00404F2D
00404F2D&&&&85D2&&&&&&&&&&&&test&&&&edx,&edx
00404F2F&&&&74&18&&&&&&&&&&&je&&&&&&short&00404F49&&&&&;跳转未实现
00404F31&&&&8B5A&FC&&&&&&&&&mov&&&&&ebx,&dword&ptr&[edx-4]&&&&&;edx-4&=&00FC5134&ds:[00FC01
EAX&0012F84C
ECX&000000FF
EDX&00FC5138
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&00404F34&AspAppEn.00404F34
00404F34&&&&85DB&&&&&&&&&&&&test&&&&ebx,&ebx
00404F36&&&&74&11&&&&&&&&&&&je&&&&&&short&00404F49&&&&&;跳转未实现
00404F38&&&&39D9&&&&&&&&&&&&cmp&&&&&ecx,&ebx&&&&&;比较EBX和ECX
EAX&0012F84C
ECX&000000FF
EDX&00FC5138
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
00404F3A&&&&7C&02&&&&&&&&&&&jl&&&&&&short&00404F3E&&&&&;跳转未实现
00404F3C&&&&89D9&&&&&&&&&&&&mov&&&&&ecx,&ebx&&&&&;将EBX传送给ECX
EAX&0012F84C
EDX&00FC5138
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&00404F3E&AspAppEn.00404F3E
00404F3E&&&&8808&&&&&&&&&&&&mov&&&&&byte&ptr&[eax],&cl&&&&&;将CL传送到byte&ptr&[eax]&cl=01&堆栈&ds:[0012F84C]=00运行后
00404F40&&&&40&&&&&&&&&&&&&&inc&&&&&eax&&&&&&&&&;EAX+1
EAX&0012F84D
EDX&00FC5138
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&00404F41&AspAppEn.00404F41
00404F41&&&&92&&&&&&&&&&&&&&xchg&&&&eax,&edx&&&&&数据交换,EDX和EAX数据交换
EAX&00FC5138
EDX&0012F84D
ESP&0012F76C
ESI&00F66460
EDI&0012F84C
EIP&00404F42&AspAppEn.00404F42
00404F42&&&&E8&F5DCFFFF&&&&&call&&&&00402C3C&&&&&;继续转入00402C3C处理子程序
00402C3C&&&&56&&&&&&&&&&&&&&push&&&&esi
EAX&00FC5138
EDX&0012F84D
ESI&00F66460
EDI&0012F84C
EIP&00402C3D&AspAppEn.00402C3D
00402C3D&&&&57&&&&&&&&&&&&&&push&&&&edi
EAX&00FC5138
EDX&0012F84D
ESI&00F66460
EDI&0012F84C
EIP&00402C3E&AspAppEn.00402C3E
00402C3E&&&&89C6&&&&&&&&&&&&mov&&&&&esi,&eax
EAX&00FC5138
EDX&0012F84D
ESI&00FC5138
EDI&0012F84C
EIP&00402C40&AspAppEn.00402C40
00402C40&&&&89D7&&&&&&&&&&&&mov&&&&&edi,&edx
EAX&00FC5138
EDX&0012F84D
ESI&00FC5138
EDI&0012F84D
EIP&00402C42&AspAppEn.00402C42
00402C42&&&&89C8&&&&&&&&&&&&mov&&&&&eax,&ecx
EDX&0012F84D
ESI&00FC5138
EDI&0012F84D
EIP&00402C44&AspAppEn.00402C44
00402C44&&&&39F7&&&&&&&&&&&&cmp&&&&&edi,&esi&&&&&;比较
00402C46&&&&77&13&&&&&&&&&&&ja&&&&&&short&00402C5B&&&&&;跳转不实现
00402C48&&&&74&2F&&&&&&&&&&&je&&&&&&short&00402C79&&&&&;跳不了
00402C4A&&&&C1F9&02&&&&&&&&&sar&&&&&ecx,&2&&&&&;ECX右移2
EDX&0012F84D
ESI&00FC5138
EDI&0012F84D
EIP&00402C4D&AspAppEn.00402C4D
00402C4D&&&&78&2A&&&&&&&&&&&js&&&&&&short&00402C79&&&&&;跳转不了
00402C4F&&&&F3:A5&&&&&&&&&&&rep&&&&&movs&dword&ptr&es:[edi],&dword&ptr&[esi]&&&&&;重复前缀,不知道是什么意思
00402C51&&&&89C1&&&&&&&&&&&&mov&&&&&ecx,&eax
EDX&0012F84D
ESI&00FC5138
EDI&0012F84D
EIP&00402C53&AspAppEn.00402C53
00402C53&&&&83E1&03&&&&&&&&&and&&&&&ecx,&3&&&&&;与运算
00402C56&&&&F3:A4&&&&&&&&&&&rep&&&&&movs&byte&ptr&es:[edi],&byte&ptr&[esi]&&&&&&;重复前缀,不知道是什么意思
EDX&0012F84D
ESI&00FC5139
EDI&0012F84E
EIP&00402C58&AspAppEn.00402C58
00402C58&&&&5F&&&&&&&&&&&&&&pop&&&&&edi&&&&;出栈
EDX&0012F84D
ESI&00FC5139
EDI&0012F84C
EIP&00402C59&AspAppEn.00402C59
00402C59&&&&5E&&&&&&&&&&&&&&pop&&&&&esi&&&&;出栈
EDX&0012F84D
ESI&00F66460
EDI&0012F84C
EIP&00402C5A&AspAppEn.00402C5A
00402C5A&&&&C3&&&&&&&&&&&&&&retn&&&&&返回到&00404F47&
00404F47&&&&5B&&&&&&&&&&&&&&pop&&&&&ebx&&&&&;出栈
EDX&0012F84D
ESI&00F66460
EDI&0012F84C
EIP&00404F48&AspAppEn.00404F48
00404F48&&&&C3&&&&&&&&&&&&&&retn&&&&&;返回到&004FB4A2&
004FB4A2&&&&4B&&&&dec&&&&&ebx&&&&&;EBX减1
EDX&0012F84D
ESI&00F66460
EDI&0012F84C
EIP&004FB4A3&AspAppEn.004FB4A3
004FB4A3&&^&75&AA&jnz&&&&&short&004FB44F&向上跳,继续跳转到&004FB44F处理第二个字符。
只分析到这里,迫不急待的想发点东西上来(其实也进行不下去了),
想请高手帮忙.想传附件,可是权限不够

我要回帖

更多关于 文本文档加密 的文章

 

随机推荐