【吾爱2013CM大赛解答】--苏紫方璇--内嵌汇编KeyGen
偷了懒,就直接内嵌了部分汇编,嘿嘿。。。不为得奖啥的,只是为了好玩。。。。
注册机的代码一并附上了,懒得下的朋友可以直接看核心代码。。
function HexToInt(const S: String): DWORD;
asm
PUSH EBX
PUSH ESI
MOV ESI, EAX
MOV EDX,
XOR EAX, EAX
XOR ECX, ECX
TEST ESI, ESI
JZ @@2
TEST EDX, EDX
JLE @@2
MOV BL, $20
@@0:
MOV CL,
INC ESI
OR CL, BL
SUB CL, '0'
JB @@2
CMP CL, $09
JBE @@1
SUB CL, 'a'-'0'-10
CMP CL, $0A
JB @@2
CMP CL, $0F
JA @@2
@@1:
SHL EAX, 4
OR EAX, ECX
DEC EDX
JNZ @@0
JMP @@3
@@2:
XOR EAX, EAX
@@3:
POP ESI
POP EBX
RET
end;
function GiveMeKey(szstring:PChar):string;stdcall;
var
i,DwTemp:DWORD;
begin
Result:='';
for i:=0 to Length(szstring) - 1 do
begin
DwTemp:=hexToInt(szstring);
ASM
PUSHAD
MOV EBX,szstring
ADD EBX,I
XOR EAX,EAX
MOV AL,BYTE PTR DS:
LEA EAX,DWORD PTR DS:
CDQ
SUB EAX,EDX
SAR EAX,1
AND EAX,$FF
MOV DwTemp,EAX
POPAD
end;
Result:=Result+inttohex(DwTemp,2);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text :=GiveMeKey(PChar(Edit1.Text));
end;
厉害啊 大牛,内联汇编我还不会呢。学习下怎么修改代码。 {:1_918:}怎么不教一下怎么从程序找出代码内嵌使用 哥们网址写错啦 Hmily 发表于 2013-12-16 23:33 static/image/common/back.gif
哥们网址写错啦
额,对不住,下次注意,汗颜。。。。
页:
[1]