Jump to content
Tuts 4 You

Can You Help Me Understand This Code


Guest Rockapes

Recommended Posts

Guest Rockapes
Posted

Hi all,

I am trying to produce a keygen, but am a little confused by what is happening in this section...

CompString:

push ebp

mov ebp,esp

sub esp,0000000Ch

push esi

push edi

push ebx

mov [L10087B48],ebp

mov [ebp-04h],eax

mov [ebp-08h],edx

mov ecx,[fDict_RT]

cmp ecx,00000002h

jl L10032496

push edx

push eax

call SUB_L100324AC

mov [ebp-0Ch],eax

jmp L1003249F

L10032496:

call [L10081C04]

mov [ebp-0Ch],eax

L1003249F:

mov eax,[ebp-0Ch]

cmp eax,00000000h

pop ebx

pop edi

pop esi

mov esp,ebp

pop ebp

retn

Your help is appreciated

Rocky :unsure:

Guest Rockapes
Posted

I should make my self clearer, this is part of where the software that I am trying to create a keygen for is comparing information

Rocky

Posted

Without context it is very hard to give meaningful answers. Seeing the name it might compare strings.

Here's some pseudo-c that shows what it does:

int __fastcall CompString(int arg1, int arg2){
if(fDict_RT > 2)
return SUB_L100324AC(arg1, arg2);
else
return *L10081C04();
}

Not like that's very meaningful...

Guest Rockapes
Posted

Thanks for that, its a bit hard to explain because I pretty much know nothing about programming at all except what I have gained from websites.. I have been able to edit the main exe of the program to get about 85% of all functions, however some still do not appear on the menu...So I thought I might try and work out how it is calculating the serial. I know that the main exe refers to this section to compare the serial entered, the problem I am having is understanding what it is comparing it against...bit of a conungram...I am able to send u a full copy of the dll if u like for some further input?? Again all help is appreciated

Thansk again Rocky

Without context it is very hard to give meaningful answers. Seeing the name it might compare strings.

Here's some pseudo-c that shows what it does:

int __fastcall CompString(int arg1, int arg2){
if(fDict_RT > 2)
return SUB_L100324AC(arg1, arg2);
else
return *L10081C04();
}

Not like that's very meaningful...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...