Jump to content
View in the app

A better way to browse. Learn more.

Tuts 4 You

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hello All,

This is My Second KeygenMe in Delphi

Solution: Only Keygens Are Allowed.

A Tutorial Would Be An Added Bonus.

Language: Delphi

Packer: UPX. Simply Use "upx -d " to Decompress

Level: You Decide.

Please Solve. Thanks

http://up.ht/1dPLT9w

Edited by XorRanger

Very easy :

DS

1627-44BA

Thanks for the challenge.


sol.7z

this was very difficult for me, thanks for challenge.



XorString db 'THERMODYNAMICS',0 .code Gen proc uses edi esi ebx hWnd:HWND
local dwLen: DWORD
local lpRes[64]: BYTE invoke GetDlgItemText,hWnd,IDC_NAME,addr szName,SizeOf szName .if eax
mov dwLen,eax
lea esi, szName
xor ecx,ecx
.while byte ptr[esi] != 0
xor eax,eax
lodsb
xor al, byte ptr[XorString][ecx]
push ecx
invoke wsprintf,addr lpRes,CTEXT("%d"),eax
invoke lstrcat,addr szKey,addr lpRes
pop ecx
inc ecx
.if ecx > 0Dh
xor ecx,ecx
.endif
.endw
invoke lstrlen,addr szKey
invoke CRC16,0, addr szKey, eax invoke wsprintf,addr lpRes,CTEXT("-%X"), eax
invoke lstrcat,addr szKey,addr lpRes
.else
invoke SetDlgItemText,hWnd,IDC_KEY,CTEXT("Name! ?")
ret
.endif
invoke SetDlgItemText,hWnd,IDC_KEY, addr szKey
Ret
Gen endp

 


may be, i did code it the way you thought as in your code is a bug, e.g. if the name is > then the xorstring the next xoring value is taken from nirvana !


but i could be wrong.


Edited by sama

  • Author

@DimitarSerg, Nice Try But The Challenge Was a KeygenME, So a Keygen is The Only Valid Solution.

  • Author

@ChOoKi, I Must Confess You are a god at What You Do. Thanks For Solving This..........

  • Author

@sama, Good Job. It Was Not A Bug, It Was Intentional.

Here is The Snippet

Constant := 'THERMODYNAMICS';

if

I < Length(Constant)

then

begin

TempXor := Ord(Name) Xor Ord(Constant);

TempXorString := TempXorString + IntToStr(TempXor);

end

else

begin

TempXor := Ord(Name) Xor Ord(Constant[Length(Name) - Length(Constant)]);

TempXorString := TempXorString + IntToStr(TempXor);

end;

not need snippet


 


lets say name is 29 chars


constant is 14 chars


 


so now 29 -14 == 15 (hope i calculate right)


 


according to your code now char name[15] is xored with char at constant[15]


but there is nothing except garbage (in this example would be a 00 due the fact that string is zero ended.


 


anyway, as said before, i could be wrong, maybe a specialist like Chooki(we all know of his capabilities) would enlight us.


Edited by sama

  • Author

@sama, It seems You are right. Thanks For Figuring it Out.

It wasn't a big issue, that's why my solution had already taken care of it by:


 


1) Limiting NameBox to 28 characters.


2) showing message 'Name length should be 1~28'


 


:peace:


thanks Chooki, now i know why i used this line



if uMsg == WM_INITDIALOG
invoke GetDlgItem,hWnd, IDC_NAME
invoke SendMessage,eax,EM_LIMITTEXT,28,0
  • 4 weeks later...

Packeged (kgm + kgm unpacked + keygen + tutorial) :peace:


packege.7z

ChOoKi is the best  :king:


  • Author

Nice Tutorial ChOoki, Thanks For This. :peace:


thanks bro ChOoKi


Create an account or sign in to comment

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.