Easy Mail 3.1.58.2 简单分析
【破文标题】Easy Mail 3.1.58.2 简单分析【破文作者】tianxj
【作者邮箱】[email protected]
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】雨林木风 Windows XP sp3
【软件名称】Easy Mail 3.1.58.2
【软件大小】1292KB
【软件类别】国外软件/打印工具
【软件授权】共享版
【软件语言】英文
【运行环境】Win9x/Me/NT/2000/XP/2003
【更新时间】2009-1-12
【原版下载】华军软件园
【保护方式】注册码
【软件简介】常好用的信封制作打印、标签制作等的工具。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
**************************************************************
二、用PEiD对easymail.exe查壳,为 PECompact 2.x -> Jeremy Collake
==============================================================
00401000 >B8 48715500 MOV EAX,easymail.00557148 ; //程序停在这里
00401005 50 PUSH EAX
00401006 64:FF35 0000000>PUSH DWORD PTR FS:
0040100D 64:8925 0000000>MOV DWORD PTR FS:,ESP ; //单步到这里,命令行hr esp
==============================================================
00557177 83C4 04 ADD ESP,4 ; //在这里断下,取消硬件断点,向下找
0055717A 55 PUSH EBP
0055717B 53 PUSH EBX
0055717C 51 PUSH ECX
0055717D 57 PUSH EDI
0055717E 56 PUSH ESI
0055717F 52 PUSH EDX
==============================================================
00557204 5A POP EDX
00557205 5E POP ESI
00557206 5F POP EDI
00557207 59 POP ECX
00557208 5B POP EBX
00557209 5D POP EBP
0055720A FFE0 JMP EAX ; //在这里F4,然后F8
==============================================================
004AC2F8 55 PUSH EBP ; //OEP
==============================================================
用LordPE转存,用ImportREC修复,没有无效指针,可以运行
再查壳为Borland Delphi 3.0
**************************************************************
三、运行OD,打开dumped_.exe,右键—超级字串参考—查找ASCII.
==============================================================
0049C328/.55 PUSH EBP
0049C329|.8BEC MOV EBP,ESP
0049C32B|.81C4 F0FEFFFF ADD ESP,-110
0049C331|.53 PUSH EBX
0049C332|.56 PUSH ESI
0049C333|.33C9 XOR ECX,ECX
0049C335|.894D F4 MOV DWORD PTR SS:,ECX
0049C338|.894D F8 MOV DWORD PTR SS:,ECX
0049C33B|.894D F0 MOV DWORD PTR SS:,ECX
0049C33E|.894D FC MOV DWORD PTR SS:,ECX
0049C341|.8BF0 MOV ESI,EAX
0049C343|.33C0 XOR EAX,EAX
0049C345|.55 PUSH EBP
0049C346|.68 2AC54900 PUSH dumped_.0049C52A
0049C34B|.64:FF30 PUSH DWORD PTR FS:
0049C34E|.64:8920 MOV DWORD PTR FS:,ESP
0049C351|.8D55 F4 LEA EDX,DWORD PTR SS:
0049C354|.8B86 FC010000 MOV EAX,DWORD PTR DS:
0049C35A|.E8 4D2AF9FF CALL dumped_.0042EDAC
0049C35F|.8B45 F4 MOV EAX,DWORD PTR SS:
0049C362|.8D55 F8 LEA EDX,DWORD PTR SS:
0049C365|.E8 46B1F6FF CALL dumped_.004074B0
0049C36A|.837D F8 00 CMP DWORD PTR SS:,0
0049C36E|.75 0F JNZ SHORT dumped_.0049C37F ;//用户名不为空则跳
0049C370|.B8 40C54900 MOV EAX,dumped_.0049C540 ;enter your registered name
0049C375|.E8 CAFDF8FF CALL dumped_.0042C144
0049C37A|.E9 80010000 JMP dumped_.0049C4FF
0049C37F|>8D55 F4 LEA EDX,DWORD PTR SS:
0049C382|.8B86 FC010000 MOV EAX,DWORD PTR DS:
0049C388|.E8 1F2AF9FF CALL dumped_.0042EDAC
0049C38D|.8B45 F4 MOV EAX,DWORD PTR SS:
0049C390|.8D55 F0 LEA EDX,DWORD PTR SS:
0049C393|.E8 18B1F6FF CALL dumped_.004074B0
0049C398|.8B45 F0 MOV EAX,DWORD PTR SS: ;//用户名
0049C39B|.8D55 F8 LEA EDX,DWORD PTR SS:
0049C39E|.E8 01AFF6FF CALL dumped_.004072A4 ;//用户名转大写
0049C3A3|.8B45 F8 MOV EAX,DWORD PTR SS:
0049C3A6|.BA 64C54900 MOV EDX,dumped_.0049C564 ;renew trial period
0049C3AB|.E8 087AF6FF CALL dumped_.00403DB8
0049C3B0|.75 19 JNZ SHORT dumped_.0049C3CB ;//与重新试用比较,不等则跳
0049C3B2|.E8 05B9FFFF CALL dumped_.00497CBC
0049C3B7|.84C0 TEST AL,AL
0049C3B9|.0F84 40010000 JE dumped_.0049C4FF
0049C3BF|.A1 E4E04A00 MOV EAX,DWORD PTR DS:
0049C3C4|.8B00 MOV EAX,DWORD PTR DS:
0049C3C6|.E8 CD2DFAFF CALL dumped_.0043F198
0049C3CB|>8D55 F4 LEA EDX,DWORD PTR SS:
0049C3CE|.8B86 FC010000 MOV EAX,DWORD PTR DS:
0049C3D4|.E8 D329F9FF CALL dumped_.0042EDAC
0049C3D9|.8B45 F4 MOV EAX,DWORD PTR SS: ;//用户名
0049C3DC|.8D55 F8 LEA EDX,DWORD PTR SS:
0049C3DF|.E8 C0AEF6FF CALL dumped_.004072A4 ;//用户名转大写
0049C3E4|.8B45 F8 MOV EAX,DWORD PTR SS: ;//大写用户名
0049C3E7|.8D55 FC LEA EDX,DWORD PTR SS:
0049C3EA|.E8 91FDFFFF CALL dumped_.0049C180 ;//算法CALL1
0049C3EF|.8D55 F8 LEA EDX,DWORD PTR SS:
0049C3F2|.8B45 FC MOV EAX,DWORD PTR SS: ;//运算结果1
0049C3F5|.E8 1AFEFFFF CALL dumped_.0049C214 ;//算法CALL2
0049C3FA|.8B55 F8 MOV EDX,DWORD PTR SS: ;//相连字符串C,即真码
0049C3FD|.8D45 FC LEA EAX,DWORD PTR SS:
0049C400|.E8 BF76F6FF CALL dumped_.00403AC4
0049C405|.8D55 F4 LEA EDX,DWORD PTR SS:
0049C408|.8B86 00020000 MOV EAX,DWORD PTR DS:
0049C40E|.E8 9929F9FF CALL dumped_.0042EDAC
0049C413|.8B55 F4 MOV EDX,DWORD PTR SS: ;//假码
0049C416|.8B45 FC MOV EAX,DWORD PTR SS: ;//真码
0049C419|.E8 9A79F6FF CALL dumped_.00403DB8 ;//比较CALL
0049C41E|.0F94C3 SETE BL
0049C421|.A1 FCDD4A00 MOV EAX,DWORD PTR DS:
0049C426|.8B00 MOV EAX,DWORD PTR DS:
0049C428|.8898 25020000 MOV BYTE PTR DS:,BL
0049C42E|.A1 FCDD4A00 MOV EAX,DWORD PTR DS:
0049C433|.84DB TEST BL,BL
0049C435|.75 1F JNZ SHORT dumped_.0049C456
0049C437|.80BE 04020000>CMP BYTE PTR DS:,0
0049C43E|.75 0C JNZ SHORT dumped_.0049C44C
0049C440|.B8 80C54900 MOV EAX,dumped_.0049C580 ;sorry, incorrect unlock code for easy mail\r\n\r\nor the registered name has been entered incorrectly.
0049C445|.E8 FAFCF8FF CALL dumped_.0042C144
0049C44A|.EB 0A JMP SHORT dumped_.0049C456
0049C44C|>B8 ECC54900 MOV EAX,dumped_.0049C5EC ;Sorry, incorrect Amazon Password for Easy Mail\r\n\r\nor the Amazon Key has been entered incorrectly.
0049C451|.E8 EEFCF8FF CALL dumped_.0042C144
0049C456|>A1 FCDD4A00 MOV EAX,DWORD PTR DS:
0049C45B|.8B00 MOV EAX,DWORD PTR DS:
0049C45D|.80B8 25020000>CMP BYTE PTR DS:,0
0049C464|.0F84 95000000 JE dumped_.0049C4FF
0049C46A|.68 58C64900 PUSH dumped_.0049C658 ;Thank you for registering Easy Mail.\nThis copy of Easy Mail is registered to \n
0049C46F|.8D55 F4 LEA EDX,DWORD PTR SS:
0049C472|.8B86 FC010000 MOV EAX,DWORD PTR DS:
0049C478|.E8 2F29F9FF CALL dumped_.0042EDAC
0049C47D|.FF75 F4 PUSH DWORD PTR SS:
0049C480|.68 B0C64900 PUSH dumped_.0049C6B0 ;.
0049C485|.8D45 F8 LEA EAX,DWORD PTR SS:
0049C488|.BA 03000000 MOV EDX,3
0049C48D|.E8 D678F6FF CALL dumped_.00403D68
0049C492|.8B45 F8 MOV EAX,DWORD PTR SS:
0049C495|.E8 AAFCF8FF CALL dumped_.0042C144
0049C49A|.E8 39C7F6FF CALL dumped_.00408BD8
0049C49F|.83C4 F8 ADD ESP,-8
0049C4A2|.DD1C24 FSTP QWORD PTR SS:
0049C4A5|.9B WAIT
0049C4A6|.8D55 F4 LEA EDX,DWORD PTR SS:
0049C4A9|.8B86 FC010000 MOV EAX,DWORD PTR DS:
0049C4AF|.E8 F828F9FF CALL dumped_.0042EDAC
0049C4B4|.8B55 F4 MOV EDX,DWORD PTR SS:
0049C4B7|.B0 01 MOV AL,1
0049C4B9|.E8 2AADFFFF CALL dumped_.004971E8
0049C4BE|.8D55 F4 LEA EDX,DWORD PTR SS:
0049C4C1|.8B86 FC010000 MOV EAX,DWORD PTR DS:
0049C4C7|.E8 E028F9FF CALL dumped_.0042EDAC
0049C4CC|.8B55 F4 MOV EDX,DWORD PTR SS:
0049C4CF|.8D85 F0FEFFFF LEA EAX,DWORD PTR SS:
0049C4D5|.B9 FF000000 MOV ECX,0FF
0049C4DA|.E8 A577F6FF CALL dumped_.00403C84
0049C4DF|.8D95 F0FEFFFF LEA EDX,DWORD PTR SS:
0049C4E5|.A1 FCDD4A00 MOV EAX,DWORD PTR DS:
0049C4EA|.8B00 MOV EAX,DWORD PTR DS:
0049C4EC|.05 26020000 ADD EAX,226
0049C4F1|.B1 28 MOV CL,28
0049C4F3|.E8 6066F6FF CALL dumped_.00402B58
0049C4F8|.8BC6 MOV EAX,ESI
0049C4FA|.E8 990AFAFF CALL dumped_.0043CF98
0049C4FF|>33C0 XOR EAX,EAX
0049C501|.5A POP EDX
0049C502|.59 POP ECX
0049C503|.59 POP ECX
0049C504|.64:8910 MOV DWORD PTR FS:,EDX
0049C507|.68 31C54900 PUSH dumped_.0049C531
0049C50C|>8D45 F0 LEA EAX,DWORD PTR SS:
0049C50F|.E8 1875F6FF CALL dumped_.00403A2C
0049C514|.8D45 F4 LEA EAX,DWORD PTR SS:
0049C517|.E8 1075F6FF CALL dumped_.00403A2C
0049C51C|.8D45 F8 LEA EAX,DWORD PTR SS:
0049C51F|.BA 02000000 MOV EDX,2
0049C524|.E8 2775F6FF CALL dumped_.00403A50
0049C529\.C3 RETN
0049C52A .^ E9 A16FF6FF JMP dumped_.004034D0
0049C52F .^ EB DB JMP SHORT dumped_.0049C50C
0049C531 .5E POP ESI
0049C532 .5B POP EBX
0049C533 .8BE5 MOV ESP,EBP
0049C535 .5D POP EBP
0049C536 .C3 RETN
==============================================================
0049C180/$55 PUSH EBP
0049C181|.8BEC MOV EBP,ESP
0049C183|.81C4 FCFDFFFF ADD ESP,-204
0049C189|.53 PUSH EBX
0049C18A|.56 PUSH ESI
0049C18B|.33C9 XOR ECX,ECX
0049C18D|.898D FCFDFFFF MOV DWORD PTR SS:,ECX
0049C193|.8BF2 MOV ESI,EDX
0049C195|.8BD8 MOV EBX,EAX
0049C197|.33C0 XOR EAX,EAX
0049C199|.55 PUSH EBP
0049C19A|.68 04C24900 PUSH dumped_.0049C204
0049C19F|.64:FF30 PUSH DWORD PTR FS:
0049C1A2|.64:8920 MOV DWORD PTR FS:,ESP
0049C1A5|.8D95 FCFDFFFF LEA EDX,DWORD PTR SS:
0049C1AB|.8BC3 MOV EAX,EBX
0049C1AD|.E8 F2B0F6FF CALL dumped_.004072A4
0049C1B2|.8B95 FCFDFFFF MOV EDX,DWORD PTR SS: ;//大写用户名
0049C1B8|.8D85 00FEFFFF LEA EAX,DWORD PTR SS:
0049C1BE|.B9 FF000000 MOV ECX,0FF
0049C1C3|.E8 BC7AF6FF CALL dumped_.00403C84
0049C1C8|.8D85 00FEFFFF LEA EAX,DWORD PTR SS: ;//用户名长度与大写用户名
0049C1CE|.8D8D 00FFFFFF LEA ECX,DWORD PTR SS:
0049C1D4|.BA 88120000 MOV EDX,1288
0049C1D9|.E8 16AEFFFF CALL dumped_.00496FF4 ;//运算CALL
0049C1DE|.8D95 00FFFFFF LEA EDX,DWORD PTR SS: ;//运算结果1
0049C1E4|.8BC6 MOV EAX,ESI
0049C1E6|.E8 617AF6FF CALL dumped_.00403C4C
0049C1EB|.33C0 XOR EAX,EAX
0049C1ED|.5A POP EDX
0049C1EE|.59 POP ECX
0049C1EF|.59 POP ECX
0049C1F0|.64:8910 MOV DWORD PTR FS:,EDX
0049C1F3|.68 0BC24900 PUSH dumped_.0049C20B
0049C1F8|>8D85 FCFDFFFF LEA EAX,DWORD PTR SS:
0049C1FE|.E8 2978F6FF CALL dumped_.00403A2C
0049C203\.C3 RETN
0049C204 .^ E9 C772F6FF JMP dumped_.004034D0
0049C209 .^ EB ED JMP SHORT dumped_.0049C1F8
0049C20B .5E POP ESI
0049C20C .5B POP EBX
0049C20D .8BE5 MOV ESP,EBP
0049C20F .5D POP EBP
0049C210 .C3 RETN
==============================================================
00496FF4/$53 PUSH EBX
00496FF5|.56 PUSH ESI
00496FF6|.51 PUSH ECX
00496FF7|.8BF0 MOV ESI,EAX
00496FF9|.8A06 MOV AL,BYTE PTR DS:
00496FFB|.8801 MOV BYTE PTR DS:,AL
00496FFD|.8A06 MOV AL,BYTE PTR DS:
00496FFF|.84C0 TEST AL,AL
00497001|.76 1D JBE SHORT dumped_.00497020
00497003|.880424 MOV BYTE PTR SS:,AL
00497006|.8D46 01 LEA EAX,DWORD PTR DS:
00497009|.8BF0 MOV ESI,EAX
0049700B|.8D41 01 LEA EAX,DWORD PTR DS:
0049700E|>8A0E /MOV CL,BYTE PTR DS: ;//逐位取用户名ASCII码
00497010|.8BDA |MOV EBX,EDX ;//EBX=EDX=1288
00497012|.C1EB 08 |SHR EBX,8 ;//EBX右移8位
00497015|.32CB |XOR CL,BL ;//CL=CL xor BL
00497017|.8808 |MOV BYTE PTR DS:,CL ;//保存运算值
00497019|.40 |INC EAX
0049701A|.46 |INC ESI
0049701B|.FE0C24 |DEC BYTE PTR SS:
0049701E|.^ 75 EE \JNZ SHORT dumped_.0049700E ;//循环
00497020|>5A POP EDX
00497021|.5E POP ESI
00497022|.5B POP EBX
00497023\.C3 RETN
==============================================================
0049C214/$55 PUSH EBP
0049C215|.8BEC MOV EBP,ESP
0049C217|.83C4 E8 ADD ESP,-18
0049C21A|.53 PUSH EBX
0049C21B|.56 PUSH ESI
0049C21C|.57 PUSH EDI
0049C21D|.33C9 XOR ECX,ECX
0049C21F|.894D EC MOV DWORD PTR SS:,ECX
0049C222|.894D E8 MOV DWORD PTR SS:,ECX
0049C225|.894D F0 MOV DWORD PTR SS:,ECX
0049C228|.8955 F8 MOV DWORD PTR SS:,EDX
0049C22B|.8945 FC MOV DWORD PTR SS:,EAX
0049C22E|.33C0 XOR EAX,EAX
0049C230|.55 PUSH EBP
0049C231|.68 0BC34900 PUSH dumped_.0049C30B
0049C236|.64:FF30 PUSH DWORD PTR FS:
0049C239|.64:8920 MOV DWORD PTR FS:,ESP
0049C23C|.8D45 F0 LEA EAX,DWORD PTR SS:
0049C23F|.E8 E877F6FF CALL dumped_.00403A2C
0049C244|.33FF XOR EDI,EDI
0049C246|.8B45 FC MOV EAX,DWORD PTR SS: ;//运算结果1
0049C249|.E8 5A7AF6FF CALL dumped_.00403CA8
0049C24E|.8BD8 MOV EBX,EAX
0049C250|.84DB TEST BL,BL
0049C252|.76 2F JBE SHORT dumped_.0049C283
0049C254|.C645 F7 01 MOV BYTE PTR SS:,1
0049C258|>33C0 /XOR EAX,EAX
0049C25A|.8A45 F7 |MOV AL,BYTE PTR SS:
0049C25D|.8B55 FC |MOV EDX,DWORD PTR SS: ;//运算结果1
0049C260|.0FB67402 FF |MOVZX ESI,BYTE PTR DS: ;//依次取运算结果1的ASCII码
0049C265|.8D55 EC |LEA EDX,DWORD PTR SS:
0049C268|.8BC6 |MOV EAX,ESI
0049C26A|.E8 C1B3F6FF |CALL dumped_.00407630 ;//EAX转10进制
0049C26F|.8B55 EC |MOV EDX,DWORD PTR SS: ;//10进制字符
0049C272|.8D45 F0 |LEA EAX,DWORD PTR SS:
0049C275|.E8 367AF6FF |CALL dumped_.00403CB0 ;//字符相连
0049C27A|.03FE |ADD EDI,ESI ;//累加运算结果1的ASCII码
0049C27C|.FE45 F7 |INC BYTE PTR SS:
0049C27F|.FECB |DEC BL
0049C281|.^ 75 D5 \JNZ SHORT dumped_.0049C258 ;//循环
0049C283|>8D45 F0 LEA EAX,DWORD PTR SS:
0049C286|.50 PUSH EAX
0049C287|.B9 05000000 MOV ECX,5
0049C28C|.BA 01000000 MOV EDX,1
0049C291|.8B45 F0 MOV EAX,DWORD PTR SS: ;//相连字符串A
0049C294|.E8 137CF6FF CALL dumped_.00403EAC ;//取相连字符串A的1-5位
0049C299|.8D45 EC LEA EAX,DWORD PTR SS:
0049C29C|.50 PUSH EAX
0049C29D|.8D55 E8 LEA EDX,DWORD PTR SS:
0049C2A0|.8BC7 MOV EAX,EDI ;//运算结果1的ASCII码累加值
0049C2A2|.03C0 ADD EAX,EAX ;//运算结果1的ASCII码累加值乘2
0049C2A4|.E8 87B3F6FF CALL dumped_.00407630 ;//EAX转10进制
0049C2A9|.8B45 E8 MOV EAX,DWORD PTR SS: ;//10进制字符串
0049C2AC|.B9 03000000 MOV ECX,3
0049C2B1|.BA 01000000 MOV EDX,1
0049C2B6|.E8 F17BF6FF CALL dumped_.00403EAC ;//取10进制字符串的1-3位
0049C2BB|.8B55 EC MOV EDX,DWORD PTR SS: ;//10进制字符串的1-3位
0049C2BE|.8D45 F0 LEA EAX,DWORD PTR SS:
0049C2C1|.E8 EA79F6FF CALL dumped_.00403CB0 ;//将相连字符串1-5位和10进制字符串的1-3位相连
0049C2C6|.EB 10 JMP SHORT dumped_.0049C2D8
0049C2C8|>8D45 F0 /LEA EAX,DWORD PTR SS:
0049C2CB|.8B4D F0 |MOV ECX,DWORD PTR SS:
0049C2CE|.BA 24C34900 |MOV EDX,dumped_.0049C324 ;3
0049C2D3|.E8 1C7AF6FF |CALL dumped_.00403CF4
0049C2D8|>8B45 F0 MOV EAX,DWORD PTR SS:
0049C2DB|.E8 C879F6FF |CALL dumped_.00403CA8
0049C2E0|.83F8 08 |CMP EAX,8
0049C2E3|.^ 7C E3 \JL SHORT dumped_.0049C2C8 ;//若相连字符串B的长度小于8则在前面用"3"补足8位
0049C2E5|.8B45 F8 MOV EAX,DWORD PTR SS:
0049C2E8|.8B55 F0 MOV EDX,DWORD PTR SS: ;//相连字符串C
0049C2EB|.E8 D477F6FF CALL dumped_.00403AC4
0049C2F0|.33C0 XOR EAX,EAX
0049C2F2|.5A POP EDX
0049C2F3|.59 POP ECX
0049C2F4|.59 POP ECX
0049C2F5|.64:8910 MOV DWORD PTR FS:,EDX
0049C2F8|.68 12C34900 PUSH dumped_.0049C312
0049C2FD|>8D45 E8 LEA EAX,DWORD PTR SS:
0049C300|.BA 03000000 MOV EDX,3
0049C305|.E8 4677F6FF CALL dumped_.00403A50
0049C30A\.C3 RETN
0049C30B .^ E9 C071F6FF JMP dumped_.004034D0
0049C310 .^ EB EB JMP SHORT dumped_.0049C2FD
0049C312 .5F POP EDI
0049C313 .5E POP ESI
0049C314 .5B POP EBX
0049C315 .8BE5 MOV ESP,EBP
0049C317 .5D POP EBP
0049C318 .C3 RETN
**************************************************************
【破解总结】
脱壳和算法都还算简单
--------------------------------------------------------------
【算法总结】
举例说明
用户名: tianxj
转大写: TIANXJ
大写用户名ASCII码:54 49 41 4E 58 4A
分别与12异或后为 46 5B 53 5C 4A 58即字符串 F[S\JX
分别转为10进制位为 70 91 83 92 74 88
相连为"709183927488"
取1-5位即"70918"
累加70+91+83+92+74+88=498
相加498+498=996
取1-5位即"996"
2组字符串相连得"70918996"
因为位数已经是8了,所以就不用在前面补"3"
注册码就是"70918996"
--------------------------------------------------------------
【算法注册机】
〖易语言代码〗
.版本 2
.子程序 _按钮1_被单击
.局部变量 X, 文本型
.局部变量 Y, 整数型
.局部变量 Z, 文本型
.局部变量 i, 整数型
.如果 (取文本长度 (编辑框1.内容) = 0)
编辑框1.内容 = “请输入用户名!”
.否则
.计次循环首 (取文本长度 (编辑框1.内容), i)
X = X + 到文本 (位异或 (取代码 (到大写 (编辑框1.内容), i), 18))
Y = Y + 位异或 (取代码 (到大写 (编辑框1.内容), i), 18)
.计次循环尾 ()
Z = 取文本中间 (X, 1, 5) + 取文本中间 (到文本 (Y + Y), 1, 3)
.计次循环首 (8 - 取文本长度 (Z), i)
Z = “3” + Z
.计次循环尾 ()
编辑框2.内容 = Z
--------------------------------------------------------------
【注册信息】
用户名:tianxj
注册码:70918996
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及徐超等所有帮助过我的论坛兄弟姐妹们!谢谢
新年新气象,新春节日到!节日快乐!愿朋友你在2009年,天天开怀,时时快乐,分分精彩,秒秒幸福。
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢
页:
[1]