首页
社区
课程
招聘
开源fonge's crackme10.4
2007-3-11 12:20 5145

开源fonge's crackme10.4

2007-3-11 12:20
5145
郁闷死了,黑夜彩虹等在飘云阁刚刚成立一个加密小组PET,很有前途的,
虽然没几天,参与讨论者不多,但都经典!
结果这两天上不去了,听说是什么公安来了~
好多想说的话说不了了!

心里有好多话,不吐不快
就又跑到这边来灌水了

下面引用一段刘涛涛的话
扭曲变换加密
作者:刘涛涛 me@liutaotao.com网址:http://liutaotao.com/nqby.txt
一,一般来讲,加密就是加壳
我们经常考虑,一个可执行文件,怎么样加密才能安全呢?
一般用的手段,是加壳。加壳工具的工作原理,就是把可执行文件的代码与数据都进行加密变换,
作为数据存放。生成的目标文件入口代码是加壳软件准备好的防跟踪代码。经过漫长的防跟踪代码后,
会把原始可执行文件的代码与数据段恢复,然后跳转到原来的入口处,继续运行。这样做的缺点是,
不管你的加密多强,防跟踪代码多牛,只要一运行,在内存中就全部恢复了。只要把内存映象dump下来,
反汇编一下,就清清楚楚了。甚至有工具可以直接把dump下来的内存映象存为可执行文件。
这样加密就彻底失败了。
简单加壳是不安全的,这大家都知道了。我们一般把上述简单的加壳方式叫“压缩壳”。
所以现在的加壳软件都在上述“压缩壳”的基础上,多做了一些工作,比如:
* 防止内存被 dump 。这实际上是不可能做到的。因为Windows操作系统就不是一个安全系统,
你怎么可能做到内存不被dump呢?
曾有一个壳,我用了多种方法dump都不成功。但最后还是找到了一个方法成功dump了。我这才惊叹dump原来有这么多种方法,
真是防不胜防。
* 修改文件入口代码。
因为一般软件都是用常用的几种编译器编译生成的。如果加壳软件知道你是用什么编译器编的(这很容易),
把入口代码破坏掉,用另外一段功能类似的代码替换它。这样dump下来的代码就比较难找到正确的入口,
直接被存为一个EXE的可能性就小多了。但还是会被反汇编的。
* 还有一些加壳软件,
支持对一个或几个重点函数加密。甚至使用了虚拟机。但他们都只能重点加密少数几个函数,
不可能把所有函数都加密。而且对这个函数还有很多要求。这可以想象。如果用汇编写一个函数,
不加ret它可能连函数结束地址都找不到,怎么可能加密呢
******
尽管加壳软件可以使用以上多种技术防止被跟踪,分析,还原,但我认为,它们仍然没没摆脱“壳”
的这个中心思想。以上的这些技术不过是在“壳”的大前提下所做的一些小的插曲。它仍然是不安全的
二,扭曲编译的思想
做个比喻。加壳保护就好比是你桌上有宝贝,为了保护它,你在屋外围了一圈铁丝网。只要有人突破了
这道铁丝网,进入你的屋子,一眼就看到了桌上的宝贝。这当然不安全。
重点函数加密的思想,
就好比是,我屋外围了一圈铁丝网,我还把宝贝放进了保险箱里。如果有人突破了铁丝网,进入屋子,
一眼就看到了保险箱。虽然保险箱不会被轻易打开,但他如果把保险箱搬走,慢慢分析呢?这也不够安全。
最安全的,就是进了屋子,却什么也找不着。没有目标,这才是最让人头疼的。


加密
这东西难的
正如刘老所说
加壳不是最可靠,被dump是宿命
利用调试软件的漏洞抗调试,也并不是明智之举,即是采用抗调试加壳是加密提升强度的必然!
最安全的,就是进了屋子,却什么也找不着。没有目标,这才是最让人头疼的。


我们要做到的,是让我们的加密模块达到最高安全性!

CPU执行的最终是有效指令,抗调试会被跳过,壳会被dump,最后这一层将面对的是我们的加密模块!
我们的加密模块可靠度将是加密的唯一保证!

被完全源码分析,百分百的逆向,任何加密也是逃不过的!

真正高强度加密的最低要求就是让cracker百分百逆向!
忽略任何一个步骤,连爆破的机会都没有,那才叫强!

而这类加密体系有很多种,像老刘的扭曲,

还有
fonge's crackme10.4引入的部分概念已基本具备要求cracker百分百逆向整个加密模块,
而fonge's crackme10.4并不强,

10.4没有抗调试,没有我们想象中的BT加密步骤,源码实体部分不足200行,生成的关键代码反汇编也就900行左右

我得把他百分百逆向了,分析了,
也明白了,
环环相扣
没有百分百的逆向,是很难爆掉的

我有逆向的代码分析,在公司电脑上,也放在PET那边
然而上去不了,也没上班,

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
时间已经这么久了
主贴不知沉到那里去了

现在把源开了,

在了附件中,有keygen,直接dump下来的
也有源码txt
源码同时也会贴上来,逆向的代码连同分析,不久的将来,也会放在来,也不在另开贴了

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
打赏
分享
最新回复 (10)
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
fonge 5 2007-3-11 12:22
2
0
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    GroupBox4: TGroupBox;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure Panel1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Panel1Click(Sender: TObject);
begin
messageDlg('其实每个男孩,本来都是想做一个感情专一的好男人的。'+#13+#13+
'其实每个男孩,本来看女孩子都是看脸而不是胸部的。'+#13+#13+
'其实每个男孩,本来都是不会讲黄色笑话的。'+#13+#13+
'其实每个男孩,本来都是渴望爱一个人直到永远的。'+#13+#13+
'只是,没有任何女孩爱这样的男孩,'+#13+#13+
'她们觉得这样的男孩太幼稚,太古板,没有情趣。'+#13+#13+
'于是男孩开始改变,'+#13+#13+
'变成女孩喜欢的那种嘴角挂着坏坏的笑,玩世不恭或者幽默'+#13+#13+
'开始学会说甜言蜜语而不是心里想说的话开始学会假装关心,'+#13+#13+
'学会给女孩送小饰物讨好她 学会如何追求,如何把握爱情。'+#13+#13+
'或者看破红尘,游戏情场,成为女人恨恨的那种男人'+#13+#13+
'他们可以很容易俘获女孩子的心,'+#13+#13+
'但是他们也会在黑的夜里叼着烟流泪,'+#13+#13+
'心里有爱的时候,没有女孩。有了女孩,却永远没有了爱的感觉。'+#13+#13+
'在听到女人抱怨世上没有一个好男人时候,'+#13+#13+
'他们不会再去努力做个好男人,只是微笑着擦肩而过. '+#13+#13+
'承诺只不过是谎言的另一种表达方式.对不对。'+#13+#13+
'其实...每个男孩的转变都是因为女孩...'+#13+#13+
'所以当男孩变的时候...'+#13+#13+
'女孩应该承担一定的责任...',
mtInformation,[mbOK],0)

end;
procedure TForm1.FormCreate(Sender: TObject);
begin
    asm
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
  end;
  end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.text:='';
edit2.Text:='';
end;

procedure TForm1.button1Click(Sender: TObject);

var
i,i1,i2,i3,i4,j,m,m1,m2,m3,n1,n2,n3,d1,d2,d3,b,b0,b1,j1,j2,j3,b2,b3,ad0,ad1,ad2,ad3,ad4,ad,tr1,tr2,sum1,sum2:integer;
name,input,sn0,sn1,sn2,at,sh,ss,wr:string;
tt:TMsgDlgType;
label
cz1,cz0;

begin

b:=0;
b2:=0;
b3:=0;
ad:=0;
ad0:=0;
ad1:=0;
ad2:=0;
ad3:=0;
ad4:=0;
d1:=0;
d2:=0;
d3:=0;
m:=0;
tr1:=1;
tr2:=1;
name:=edit1.text;
input:=edit2.text;
at:='abcdefghijklmnopqrstuvwxyz';
tt:=mtError;                      ///初始化!
wr:=at[23]+at[18]+at[15]+at[14]+at[7];
if length(input)<5 then exit;
m:=m+1;
if length(name)<6 then goto cz1;
m:=m+1;
if length(name)>10 then goto cz1;         ///基础,要求注册码在长度5以上,用户名在6-10之间!
m:=m+1;
for i:=1 to length(name) do
begin
for j:=1 to length(name) do b:=b+ord(name[length(name)-i])*ord(name[j]) shr 6;
ad:=ad+b;
sn1:=sn1+inttostr(ad);                                       ///第一轮计算结果为sn1!
end;

for j1:=1 to length(sn1) do
begin
for j2:=1 to length(sn1) do b0:=b0+ord(sn1[length(sn1)-j1])*ord(sn1[j2]) shr 6;
ad0:=ad0+b0;
sn0:=sn0+inttostr(ad0);                                   ///第二轮运算结果为sn0!
end;

for n1:=1 to 16 do
begin
b1:=0;

if n1<5 then
begin
b1:=ord(sn1[n1]) xor ord(input[n1]);

end
else
begin                                          ///1-4(4)位顺序比较,成功才行!

if n1>8 then
begin                                ///9-16位顺序比较,成功才行!
b1:=ord(sn0[n1]) xor ord(input[n1]);
end
else
begin
b1:=ord(sn1[n1]) xor ord(input[n1]);                ///5-8(4)位顺序比较,但至少要不得失败1次!
end;

end;

try
begin
tr1:=length(input) div b1;

if n1>4 then
begin
if n1<9 then
begin
b3:=0;
sn2:='';
for i1:=5 to 8 do
begin
b3:=b3+ord(sn1[i1])*ord(sn1[13-i1]);                  ///在第二轮失败比较的时候用来计算下面要用到的结果sn2!
sn2:=sn2+inttostr(b3);
end;
ad2:=ad2+1;                    ///ad2在1-4之间!
end;
end;
end;

except
on eDivByZero do

ad1:=ad1+1;                                 ///ad1要在12-15之间才对,后面要用到!

end;

end;                                        ///第一个循环结束,参与运算的是sn1!

for j3:=1 to 11 do

begin
b2:=0;
if j3<5 then                                 ///注册码的第17-20位!
begin
if j3<3 then b2:=b2+(ord(sn1[16+j3]) xor ord(input[16+j3])) else b2:=b2+(ord(sn0[16+j3]) xor ord(input[16+j3]));

end
else

begin

if j3<9 then                                ///注册码的21-24位!
begin
if length(sn2)>4 then
begin
b2:=ord(sn2[j3-4]) xor ord(input[16+j3]);
ad3:=ad3+1;                             ///ad3>3才对!

end;
end
else
begin
b2:=ord(input[16+j3]) xor ord(sn0[10+j3]);            ///至少失败1次!
end;

end;

try
begin
tr1:=length(input) div b2;

if j3>8 then
begin
d1:=ord(input[25]) xor 34;
d2:=ord(input[26]) xor 59;
d3:=ord(input[27]) xor 62 ;
sh:=at[d1]+at[d2]+at[d3];
tt:=mtInformation;
end;

end;
except
on eDivByZero do
ad4:=ad4+1;                                             ///ad4须大于7
end;
end;

goto cz0;
asm
mov eax,eax
mov eax,eax                                             ///空间!
end;

cz0:
begin
wr:=sh
end;

cz1:
begin
if ad1<12 then
begin
wr:=at[23]+at[18]+at[15]+at[14]+at[7];
tt:=mtError;
end;
if ad1>16 then
begin
wr:=at[23]+at[18]+at[15]+at[14]+at[7];
tt:=mtError;
end;
if ad2<1 then
begin
wr:=at[23]+at[18]+at[15]+at[14]+at[7];
tt:=mtError;
end;
if ad2>4 then
begin
wr:=at[23]+at[18]+at[15]+at[14]+at[7];
tt:=mtError;
end;
if ad3<3 then
begin
wr:=at[23]+at[18]+at[15]+at[14]+at[7];
tt:=mtError;
end;
if ad4<8 then
begin
wr:=at[23]+at[18]+at[15]+at[14]+at[7];
tt:=mtError;
end;
if m<2 then
begin
wr:=at[19]+at[8]+at[15]+at[18]+at[20];
tt:=mtError;
end
else
begin
if m<3 then
begin
wr:=at[12]+at[15]+at[14]+at[7];
tt:=mtError;
end;
end;
if tr1>20 then wr:='~';
if tr2>20 then wr:='|';
messageDlg(wr,tt,[mbOK],0) ;
exit;
end;

end;
end.
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
两个月 2007-3-11 12:24
3
0
crack国外的一个软件,需要制作密码提取器,密码表方面的经验。提取器已经做出来了,就是密码表有点问题。你能做完,报酬是2000。联系我:65252803转载原
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
fonge 5 2007-3-11 12:32
4
0
procedure TForm1.FormCreate(Sender: TObject);
begin
    asm
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
mov eax,eax
  end;
  end;

goto cz0;
asm
mov eax,eax
mov eax,eax                                             ///空间!
end;


这两段有一定的意义,但在这个crackme中不是最主要的!
模块结构才是重心

模块结构的每一块都不是让人感觉到很复杂,但这一切加在一起来,
我无言了~。。。。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
除0异常
忽略了的话就飞走了

看到源码你会发现
没有cz1的那段,上面每一段分析都将是无效的
看着cz1的标志,才发现
上面的所有都必须百分百逆向才能找到想要的结果,

所以
这个crackme成功了
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2007-3-11 12:48
5
0
防静态分析:

花指令+VM+隐藏在暗处的自修改

防定位相关功能模块:

尽可能模拟更多的API+加密字符

防动态分析:

进入RING0,接管INT 0到INT 31。

使用多于4个DWORD去保存敏感数据,随机读取在任一DWORD读取。

自校验。

在检查到调试器时,让软件工作不稳定,而不是关闭或者拒绝工作。
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
fonge 5 2007-3-11 15:33
6
0
最初由 笨笨雄 发布
防静态分析:

花指令+VM+隐藏在暗处的自修改

防定位相关功能模块:

尽可能模拟更多的API+加密字符

防动态分析:

进入RING0,接管INT 0到INT 31。

使用多于4个DWORD去保存敏感数据,随机读取在任一DWORD读取。

自校验。

在检查到调试器时,让软件工作不稳定,而不是关闭或者拒绝工作。


谢谢~

附:
如果给你静态分析,给你动态追踪
不用自校验
不用检查调试器
让你定位

但是却要求你把数百K的代码完全分析
你干吗
为了一个软件,不值吧

防静态分析,防动态跟踪,自校验,检查调试器,防定位是必然的
加密模块的完整性也是相当关键的
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
fonge 5 2007-3-12 12:20
7
0
上班了,拿到代码了

现在放上来欣赏欣赏,

+++++++++++++++++++++++++ +++++++++++++++++++++++++ +++++++++++++++++++++++++
00455E88   .  50            push    eax
00455E89   .  A1 C45E4500   mov     eax, dword ptr [455EC4]
00455E8E   .  25 FF000000   and     eax, 0FF                   ;  测试点击按钮第一字节是否为CC
00455E93   .  3C CC         cmp     al, 0CC
00455E95   .  74 0A         je      short 00455EA1
00455E97   .  C705 5F644500>mov     dword ptr [45645F], 4
00455EA1   >  58            pop     eax
00455EA2   .  C3            retn

00455EA3      90            nop
00455EA4   .  53            push    ebx
00455EA5   .  8BD8          mov     ebx, eax
00455EA7   .  33D2          xor     edx, edx
00455EA9   .  8B83 04030000 mov     eax, dword ptr [ebx+304]
00455EAF   .  E8 C8EDFDFF   call    00434C7C
00455EB4   .  33D2          xor     edx, edx
00455EB6   .  8B83 08030000 mov     eax, dword ptr [ebx+308]
00455EBC   .  E8 BBEDFDFF   call    00434C7C
00455EC1   .  5B            pop     ebx
00455EC2   .  C3            retn
00455EC3      90            nop
00455EC4   .  558BECB9      dd      B9EC8B55
00455EC8      17            db      17
00455EC9      00            db      00
00455ECA      00            db      00
00455ECB      00            db      00
00455ECC   >  6A 00         push    0
00455ECE   .  6A 00         push    0
00455ED0   .  49            dec     ecx
00455ED1   .^ 75 F9         jnz     short 00455ECC
00455ED3   .  53            push    ebx
00455ED4   .  56            push    esi
00455ED5   .  57            push    edi
00455ED6   .  8955 FC       mov     dword ptr [ebp-4], edx
00455ED9   .  8BD8          mov     ebx, eax
00455EDB   .  33C0          xor     eax, eax
00455EDD   .  55            push    ebp
00455EDE   .  68 156D4500   push    00456D15
00455EE3   .  64:FF30       push    dword ptr fs:[eax]
00455EE6   .  64:8920       mov     dword ptr fs:[eax], esp    ;  一个巨大的try on,delphi结构!
00455EE9   .  33FF          xor     edi, edi
00455EEB   .  33C0          xor     eax, eax
00455EED   .  8945 B0       mov     dword ptr [ebp-50], eax
00455EF0   .  33C0          xor     eax, eax
00455EF2   .  8945 C4       mov     dword ptr [ebp-3C], eax
00455EF5   .  33C0          xor     eax, eax
00455EF7   .  8945 C0       mov     dword ptr [ebp-40], eax
00455EFA   .  33C0          xor     eax, eax
00455EFC   .  8945 BC       mov     dword ptr [ebp-44], eax
00455EFF   .  33C0          xor     eax, eax
00455F01   .  8945 B8       mov     dword ptr [ebp-48], eax
00455F04   .  33C0          xor     eax, eax
00455F06   .  8945 B4       mov     dword ptr [ebp-4C], eax
00455F09   .  33C0          xor     eax, eax
00455F0B   .  8945 E8       mov     dword ptr [ebp-18], eax
00455F0E   .  C745 AC 01000>mov     dword ptr [ebp-54], 1
00455F15   .  C745 A8 01000>mov     dword ptr [ebp-58], 1
00455F1C   .  8D55 9C       lea     edx, dword ptr [ebp-64]
00455F1F   .  8B83 04030000 mov     eax, dword ptr [ebx+304]
00455F25   .  E8 22EDFDFF   call    00434C4C
00455F2A   .  8D55 98       lea     edx, dword ptr [ebp-68]
00455F2D   .  8B83 08030000 mov     eax, dword ptr [ebx+308]
00455F33   .  E8 14EDFDFF   call    00434C4C
00455F38   .  8D45 88       lea     eax, dword ptr [ebp-78]
00455F3B   .  BA 2C6D4500   mov     edx, 00456D2C              ;  abcdefghijklmnopqrstuvwxyz
00455F40   .  E8 DBDFFAFF   call    00403F20
00455F45   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
00455F4C   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
00455F52   .  8B55 88       mov     edx, dword ptr [ebp-78]    ;  edx=字串'a-z'
00455F55   .  8A52 16       mov     dl, byte ptr [edx+16]      ;  指向第16h个字符'w'
00455F58   .  8850 01       mov     byte ptr [eax+1], dl
00455F5B   .  C600 01       mov     byte ptr [eax], 1
00455F5E   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
00455F64   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
00455F6A   .  E8 C9CAFAFF   call    00402A38                   ;  计数器+1
00455F6F   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00455F75   .  8B55 88       mov     edx, dword ptr [ebp-78]    ;  edx=字串'a-z'
00455F78   .  8A52 11       mov     dl, byte ptr [edx+11]      ;  指向第11h个字符'r'
00455F7B   .  8850 01       mov     byte ptr [eax+1], dl
00455F7E   .  C600 01       mov     byte ptr [eax], 1
00455F81   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00455F87   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
00455F8D   .  B1 02         mov     cl, 2
00455F8F   .  E8 74CAFAFF   call    00402A08                   ;  这个call步过,可以看到这是call的结果,是用来拼加的!
00455F94   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]    ;  edx='wr',拼加出来的结果!
00455F9A   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00455FA0   .  E8 93CAFAFF   call    00402A38                   ;  计数器+1
00455FA5   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00455FAB   .  8B55 88       mov     edx, dword ptr [ebp-78]
00455FAE   .  8A52 0E       mov     dl, byte ptr [edx+E]       ;  指向第Eh位字符‘o’
00455FB1   .  8850 01       mov     byte ptr [eax+1], dl
00455FB4   .  C600 01       mov     byte ptr [eax], 1
00455FB7   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00455FBD   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00455FC3   .  B1 03         mov     cl, 3
00455FC5   .  E8 3ECAFAFF   call    00402A08                   ;  加成‘wro’
00455FCA   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00455FD0   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00455FD6   .  E8 5DCAFAFF   call    00402A38
00455FDB   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00455FE1   .  8B55 88       mov     edx, dword ptr [ebp-78]
00455FE4   .  8A52 0D       mov     dl, byte ptr [edx+D]
00455FE7   .  8850 01       mov     byte ptr [eax+1], dl
00455FEA   .  C600 01       mov     byte ptr [eax], 1
00455FED   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00455FF3   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00455FF9   .  B1 04         mov     cl, 4
00455FFB   .  E8 08CAFAFF   call    00402A08
00456000   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
00456006   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
0045600C   .  E8 27CAFAFF   call    00402A38
00456011   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456017   .  8B55 88       mov     edx, dword ptr [ebp-78]
0045601A   .  8A52 06       mov     dl, byte ptr [edx+6]
0045601D   .  8850 01       mov     byte ptr [eax+1], dl
00456020   .  C600 01       mov     byte ptr [eax], 1
00456023   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456029   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
0045602F   .  B1 05         mov     cl, 5
00456031   .  E8 D2C9FAFF   call    00402A08                   ;  一直就这样加到了这里,结果出来了'wrong'字符串!
00456036   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]    ;  (initial cpu selection)
0045603C   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456042   .  E8 A5E0FAFF   call    004040EC
00456047   .  8B45 98       mov     eax, dword ptr [ebp-68]    ;  指向输入的试炼码
0045604A   .  E8 F9E0FAFF   call    00404148                   ;  获取长度
0045604F   .  83F8 05       cmp     eax, 5
00456052   .  0F8C 8F0C0000 jl      00456CE7                   ;  小于就跳走!
00456058   .  FF45 E8       inc     dword ptr [ebp-18]
0045605B   .  8B45 9C       mov     eax, dword ptr [ebp-64]    ;  指向用户名
0045605E   .  E8 E5E0FAFF   call    00404148                   ;  这个call上面见过,获取长度的
00456063   .  83F8 06       cmp     eax, 6                     ;  十进制6
00456066   .  0F8C 06040000 jl      00456472                   ;  小于就跳走!////觉得这一段代码比较怪,如果是我就会用
0045606C   .  FF45 E8       inc     dword ptr [ebp-18]         ;             //// cmp eax,6
0045606F   .  8B45 9C       mov     eax, dword ptr [ebp-64]    ;  指向用户名 //// jl 00456472
00456072   .  E8 D1E0FAFF   call    00404148                   ;  获取长度   //// cmp eax,0a
00456077   .  83F8 0A       cmp     eax, 0A                    ;  十进制10   //// jg 00456472
0045607A   .  0F8F F2030000 jg      00456472                   ;  大于就跳走!看得出来,这个456472不是一个好地方。
00456080   .  FF45 E8       inc     dword ptr [ebp-18]         ;  这一个值上面加过一次,这又加了一次!
00456083   .  8B45 9C       mov     eax, dword ptr [ebp-64]
00456086   .  E8 BDE0FAFF   call    00404148                   ;  又看到获取长度的call,难怪很多人不愿意解这玩意!
0045608B   .  85C0          test    eax, eax
0045608D   .  7E 70         jle     short 004560FF
0045608F   .  8985 74FFFFFF mov     dword ptr [ebp-8C], eax
00456095   .  C745 F8 01000>mov     dword ptr [ebp-8], 1
0045609C   >  8B45 9C       mov     eax, dword ptr [ebp-64]
0045609F   .  E8 A4E0FAFF   call    00404148                   ;  又是获取长度!
004560A4   .  8BD8          mov     ebx, eax
004560A6   .  85DB          test    ebx, ebx
004560A8   .  7E 2B         jle     short 004560D5
004560AA   .  BE 01000000   mov     esi, 1                     ;  这个是ESI归1用的
004560AF   >  8B45 9C       mov     eax, dword ptr [ebp-64]    ;  变化的赋值给eax,参与小循环的运算!
004560B2   .  E8 91E0FAFF   call    00404148                   ;  又是获取长度,参与计算!一个小循环!
004560B7   .  2B45 F8       sub     eax, dword ptr [ebp-8]     ;  这也是个计算器,看45609c,还有4560f4
004560BA   .  8B55 9C       mov     edx, dword ptr [ebp-64]
004560BD   .  0FB64402 FF   movzx   eax, byte ptr [edx+eax-1]  ;  跟据外围的EAX变化,加上在这里看到的结果,得出这里是倒序取用户名ASCII值
004560C2   .  8B55 9C       mov     edx, dword ptr [ebp-64]    ;  这个位置可以看得到出是取用户名单位的ASCII码值
004560C5   .  0FB65432 FF   movzx   edx, byte ptr [edx+esi-1]
004560CA   .  F7EA          imul    edx                        ;  eax*edx,在这个小循环中乘算EAX值不变!
004560CC   .  C1E8 06       shr     eax, 6                     ;  eax右移6位
004560CF   .  03F8          add     edi, eax                   ;  EDI在这里等他们运算,算出来之后在这里累加就可以了
004560D1   .  46            inc     esi                        ;  计数!累加
004560D2   .  4B            dec     ebx                        ;  计算用累减
004560D3   .^ 75 DA         jnz     short 004560AF             ;  得出在这个小循环中,以最终由edi累加结果,由一个不变的eax值顺序与用户名中每一位ASCII值计算!
004560D5   >  017D B0       add     dword ptr [ebp-50], edi    ;  EDI的值加给[ebp-50]了,[ebp-50]在这里又充当累加王!
004560D8   .  8D95 50FFFFFF lea     edx, dword ptr [ebp-B0]
004560DE   .  8B45 B0       mov     eax, dword ptr [ebp-50]
004560E1   .  E8 461CFBFF   call    00407D2C                   ;  看返回值,得知是十六进制转十进制
004560E6   .  8B95 50FFFFFF mov     edx, dword ptr [ebp-B0]
004560EC   .  8D45 90       lea     eax, dword ptr [ebp-70]
004560EF   .  E8 5CE0FAFF   call    00404150                   ;  把所得结果顺次平行存贮起来了
004560F4   .  FF45 F8       inc     dword ptr [ebp-8]          ;  计数器,总算明白他是计数器了!累加
004560F7   .  FF8D 74FFFFFF dec     dword ptr [ebp-8C]         ;  累减
004560FD   .^ 75 9D         jnz     short 0045609C             ;  大循环体!
004560FF   >  8B45 90       mov     eax, dword ptr [ebp-70]    ;  [ebp-70]存贮的是这一轮计算的最终结果!
00456102   .  E8 41E0FAFF   call    00404148                   ;  获取长度
00456107   .  85C0          test    eax, eax
00456109   .  7E 6F         jle     short 0045617A
0045610B   .  8985 74FFFFFF mov     dword ptr [ebp-8C], eax
00456111   .  BF 01000000   mov     edi, 1
00456116   >  8B45 90       mov     eax, dword ptr [ebp-70]    ;  下面这一段跟上面一样,除了参与运算的数据!这里可以看到一个刚才上面算出的结果!
00456119   .  E8 2AE0FAFF   call    00404148                   ;  获取长度
0045611E   .  8BD8          mov     ebx, eax
00456120   .  85DB          test    ebx, ebx
00456122   .  7E 2B         jle     short 0045614F             ;  跳出循环!
00456124   .  BE 01000000   mov     esi, 1
00456129   >  8B45 90       mov     eax, dword ptr [ebp-70]
0045612C   .  E8 17E0FAFF   call    00404148                   ;  获取长度
00456131   .  2BC7          sub     eax, edi
00456133   .  8B55 90       mov     edx, dword ptr [ebp-70]
00456136   .  0FB64402 FF   movzx   eax, byte ptr [edx+eax-1]
0045613B   .  8B55 90       mov     edx, dword ptr [ebp-70]
0045613E   .  0FB65432 FF   movzx   edx, byte ptr [edx+esi-1]
00456143   .  F7EA          imul    edx
00456145   .  C1E8 06       shr     eax, 6
00456148   .  0145 CC       add     dword ptr [ebp-34], eax
0045614B   .  46            inc     esi
0045614C   .  4B            dec     ebx
0045614D   .^ 75 DA         jnz     short 00456129             ;  向上面那个小循环一样的东东!
0045614F   >  8B45 CC       mov     eax, dword ptr [ebp-34]
00456152   .  0145 C4       add     dword ptr [ebp-3C], eax
00456155   .  8D95 4CFFFFFF lea     edx, dword ptr [ebp-B4]
0045615B   .  8B45 C4       mov     eax, dword ptr [ebp-3C]
0045615E   .  E8 C91BFBFF   call    00407D2C                   ;  十六进制转十进制
00456163   .  8B95 4CFFFFFF mov     edx, dword ptr [ebp-B4]
00456169   .  8D45 94       lea     eax, dword ptr [ebp-6C]    ;  [ebp-6c]存放计算值的!
0045616C   .  E8 DFDFFAFF   call    00404150                   ;  跟上面一样的call,一样的结构!
00456171   .  47            inc     edi
00456172   .  FF8D 74FFFFFF dec     dword ptr [ebp-8C]
00456178   .^ 75 9C         jnz     short 00456116             ;  跟上面大循环一样!
0045617A   >  C745 D8 01000>mov     dword ptr [ebp-28], 1
00456181   >  837D D8 05    cmp     dword ptr [ebp-28], 5      ;  这个[ebp-28]看得出来是个变量,所以一直要注意他的变化!
00456185   .  7D 1E         jge     short 004561A5             ;  是否大于5,就跳!
00456187   .  8B45 90       mov     eax, dword ptr [ebp-70]
0045618A   .  8B55 D8       mov     edx, dword ptr [ebp-28]    ;  edx=[ebp-28]变量
0045618D   .  8A5C10 FF     mov     bl, byte ptr [eax+edx-1]   ;  取第一轮计算的结果[ebp-70],对应[ebp-28]变量位的ASCII
00456191   .  8B45 98       mov     eax, dword ptr [ebp-68]    ;  输入注册码[ebp-68]
00456194   .  8B55 D8       mov     edx, dword ptr [ebp-28]
00456197   .  8A4410 FF     mov     al, byte ptr [eax+edx-1]   ;  输入的注册码对于[ebp-28]位ASCII
0045619B   .  32D8          xor     bl, al                     ;  两个值异或
0045619D   .  81E3 FF000000 and     ebx, 0FF                   ;  EBX=bl吧!
004561A3   .  EB 40         jmp     short 004561E5             ;  这是第一个比较神奇的跳转,下面也有
004561A5   >  837D D8 08    cmp     dword ptr [ebp-28], 8      ;  [ebp-28]变量
004561A9   .  7E 1E         jle     short 004561C9             ;  小于8,就跳!
004561AB   .  8B45 94       mov     eax, dword ptr [ebp-6C]    ;  [ebp-6c]指向第二轮大循环计算出来的结果!
004561AE   .  8B55 D8       mov     edx, dword ptr [ebp-28]
004561B1   .  8A5C10 FF     mov     bl, byte ptr [eax+edx-1]   ;  第二轮计算的结果的[ebp-28]位!
004561B5   .  8B45 98       mov     eax, dword ptr [ebp-68]
004561B8   .  8B55 D8       mov     edx, dword ptr [ebp-28]
004561BB   .  8A4410 FF     mov     al, byte ptr [eax+edx-1]   ;  注册码指向的相应位!
004561BF   .  32D8          xor     bl, al
004561C1   .  81E3 FF000000 and     ebx, 0FF                   ;  ebx=两个ascii值异或值
004561C7   .  EB 1C         jmp     short 004561E5             ;  这是第二个
004561C9   >  8B45 90       mov     eax, dword ptr [ebp-70]    ;  到这里大于8小于5的前面已经处理了,剩下的就留到这里来处理了。
004561CC   .  8B55 D8       mov     edx, dword ptr [ebp-28]
004561CF   .  8A5C10 FF     mov     bl, byte ptr [eax+edx-1]   ;  这几行跟上面的那几个跳转以前的代码一样,这一轮是取[ebp-70]值,
004561D3   .  8B45 98       mov     eax, dword ptr [ebp-68]
004561D6   .  8B55 D8       mov     edx, dword ptr [ebp-28]
004561D9   .  8A4410 FF     mov     al, byte ptr [eax+edx-1]
004561DD   .  32D8          xor     bl, al
004561DF   .  81E3 FF000000 and     ebx, 0FF                   ;  ebx=两个ascii值异或值

004561E5   >  33C0          xor     eax, eax                   ;  很多跳跳到这里,说明这里比较奇特!
004561E7   .  55            push    ebp
004561E8   .  68 65624500   push    00456265                   ;  跟try的话注意这个!先在00456265处下断!不然走到系统里想找出口就难了!
004561ED   .  64:FF30       push    dword ptr fs:[eax]
004561F0   .  64:8920       mov     dword ptr fs:[eax], esp    ;  try 结构体!
004561F3   .  8B45 98       mov     eax, dword ptr [ebp-68]
004561F6   .  E8 4DDFFAFF   call    00404148                   ;  获取长度,
004561FB   .  99            cdq
004561FC   .  F7FB          idiv    ebx                        ;  eax/ebx,而这个ebx是上面计算值与注册码相应位xor的结果,
004561FE   .  8945 AC       mov     dword ptr [ebp-54], eax    ;  这里出了个[ebp-54]值,[ebp-54]存EAX,表示idiv ebx是有效的!后来知道是诱导异常发生
00456201   .  837D D8 04    cmp     dword ptr [ebp-28], 4      ;  小于等于4返回去继续循环!
00456205   .  7E 54         jle     short 0045625B
00456207   .  837D D8 09    cmp     dword ptr [ebp-28], 9      ;  大于等于9返回去继续循环!
0045620B   .  7D 4E         jge     short 0045625B
0045620D   .  33F6          xor     esi, esi                   ;  esi清0
0045620F   .  8D45 8C       lea     eax, dword ptr [ebp-74]
00456212   .  E8 71DCFAFF   call    00403E88                   ;  跟进去就知道是[ebp-74]清空,代码不长,都看得懂的,第一行就是指向EAX的地址,而EAX地址指向[ebp-74]
00456217   .  BB 05000000   mov     ebx, 5                     ;  初始化EBX,
0045621C   >  8B45 90       mov     eax, dword ptr [ebp-70]
0045621F   .  0FB64418 FF   movzx   eax, byte ptr [eax+ebx-1]  ;  指向[ebp-70]的ebx位的ascii
00456224   .  BA 0D000000   mov     edx, 0D
00456229   .  2BD3          sub     edx, ebx                   ;  0Dh-ebx,存到edx里去
0045622B   .  8B4D 90       mov     ecx, dword ptr [ebp-70]
0045622E   .  0FB65411 FF   movzx   edx, byte ptr [ecx+edx-1]  ;  指向[ebp-70]的edx位的ascii
00456233   .  F7EA          imul    edx                        ;  上面取的两个结果相乘
00456235   .  03F0          add     esi, eax                   ;  累加结果到esi
00456237   .  8D95 48FFFFFF lea     edx, dword ptr [ebp-B8]    ;  数字值这样就变成了字串罗
0045623D   .  8BC6          mov     eax, esi
0045623F   .  E8 E81AFBFF   call    00407D2C                   ;  十六进制转十进制
00456244   .  8B95 48FFFFFF mov     edx, dword ptr [ebp-B8]
0045624A   .  8D45 8C       lea     eax, dword ptr [ebp-74]
0045624D   .  E8 FEDEFAFF   call    00404150                   ;  见过的call,把所得结果顺次平行存贮在[ebp-74]
00456252   .  43            inc     ebx                        ;  ebx计数器累加!
00456253   .  83FB 09       cmp     ebx, 9                     ;  小于9就可以跳回去循环!
00456256   .^ 75 C4         jnz     short 0045621C
00456258   .  FF45 BC       inc     dword ptr [ebp-44]         ;  [ebp-44]计数器,累加
0045625B   >  33C0          xor     eax, eax
0045625D   .  5A            pop     edx
0045625E   .  59            pop     ecx
0045625F   .  59            pop     ecx
00456260   .  64:8910       mov     dword ptr fs:[eax], edx
00456263   .  EB 19         jmp     short 0045627E
00456265   .^ E9 9AD4FAFF   jmp     00403704                   ;  这就是跟try时要下的断,从这里往后面单步走!
0045626A      01            db      01                         ;  我可以直接说就是这个地址+0Dh,不信你就跟!你就会发现,其实就是那个push之后,弹到ecx里,后又把ecx+9值弹到ebx,最后JMP[ebx+4]
0045626B      00            db      00
0045626C      00            db      00
0045626D      00            db      00
0045626E   .  04704000      dd      fonge's_.00407004
00456272   .  76624500      dd      fonge's_.00456276
00456276   .  FF45 C0       inc     dword ptr [ebp-40]         ;  发生除0异常时[ebp-40]累加1
00456279   .  E8 C2D6FAFF   call    00403940                   ;  步过他,try内调用结构之一,在这里不研究他!
0045627E   >  FF45 D8       inc     dword ptr [ebp-28]         ;  [ebp-28]在这里也在累加!
00456281   .  837D D8 11    cmp     dword ptr [ebp-28], 11     ;  小于11h都跳回去循环,一个超大的循环,带try的
00456285   .^ 0F85 F6FEFFFF jnz     00456181
0045628B   .  C745 C8 01000>mov     dword ptr [ebp-38], 1      ;  看得出来,[ebp-38]是个重要的变量
00456292   >  33DB          xor     ebx, ebx                   ;  ebx清0
00456294   .  837D C8 05    cmp     dword ptr [ebp-38], 5      ;  大于或等于5跳走
00456298   .  7D 50         jge     short 004562EA
0045629A   .  837D C8 03    cmp     dword ptr [ebp-38], 3      ;  大于等于3跳走
0045629E   .  7D 25         jge     short 004562C5
004562A0   .  8B45 C8       mov     eax, dword ptr [ebp-38]    ;  变量入eax
004562A3   .  83C0 10       add     eax, 10                    ;  +10h
004562A6   .  8B55 90       mov     edx, dword ptr [ebp-70]    ;  [ebp-70]入edx!
004562A9   .  8A4402 FF     mov     al, byte ptr [edx+eax-1]   ;  al指向[ebp-70]的eax位,这里的eax正是变量[ebp-38]+10h
004562AD   .  8B55 C8       mov     edx, dword ptr [ebp-38]
004562B0   .  83C2 10       add     edx, 10                    ;  跟上面一模一样
004562B3   .  8B4D 98       mov     ecx, dword ptr [ebp-68]    ;  指向[ebp-68],输入的注册码
004562B6   .  8A5411 FF     mov     dl, byte ptr [ecx+edx-1]
004562BA   .  32C2          xor     al, dl                     ;  两个值异或
004562BC   .  25 FF000000   and     eax, 0FF                   ;  eax=al
004562C1   .  03D8          add     ebx, eax                   ;  ebx累加,上面清0,这里累加,无聊!
004562C3   .  EB 7E         jmp     short 00456343             ;  跳向一个地方
004562C5   >  8B45 C8       mov     eax, dword ptr [ebp-38]    ;  [ebp-38]大于等于3时走到这里
004562C8   .  83C0 10       add     eax, 10
004562CB   .  8B55 94       mov     edx, dword ptr [ebp-6C]    ;  [ebp-6c]指向第二轮大循环结果,不用多说了
004562CE   .  8A4402 FF     mov     al, byte ptr [edx+eax-1]   ;  [ebp-6c]的eax位,eax=[ebp-38]
004562D2   .  8B55 C8       mov     edx, dword ptr [ebp-38]
004562D5   .  83C2 10       add     edx, 10
004562D8   .  8B4D 98       mov     ecx, dword ptr [ebp-68]    ;  指向输入码
004562DB   .  8A5411 FF     mov     dl, byte ptr [ecx+edx-1]   ;  这些我真的不想再说了,上面太多了!
004562DF   .  32C2          xor     al, dl
004562E1   .  25 FF000000   and     eax, 0FF                   ;  eax=al
004562E6   .  03D8          add     ebx, eax
004562E8   .  EB 59         jmp     short 00456343             ;  跟上面一样跳向同一个地方
004562EA   >  837D C8 09    cmp     dword ptr [ebp-38], 9      ;  大于等5再大于等于9就再跳走
004562EE   .  7D 31         jge     short 00456321             ;  等同于5-8之间的运算!
004562F0   .  8B45 8C       mov     eax, dword ptr [ebp-74]    ;  [ebp-74]参看第45624A处的结果
004562F3   .  E8 50DEFAFF   call    00404148                   ;  获取长度
004562F8   .  83F8 04       cmp     eax, 4
004562FB   .  7E 46         jle     short 00456343             ;  小于等于4就跳
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
fonge 5 2007-3-12 12:22
8
0
他说我的代码太长了,所以成两段,接上屏。。。。

004562FD   .  8B45 8C       mov     eax, dword ptr [ebp-74]
00456300   .  8B55 C8       mov     edx, dword ptr [ebp-38]    ;  指向一个变量
00456303   .  8A5C10 FB     mov     bl, byte ptr [eax+edx-5]   ;  这里edx-5又是变量了,所以这里指向[ebp-74]的相应位
00456307   .  8B45 C8       mov     eax, dword ptr [ebp-38]    ;  bl指向[ebp-38]的edx-5位
0045630A   .  83C0 10       add     eax, 10
0045630D   .  8B55 98       mov     edx, dword ptr [ebp-68]
00456310   .  8A4402 FF     mov     al, byte ptr [edx+eax-1]   ;  这几段不再解释了,前面太多相同结构的了
00456314   .  32D8          xor     bl, al
00456316   .  81E3 FF000000 and     ebx, 0FF
0045631C   .  FF45 B8       inc     dword ptr [ebp-48]         ;  一个变量[ebp-48]在这里相加,值得注意
0045631F   .  EB 22         jmp     short 00456343             ;  第三次跳向同一个地方!
00456321   >  8B45 C8       mov     eax, dword ptr [ebp-38]    ;  大于等于9以上的在这里处理
00456324   .  83C0 10       add     eax, 10
00456327   .  8B55 98       mov     edx, dword ptr [ebp-68]
0045632A   .  8A5C02 FF     mov     bl, byte ptr [edx+eax-1]   ;  这几句就不再解释了吧
0045632E   .  8B45 C8       mov     eax, dword ptr [ebp-38]    ;  太多了
00456331   .  83C0 0A       add     eax, 0A
00456334   .  8B55 94       mov     edx, dword ptr [ebp-6C]
00456337   .  8A4402 FF     mov     al, byte ptr [edx+eax-1]
0045633B   .  32D8          xor     bl, al
0045633D   .  81E3 FF000000 and     ebx, 0FF                   ;  ebx=bl
00456343   >  33C0          xor     eax, eax                   ;  eax清0
00456345   .  55            push    ebp
00456346   .  68 38644500   push    00456438                   ;  try开始了,跟try注意这个值,不跟try也要注意,因为这个值+Dh指向异常处理的地方
0045634B   .  64:FF30       push    dword ptr fs:[eax]
0045634E   .  64:8920       mov     dword ptr fs:[eax], esp
00456351   .  8B45 98       mov     eax, dword ptr [ebp-68]
00456354   .  E8 EFDDFAFF   call    00404148                   ;  [ebp-68]的长度从这里出
00456359   .  99            cdq
0045635A   .  F7FB          idiv    ebx                        ;  又来除以上面所以循环中的ebx值
0045635C   .  8945 AC       mov     dword ptr [ebp-54], eax    ;  [ebp-54]存EAX,表示idiv ebx是有效的!
0045635F   .  837D C8 08    cmp     dword ptr [ebp-38], 8      ;  小于等于8就跳走
00456363   .  0F8E C5000000 jle     0045642E
00456369   .  8B45 98       mov     eax, dword ptr [ebp-68]
0045636C   .  8A58 18       mov     bl, byte ptr [eax+18]      ;  指向[ebp-38]输入码第18h位
0045636F   .  80F3 22       xor     bl, 22
00456372   .  81E3 FF000000 and     ebx, 0FF                   ;  ebx=bl xor 22h
00456378   .  8B45 98       mov     eax, dword ptr [ebp-68]
0045637B   .  8A40 19       mov     al, byte ptr [eax+19]      ;  第19h位
0045637E   .  34 3B         xor     al, 3B
00456380   .  8BF0          mov     esi, eax
00456382   .  81E6 FF000000 and     esi, 0FF                   ;  esi=al xor 3bh
00456388   .  8B45 98       mov     eax, dword ptr [ebp-68]    ;  第1ah位
0045638B   .  8A40 1A       mov     al, byte ptr [eax+1A]
0045638E   .  34 3E         xor     al, 3E
00456390   .  8BF8          mov     edi, eax
00456392   .  81E7 FF000000 and     edi, 0FF                   ;  edi=al xor 3eh
00456398   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]    ;  [ebp-90]返回是一个地址
0045639E   .  8B55 88       mov     edx, dword ptr [ebp-78]    ;  [ebp-78]指向字符串‘a-z’
004563A1   .  8A541A FF     mov     dl, byte ptr [edx+ebx-1]   ;  ebx指向456372的值
004563A5   .  8850 01       mov     byte ptr [eax+1], dl       ;  相应位放入[eax+1]
004563A8   .  C600 01       mov     byte ptr [eax], 1          ;  置1
004563AB   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
004563B1   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004563B7   .  E8 7CC6FAFF   call    00402A38                   ;  是用来拼加ASCII的,前面见识过了!
004563BC   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004563C2   .  8B55 88       mov     edx, dword ptr [ebp-78]    ;  查堆栈可知是什么,不用说了
004563C5   .  8A5432 FF     mov     dl, byte ptr [edx+esi-1]
004563C9   .  8850 01       mov     byte ptr [eax+1], dl
004563CC   .  C600 01       mov     byte ptr [eax], 1
004563CF   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004563D5   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004563DB   .  B1 02         mov     cl, 2
004563DD   .  E8 26C6FAFF   call    00402A08                   ;  拼加
004563E2   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
004563E8   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
004563EE   .  E8 45C6FAFF   call    00402A38
004563F3   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]    ;  看到2A38和2A08就知道是取码用的
004563F9   .  8B55 88       mov     edx, dword ptr [ebp-78]
004563FC   .  8A543A FF     mov     dl, byte ptr [edx+edi-1]
00456400   .  8850 01       mov     byte ptr [eax+1], dl
00456403   .  C600 01       mov     byte ptr [eax], 1
00456406   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
0045640C   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456412   .  B1 03         mov     cl, 3
00456414   .  E8 EFC5FAFF   call    00402A08                   ;  拼加
00456419   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]    ;  [ebp-9c]为最终上面结果
0045641F   .  8D45 84       lea     eax, dword ptr [ebp-7C]
00456422   .  E8 C5DCFAFF   call    004040EC                   ;  4040EC上面也有,总结拼加用的
00456427   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 2       ;  [ebp-85]置2,
0045642E   >  33C0          xor     eax, eax
00456430   .  5A            pop     edx
00456431   .  59            pop     ecx
00456432   .  59            pop     ecx
00456433   .  64:8910       mov     dword ptr fs:[eax], edx
00456436   .  EB 19         jmp     short 00456451
00456438   .^ E9 C7D2FAFF   jmp     00403704
0045643D      01            db      01
0045643E      00            db      00
0045643F      00            db      00
00456440      00            db      00
00456441   .  04704000      dd      fonge's_.00407004
00456445   .  49644500      dd      fonge's_.00456449
00456449   .  FF45 B4       inc     dword ptr [ebp-4C]         ;  这里是发生异常的处理,记住这个[EBp-4c]
0045644C   .  E8 EFD4FAFF   call    00403940
00456451   >  FF45 C8       inc     dword ptr [ebp-38]         ;  循环用的计数器
00456454   .  837D C8 0C    cmp     dword ptr [ebp-38], 0C     ;  比较值
00456458   .^ 0F85 34FEFFFF jnz     00456292
0045645E   .  EB 12         jmp     short 00456472             ;  一个跳转,跟创建文件时有关!
00456460      00            db      00
00456461      00            db      00
00456462      00            db      00
00456463      00            db      00
00456464   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
0045646A   .  8B55 84       mov     edx, dword ptr [ebp-7C]
0045646D   .  E8 AEDAFAFF   call    00403F20                   ;  让[ebp-84]处等于[ebp-7c]处的值
00456472   >  837D C0 0C    cmp     dword ptr [ebp-40], 0C     ;  开始比较了,[EBP-40]
00456476   .  0F8D 02010000 jge     0045657E
0045647C   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]    ;  跟上面454F4X一样,分析过的,是拼出来一个wrong
00456482   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456485   .  8A52 16       mov     dl, byte ptr [edx+16]
00456488   .  8850 01       mov     byte ptr [eax+1], dl
0045648B   .  C600 01       mov     byte ptr [eax], 1
0045648E   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
00456494   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
0045649A   .  E8 99C5FAFF   call    00402A38
0045649F   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004564A5   .  8B55 88       mov     edx, dword ptr [ebp-78]
004564A8   .  8A52 11       mov     dl, byte ptr [edx+11]
004564AB   .  8850 01       mov     byte ptr [eax+1], dl
004564AE   .  C600 01       mov     byte ptr [eax], 1
004564B1   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004564B7   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004564BD   .  B1 02         mov     cl, 2
004564BF   .  E8 44C5FAFF   call    00402A08
004564C4   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
004564CA   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
004564D0   .  E8 63C5FAFF   call    00402A38
004564D5   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004564DB   .  8B55 88       mov     edx, dword ptr [ebp-78]
004564DE   .  8A52 0E       mov     dl, byte ptr [edx+E]
004564E1   .  8850 01       mov     byte ptr [eax+1], dl
004564E4   .  C600 01       mov     byte ptr [eax], 1
004564E7   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004564ED   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
004564F3   .  B1 03         mov     cl, 3
004564F5   .  E8 0EC5FAFF   call    00402A08
004564FA   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00456500   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456506   .  E8 2DC5FAFF   call    00402A38
0045650B   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456511   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456514   .  8A52 0D       mov     dl, byte ptr [edx+D]
00456517   .  8850 01       mov     byte ptr [eax+1], dl
0045651A   .  C600 01       mov     byte ptr [eax], 1
0045651D   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456523   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456529   .  B1 04         mov     cl, 4
0045652B   .  E8 D8C4FAFF   call    00402A08
00456530   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
00456536   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
0045653C   .  E8 F7C4FAFF   call    00402A38
00456541   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456547   .  8B55 88       mov     edx, dword ptr [ebp-78]
0045654A   .  8A52 06       mov     dl, byte ptr [edx+6]
0045654D   .  8850 01       mov     byte ptr [eax+1], dl
00456550   .  C600 01       mov     byte ptr [eax], 1
00456553   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456559   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
0045655F   .  B1 05         mov     cl, 5
00456561   .  E8 A2C4FAFF   call    00402A08
00456566   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
0045656C   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456572   .  E8 75DBFAFF   call    004040EC                   ;  到这里,下面也很多
00456577   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1       ;  [ebp-85]置1,注意
0045657E   >  837D C0 10    cmp     dword ptr [ebp-40], 10     ;  还是比较[EBP-40]
00456582   .  0F8E 02010000 jle     0045668A
00456588   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
0045658E   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456591   .  8A52 16       mov     dl, byte ptr [edx+16]
00456594   .  8850 01       mov     byte ptr [eax+1], dl
00456597   .  C600 01       mov     byte ptr [eax], 1
0045659A   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
004565A0   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004565A6   .  E8 8DC4FAFF   call    00402A38
004565AB   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004565B1   .  8B55 88       mov     edx, dword ptr [ebp-78]
004565B4   .  8A52 11       mov     dl, byte ptr [edx+11]
004565B7   .  8850 01       mov     byte ptr [eax+1], dl
004565BA   .  C600 01       mov     byte ptr [eax], 1
004565BD   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004565C3   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004565C9   .  B1 02         mov     cl, 2
004565CB   .  E8 38C4FAFF   call    00402A08
004565D0   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
004565D6   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
004565DC   .  E8 57C4FAFF   call    00402A38
004565E1   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004565E7   .  8B55 88       mov     edx, dword ptr [ebp-78]
004565EA   .  8A52 0E       mov     dl, byte ptr [edx+E]
004565ED   .  8850 01       mov     byte ptr [eax+1], dl
004565F0   .  C600 01       mov     byte ptr [eax], 1
004565F3   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004565F9   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
004565FF   .  B1 03         mov     cl, 3
00456601   .  E8 02C4FAFF   call    00402A08
00456606   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
0045660C   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456612   .  E8 21C4FAFF   call    00402A38
00456617   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
0045661D   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456620   .  8A52 0D       mov     dl, byte ptr [edx+D]
00456623   .  8850 01       mov     byte ptr [eax+1], dl
00456626   .  C600 01       mov     byte ptr [eax], 1
00456629   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
0045662F   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456635   .  B1 04         mov     cl, 4
00456637   .  E8 CCC3FAFF   call    00402A08
0045663C   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
00456642   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456648   .  E8 EBC3FAFF   call    00402A38
0045664D   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456653   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456656   .  8A52 06       mov     dl, byte ptr [edx+6]
00456659   .  8850 01       mov     byte ptr [eax+1], dl
0045665C   .  C600 01       mov     byte ptr [eax], 1
0045665F   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]    ;  代码跟上面一段一样
00456665   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
0045666B   .  B1 05         mov     cl, 5
0045666D   .  E8 96C3FAFF   call    00402A08
00456672   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
00456678   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
0045667E   .  E8 69DAFAFF   call    004040EC
00456683   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
0045668A   >  837D BC 01    cmp     dword ptr [ebp-44], 1      ;  这次是[ebp-44]的值
0045668E   .  0F8D 02010000 jge     00456796
00456694   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
0045669A   .  8B55 88       mov     edx, dword ptr [ebp-78]
0045669D   .  8A52 16       mov     dl, byte ptr [edx+16]
004566A0   .  8850 01       mov     byte ptr [eax+1], dl
004566A3   .  C600 01       mov     byte ptr [eax], 1
004566A6   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
004566AC   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004566B2   .  E8 81C3FAFF   call    00402A38
004566B7   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004566BD   .  8B55 88       mov     edx, dword ptr [ebp-78]
004566C0   .  8A52 11       mov     dl, byte ptr [edx+11]
004566C3   .  8850 01       mov     byte ptr [eax+1], dl
004566C6   .  C600 01       mov     byte ptr [eax], 1
004566C9   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004566CF   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004566D5   .  B1 02         mov     cl, 2
004566D7   .  E8 2CC3FAFF   call    00402A08
004566DC   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
004566E2   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
004566E8   .  E8 4BC3FAFF   call    00402A38
004566ED   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004566F3   .  8B55 88       mov     edx, dword ptr [ebp-78]
004566F6   .  8A52 0E       mov     dl, byte ptr [edx+E]
004566F9   .  8850 01       mov     byte ptr [eax+1], dl
004566FC   .  C600 01       mov     byte ptr [eax], 1
004566FF   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456705   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
0045670B   .  B1 03         mov     cl, 3
0045670D   .  E8 F6C2FAFF   call    00402A08
00456712   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00456718   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
0045671E   .  E8 15C3FAFF   call    00402A38
00456723   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456729   .  8B55 88       mov     edx, dword ptr [ebp-78]    ;  同上面
0045672C   .  8A52 0D       mov     dl, byte ptr [edx+D]
0045672F   .  8850 01       mov     byte ptr [eax+1], dl
00456732   .  C600 01       mov     byte ptr [eax], 1
00456735   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
0045673B   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456741   .  B1 04         mov     cl, 4
00456743   .  E8 C0C2FAFF   call    00402A08
00456748   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
0045674E   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456754   .  E8 DFC2FAFF   call    00402A38
00456759   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
0045675F   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456762   .  8A52 06       mov     dl, byte ptr [edx+6]
00456765   .  8850 01       mov     byte ptr [eax+1], dl
00456768   .  C600 01       mov     byte ptr [eax], 1
0045676B   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456771   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456777   .  B1 05         mov     cl, 5
00456779   .  E8 8AC2FAFF   call    00402A08
0045677E   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
00456784   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
0045678A   .  E8 5DD9FAFF   call    004040EC
0045678F   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
00456796   >  837D BC 04    cmp     dword ptr [ebp-44], 4      ;  还是[ebp-44]
0045679A   .  0F8E 02010000 jle     004568A2
004567A0   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
004567A6   .  8B55 88       mov     edx, dword ptr [ebp-78]
004567A9   .  8A52 16       mov     dl, byte ptr [edx+16]
004567AC   .  8850 01       mov     byte ptr [eax+1], dl
004567AF   .  C600 01       mov     byte ptr [eax], 1
004567B2   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
004567B8   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004567BE   .  E8 75C2FAFF   call    00402A38
004567C3   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004567C9   .  8B55 88       mov     edx, dword ptr [ebp-78]
004567CC   .  8A52 11       mov     dl, byte ptr [edx+11]
004567CF   .  8850 01       mov     byte ptr [eax+1], dl
004567D2   .  C600 01       mov     byte ptr [eax], 1
004567D5   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]    ;  继续跟上面一样,跟死人了。呵呵~
004567DB   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004567E1   .  B1 02         mov     cl, 2
004567E3   .  E8 20C2FAFF   call    00402A08
004567E8   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
004567EE   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
004567F4   .  E8 3FC2FAFF   call    00402A38
004567F9   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004567FF   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456802   .  8A52 0E       mov     dl, byte ptr [edx+E]
00456805   .  8850 01       mov     byte ptr [eax+1], dl
00456808   .  C600 01       mov     byte ptr [eax], 1
0045680B   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456811   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456817   .  B1 03         mov     cl, 3
00456819   .  E8 EAC1FAFF   call    00402A08
0045681E   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00456824   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
0045682A   .  E8 09C2FAFF   call    00402A38
0045682F   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456835   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456838   .  8A52 0D       mov     dl, byte ptr [edx+D]
0045683B   .  8850 01       mov     byte ptr [eax+1], dl
0045683E   .  C600 01       mov     byte ptr [eax], 1
00456841   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456847   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
0045684D   .  B1 04         mov     cl, 4
0045684F   .  E8 B4C1FAFF   call    00402A08
00456854   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
0045685A   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456860   .  E8 D3C1FAFF   call    00402A38
00456865   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
0045686B   .  8B55 88       mov     edx, dword ptr [ebp-78]
0045686E   .  8A52 06       mov     dl, byte ptr [edx+6]
00456871   .  8850 01       mov     byte ptr [eax+1], dl
00456874   .  C600 01       mov     byte ptr [eax], 1
00456877   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
0045687D   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456883   .  B1 05         mov     cl, 5
00456885   .  E8 7EC1FAFF   call    00402A08
0045688A   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
00456890   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456896   .  E8 51D8FAFF   call    004040EC
0045689B   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
004568A2   >  837D B8 03    cmp     dword ptr [ebp-48], 3      ;  这里是[ebp-48]
004568A6   .  0F8D 02010000 jge     004569AE
004568AC   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
004568B2   .  8B55 88       mov     edx, dword ptr [ebp-78]
004568B5   .  8A52 16       mov     dl, byte ptr [edx+16]
004568B8   .  8850 01       mov     byte ptr [eax+1], dl
004568BB   .  C600 01       mov     byte ptr [eax], 1
004568BE   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
004568C4   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004568CA   .  E8 69C1FAFF   call    00402A38
004568CF   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004568D5   .  8B55 88       mov     edx, dword ptr [ebp-78]
004568D8   .  8A52 11       mov     dl, byte ptr [edx+11]
004568DB   .  8850 01       mov     byte ptr [eax+1], dl       ;  同上,一模一样,
004568DE   .  C600 01       mov     byte ptr [eax], 1
004568E1   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004568E7   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004568ED   .  B1 02         mov     cl, 2
004568EF   .  E8 14C1FAFF   call    00402A08
004568F4   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
004568FA   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456900   .  E8 33C1FAFF   call    00402A38
00456905   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
0045690B   .  8B55 88       mov     edx, dword ptr [ebp-78]
0045690E   .  8A52 0E       mov     dl, byte ptr [edx+E]
00456911   .  8850 01       mov     byte ptr [eax+1], dl
00456914   .  C600 01       mov     byte ptr [eax], 1
00456917   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
0045691D   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456923   .  B1 03         mov     cl, 3
00456925   .  E8 DEC0FAFF   call    00402A08
0045692A   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00456930   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456936   .  E8 FDC0FAFF   call    00402A38
0045693B   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456941   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456944   .  8A52 0D       mov     dl, byte ptr [edx+D]
00456947   .  8850 01       mov     byte ptr [eax+1], dl
0045694A   .  C600 01       mov     byte ptr [eax], 1
0045694D   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456953   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456959   .  B1 04         mov     cl, 4
0045695B   .  E8 A8C0FAFF   call    00402A08
00456960   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
00456966   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
0045696C   .  E8 C7C0FAFF   call    00402A38
00456971   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456977   .  8B55 88       mov     edx, dword ptr [ebp-78]
0045697A   .  8A52 06       mov     dl, byte ptr [edx+6]
0045697D   .  8850 01       mov     byte ptr [eax+1], dl
00456980   .  C600 01       mov     byte ptr [eax], 1
00456983   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456989   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
0045698F   .  B1 05         mov     cl, 5
00456991   .  E8 72C0FAFF   call    00402A08
00456996   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
0045699C   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
004569A2   .  E8 45D7FAFF   call    004040EC
004569A7   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
004569AE   >  837D B4 08    cmp     dword ptr [ebp-4C], 8      ;  [ebp-4c]这里又开始了,
004569B2   .  0F8D 02010000 jge     00456ABA
004569B8   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
004569BE   .  8B55 88       mov     edx, dword ptr [ebp-78]
004569C1   .  8A52 16       mov     dl, byte ptr [edx+16]
004569C4   .  8850 01       mov     byte ptr [eax+1], dl
004569C7   .  C600 01       mov     byte ptr [eax], 1
004569CA   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
004569D0   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]    ;  同上,一模一样,
004569D6   .  E8 5DC0FAFF   call    00402A38
004569DB   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
004569E1   .  8B55 88       mov     edx, dword ptr [ebp-78]
004569E4   .  8A52 11       mov     dl, byte ptr [edx+11]
004569E7   .  8850 01       mov     byte ptr [eax+1], dl
004569EA   .  C600 01       mov     byte ptr [eax], 1
004569ED   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
004569F3   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
004569F9   .  B1 02         mov     cl, 2
004569FB   .  E8 08C0FAFF   call    00402A08
00456A00   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
00456A06   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456A0C   .  E8 27C0FAFF   call    00402A38
00456A11   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456A17   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456A1A   .  8A52 0E       mov     dl, byte ptr [edx+E]
00456A1D   .  8850 01       mov     byte ptr [eax+1], dl
00456A20   .  C600 01       mov     byte ptr [eax], 1
00456A23   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456A29   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456A2F   .  B1 03         mov     cl, 3
00456A31   .  E8 D2BFFAFF   call    00402A08
00456A36   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00456A3C   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456A42   .  E8 F1BFFAFF   call    00402A38
00456A47   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456A4D   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456A50   .  8A52 0D       mov     dl, byte ptr [edx+D]
00456A53   .  8850 01       mov     byte ptr [eax+1], dl
00456A56   .  C600 01       mov     byte ptr [eax], 1
00456A59   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456A5F   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456A65   .  B1 04         mov     cl, 4
00456A67   .  E8 9CBFFAFF   call    00402A08
00456A6C   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
00456A72   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456A78   .  E8 BBBFFAFF   call    00402A38
00456A7D   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456A83   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456A86   .  8A52 06       mov     dl, byte ptr [edx+6]
00456A89   .  8850 01       mov     byte ptr [eax+1], dl
00456A8C   .  C600 01       mov     byte ptr [eax], 1
00456A8F   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456A95   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456A9B   .  B1 05         mov     cl, 5
00456A9D   .  E8 66BFFAFF   call    00402A08
00456AA2   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
00456AA8   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456AAE   .  E8 39D6FAFF   call    004040EC
00456AB3   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
00456ABA   >  837D E8 02    cmp     dword ptr [ebp-18], 2      ;  [ebp-18]
00456ABE   .  0F8D 07010000 jge     00456BCB
00456AC4   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
00456ACA   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456ACD   .  8A52 12       mov     dl, byte ptr [edx+12]
00456AD0   .  8850 01       mov     byte ptr [eax+1], dl
00456AD3   .  C600 01       mov     byte ptr [eax], 1
00456AD6   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
00456ADC   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
00456AE2   .  E8 51BFFAFF   call    00402A38
00456AE7   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456AED   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456AF0   .  8A52 07       mov     dl, byte ptr [edx+7]
00456AF3   .  8850 01       mov     byte ptr [eax+1], dl       ;  同上,一模一样,
00456AF6   .  C600 01       mov     byte ptr [eax], 1
00456AF9   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456AFF   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
00456B05   .  B1 02         mov     cl, 2
00456B07   .  E8 FCBEFAFF   call    00402A08
00456B0C   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
00456B12   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456B18   .  E8 1BBFFAFF   call    00402A38
00456B1D   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456B23   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456B26   .  8A52 0E       mov     dl, byte ptr [edx+E]
00456B29   .  8850 01       mov     byte ptr [eax+1], dl
00456B2C   .  C600 01       mov     byte ptr [eax], 1
00456B2F   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456B35   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456B3B   .  B1 03         mov     cl, 3
00456B3D   .  E8 C6BEFAFF   call    00402A08
00456B42   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00456B48   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456B4E   .  E8 E5BEFAFF   call    00402A38
00456B53   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456B59   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456B5C   .  8A52 11       mov     dl, byte ptr [edx+11]
00456B5F   .  8850 01       mov     byte ptr [eax+1], dl
00456B62   .  C600 01       mov     byte ptr [eax], 1
00456B65   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456B6B   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456B71   .  B1 04         mov     cl, 4
00456B73   .  E8 90BEFAFF   call    00402A08
00456B78   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
00456B7E   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456B84   .  E8 AFBEFAFF   call    00402A38
00456B89   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456B8F   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456B92   .  8A52 13       mov     dl, byte ptr [edx+13]
00456B95   .  8850 01       mov     byte ptr [eax+1], dl
00456B98   .  C600 01       mov     byte ptr [eax], 1
00456B9B   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456BA1   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00456BA7   .  B1 05         mov     cl, 5
00456BA9   .  E8 5ABEFAFF   call    00402A08
00456BAE   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
00456BB4   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456BBA   .  E8 2DD5FAFF   call    004040EC
00456BBF   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
00456BC6   .  E9 D6000000   jmp     00456CA1
00456BCB   >  837D E8 03    cmp     dword ptr [ebp-18], 3      ;  还是[ebp-18]
00456BCF   .  0F8D CC000000 jge     00456CA1
00456BD5   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
00456BDB   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456BDE   .  8A52 0B       mov     dl, byte ptr [edx+B]
00456BE1   .  8850 01       mov     byte ptr [eax+1], dl
00456BE4   .  C600 01       mov     byte ptr [eax], 1
00456BE7   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
00456BED   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
00456BF3   .  E8 40BEFAFF   call    00402A38
00456BF8   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456BFE   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456C01   .  8A52 0E       mov     dl, byte ptr [edx+E]
00456C04   .  8850 01       mov     byte ptr [eax+1], dl       ;  同上,一模一样,
00456C07   .  C600 01       mov     byte ptr [eax], 1
00456C0A   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456C10   .  8D85 6CFFFFFF lea     eax, dword ptr [ebp-94]
00456C16   .  B1 02         mov     cl, 2
00456C18   .  E8 EBBDFAFF   call    00402A08
00456C1D   .  8D95 6CFFFFFF lea     edx, dword ptr [ebp-94]
00456C23   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456C29   .  E8 0ABEFAFF   call    00402A38
00456C2E   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456C34   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456C37   .  8A52 0D       mov     dl, byte ptr [edx+D]
00456C3A   .  8850 01       mov     byte ptr [eax+1], dl
00456C3D   .  C600 01       mov     byte ptr [eax], 1
00456C40   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456C46   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00456C4C   .  B1 03         mov     cl, 3
00456C4E   .  E8 B5BDFAFF   call    00402A08
00456C53   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00456C59   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456C5F   .  E8 D4BDFAFF   call    00402A38
00456C64   .  8D85 68FFFFFF lea     eax, dword ptr [ebp-98]
00456C6A   .  8B55 88       mov     edx, dword ptr [ebp-78]
00456C6D   .  8A52 06       mov     dl, byte ptr [edx+6]
00456C70   .  8850 01       mov     byte ptr [eax+1], dl
00456C73   .  C600 01       mov     byte ptr [eax], 1
00456C76   .  8D95 68FFFFFF lea     edx, dword ptr [ebp-98]
00456C7C   .  8D85 5CFFFFFF lea     eax, dword ptr [ebp-A4]
00456C82   .  B1 04         mov     cl, 4
00456C84   .  E8 7FBDFAFF   call    00402A08
00456C89   .  8D95 5CFFFFFF lea     edx, dword ptr [ebp-A4]
00456C8F   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456C95   .  E8 52D4FAFF   call    004040EC                   ;  反复的在写[ebp-48]这个地址
00456C9A   .  C685 7BFFFFFF>mov     byte ptr [ebp-85], 1
00456CA1   >  837D AC 14    cmp     dword ptr [ebp-54], 14     ;  一个值[ebp-54]
00456CA5   .  7E 10         jle     short 00456CB7
00456CA7   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456CAD   .  BA 506D4500   mov     edx, 00456D50              ;  ~
00456CB2   .  E8 69D2FAFF   call    00403F20                   ;  [ebp-84]:='~'
00456CB7   >  837D A8 14    cmp     dword ptr [ebp-58], 14     ;  一个值[ebp-58]
00456CBB   .  7E 10         jle     short 00456CCD
00456CBD   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456CC3   .  BA 5C6D4500   mov     edx, 00456D5C              ;  |
00456CC8   .  E8 53D2FAFF   call    00403F20                   ;  [ebp-84]:='|'
00456CCD   >  6A 00         push    0                          ; /Arg1 = 00000000
00456CCF   .  66:8B0D 606D4>mov     cx, word ptr [456D60]      ; |
00456CD6   .  8A95 7BFFFFFF mov     dl, byte ptr [ebp-85]      ; |[ebp-85]在这里用到,所以翻回去可以看到其变化,
00456CDC   .  8B85 7CFFFFFF mov     eax, dword ptr [ebp-84]    ; |[ebp-84]在这里用了,终于到了终点站。
00456CE2   .  E8 6D06FDFF   call    00427354                   ; \fonge's_.00427354
00456CE7   >  33C0          xor     eax, eax
00456CE9   .  5A            pop     edx
00456CEA   .  59            pop     ecx
00456CEB   .  59            pop     ecx
00456CEC   .  64:8910       mov     dword ptr fs:[eax], edx    ;  巨大的try结束
00456CEF   .  68 1C6D4500   push    00456D1C
00456CF4   >  8D85 48FFFFFF lea     eax, dword ptr [ebp-B8]
00456CFA   .  BA 03000000   mov     edx, 3
00456CFF   .  E8 A8D1FAFF   call    00403EAC
00456D04   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00456D0A   .  BA 09000000   mov     edx, 9
00456D0F   .  E8 98D1FAFF   call    00403EAC
00456D14   .  C3            retn
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
fonge 5 2007-3-12 12:24
9
0
汗一个(-_-!)
感觉自己是刷屏来的
难怪这么多人都不玩这东东
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
KAN 6 2007-3-12 13:28
10
0
我当初也下了,搞了两下,退出,实在太。。。。。。。了,我没精力顶下去了,如果当工作要完成任务的话,应该还是可以的,但要我当娱乐的话,闪
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2007-3-12 15:02
11
0
最初由 fonge 发布
messageDlg('其实每个男孩,本来都是想做一个感情专一的好男人的。'+#13+#13+
'其实每个男孩,本来看女孩子都是看脸而不是胸部的。'+#13+#13+
'其实每个男孩,本来都是不会讲黄色笑话的。'+#13+#13+
'其实每个男孩,本来都是渴望爱一个人直到永远的。'+#13+#13+
'只是,没有任何女孩爱这样的男孩,'+#13+#13+
'她们觉得这样的男孩太幼稚,太古板,没有情趣。'+#13+#13+
'于是男孩开始改变,'+#13+#13+
'变成女孩喜欢的那种嘴角挂着坏坏的笑,玩世不恭或者幽默'+#13+#13+
'开始学会说甜言蜜语而不是心里想说的话开始学会假装关心,'+#13+#13+
'学会给女孩送小饰物讨好她 学会如何追求,如何把握爱情。'+#13+#13+
'或者看破红尘,游戏情场,成为女人恨恨的那种男人'+#13+#13+
'他们可以很容易俘获女孩子的心,'+#13+#13+
'但是他们也会在黑的夜里叼着烟流泪,'+#13+#13+
'心里有爱的时候,没有女孩。有了女孩,却永远没有了爱的感觉。'+#13+#13+
'在听到女人抱怨世上没有一个好男人时候,'+#13+#13+
'他们不会再去努力做个好男人,只是微笑着擦肩而过. '+#13+#13+
'承诺只不过是谎言的另一种表达方式.对不对。'+#13+#13+
'其实...每个男孩的转变都是因为女孩...'+#13+#13+
'所以当男孩变的时候...'+#13+#13+
'女孩应该承担一定的责任...',
mtInformation,[mbOK],0)
........


这段经典
游客
登录 | 注册 方可回帖
返回