|
 |
 |
How to get and free memory ,deal with exceptions, in Delphi
|
 |
 |
 |
 |
| Author |
Message |
Cutybabie Member



 Joined: 27 Mar 2009 Posts: 29
|
|
 |
| I dont know how to allocate momory ,get and free memory,keygens that I made ,some of them just have memory exceptions,and I have tried ever possible ways,but still can't solve it,I always confused by API prameters,I have declared them as their saids,but when it runs,there will be some error that cause the process stop in the call.How I deal with these bugs, |
|
|
Date Posted:Tue May 12, 2009 1:23 pmThanks: 4Thanked 1 Times In 1 Posts
|
| Author |
Message |
pseudonym Special Member



 Joined: 20 Feb 2008 Posts: 101
|
|
 |
You should find (with examples) what you need here.
| Use these free links to download now: |
| Code: |
| http://www.delphibasics.co.uk/index.html |
|
If not then I suggest you post source of one of those keygens you made. |
|
|
Date Posted:Tue May 12, 2009 1:57 pmThanks: 9Thanked 3 Times In 3 Posts
|
| Author |
Message |
Cutybabie Member



 Joined: 27 Mar 2009 Posts: 29
|
|
 |
| JM-DG keygenme#22 |
|
|
Date Posted:Wed May 13, 2009 6:54 amThanks: 4Thanked 1 Times In 1 Posts
|
| Author |
Message |
Cutybabie Member



 Joined: 27 Mar 2009 Posts: 29
|
|
 |
procedure TForm1.Edit1Change(Sender: TObject);
var
name,name1,s,s1,s2:string;
len,Part1,i,Part2,buf,buf1,temp:integer;
p1,p2,p3,p4:PAnsiChar;
begin
len:=length(edit1.text);
if (len<5) then
edit2.Text :='We need more than 5 chars'
else
begin
name := edit1.Text ;
//name1:='%s' ;
//for i:= 1 to len do
// name[i]:=upcase(name[i]);
ASM
PUSHAD
MOV EBX,1
MOV buf,1
CALL @CalRT
MOV buf,2
CALL @CalRT
MOV buf,3
CALL @CalRT
jMP @OUT
@CalRT:
MOV EDI, $120546
MOV EAX,len
MOV buf1,1
MOV temp,EAX
//LEA EAX,DWORD PTR SS:[EBP-C]
@0047BB90:
MOV EDX,name
MOV EAX,buf1
MOV DL,BYTE PTR DS:[EDX+EAX-1]
MOVZX ECX,DI
SHR ECX,$8
XOR DL,CL
MOV BYTE PTR DS:[EBP+EBX-1],DL
MOV EAX,buf
DEC EAX //Switch (cases 1..3)
JE @0047BBE4
DEC EAX
JE @0047BBFC
DEC EAX
JE @0047BC14
JMP @0047BC2A
@0047BBE4:
MOVZX EAX,BYTE PTR DS:[EBP+EBX-1]
ADD DI,AX
IMUL AX,DI,$507D
ADD AX,$83CE
MOV EDI,EAX
JMP @0047BC2A
@0047BBFC:
MOVZX EAX,BYTE PTR DS:[EBP+EBX-1]
ADD DI,AX
IMUL AX,DI,$2838
ADD AX,$3CF3
MOV EDI,EAX
JMP @0047BC2A
@0047BC14:
MOVZX EAX,BYTE PTR DS:[EBP+EBX-1]
ADD DI,AX
IMUL AX,DI,$83D3
ADD AX,$0EB5A
MOV EDI,EAX
@0047BC2A:
INC EBX
INC buf1
DEC temp
JNZ @0047BB90
RET
@OUT:
MOV P1,EBP
/////////////////////
POPAD
end;
//part1:=wsprintf(p1,p2);
s:=p1;
part1:=length(s);
for i:=1 to part1 do
begin
temp:=ord(s[i]);
s1:=s1+inttohex(temp,2);
end;
s2:=copy(s1,1,2*len)+'-'+copy(s1,2*len+1,2*len)+'-'+copy(s1,4*len+1,2*len);
edit2.Text :=s2+'MTZ';
end;
end;
...................................................
run it can display right serialz,but it pops up anoying error information. |
|
|
Date Posted:Wed May 13, 2009 6:56 amThanks: 4Thanked 1 Times In 1 Posts
|
| Author |
Message |
pseudonym Special Member



 Joined: 20 Feb 2008 Posts: 101
|
|
 |
I think you corrupt the stack with:
| Code: |
| MOV BYTE PTR DS:[EBP+EBX-1],DL |
Don't use ebp use a buffer with pointer to it in esi and replace all refs to ebp in your source with esi. There may be a more elegant solution but it works without problems if you do it this way. |
|
|
Date Posted:Wed May 13, 2009 9:21 amThanks: 9Thanked 3 Times In 3 Posts
|
Astalavista Forum Index :: Free Talk About Cracking :: How to get and free memory ,deal with exceptions, in Delphi
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|