Exetools

Exetools (https://forum.exetools.com/index.php)
-   Source Code (https://forum.exetools.com/forumdisplay.php?f=46)
-   -   Ripping from v0!d keygenme 1 (https://forum.exetools.com/showthread.php?t=20292)

Zeocrack 10-05-2022 16:13

Ripping from v0!d keygenme 1
 
1 Attachment(s)
Dear All

I want to make a keygen from the ripped code from the keygenme. Preparing keygen is very simple in vb, masm or cpp. But I want to ripping code fully from the keygenme.

Don't know what is the issue.

Would you please suggest?
https://mega.nz/file/YggXmQbA#JkKo3pEIDFYynK_YMBMpBhTTGZ2k5Ypm5Iy_TBGlF0s

Note: not sure external link for this case is allowed or not.


Thanks

sendersu 10-06-2022 15:42

What is the specific goal you are trying to reach?
is it that you want to rip code from vcrkme01.exe into your keygen.asm project or smth else
PS keygen.exe is crashing in my case (silent close on Generate button)
vcrkme01.exe is doing nothing (if filled in both fields and pressing [Check] button

Zeocrack 10-06-2022 18:44

Thanks for reply. I just want rip from keygenme and make a keygen . Yes the keygen is closing but I couldn't find why. The goal is learn ripping and make it workable.

Thanks

sendersu 10-08-2022 23:09

Hi Zeocrack
I've analyzed your code, the culprit looks like comes from ripped code
it is the assembly instruction

mov ebp, temp

which is overwriting value of register ebp (which is used when you call any WinAPI + passing some local variable

eg in your case - after you damaged correct ebp value you are calling afterwards this:

invoke SetDlgItemText,hWnd,ID_OUTPUT,addr buffer

and it translates to the following asm code:

CPU Disasm
Address Hex dump Command Comments
004012DE |. 68 1E314000 PUSH OFFSET 0040311E ; /Text = "Z-K25494-2549"
004012E3 |. 6A 65 PUSH 65 ; |ControlID = 101.
004012E5 |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hDialog
004012E8 |. E8 AB000000 CALL <JMP.&user32.SetDlgItemTextA> ; \USER32.SetDlgItemTextA

and the crash is on the line which is trying to use the (damaged) value of EBP register...


usually app should not use EBP as data register, so either do not use it (use another one), or if you need to use it - do the push ebp ... change ebp + math ...pop ebp

chants 10-10-2022 04:15

In fact ebp/rbp is used by the x86 architecture as the base pointer for the stack specifically in instructions enter and leave.

If the frame is managed only via esp/rsp with push, pop, call, ret and add/sub, then the ebp could actually be used on effect as an ordinary register. It also may have some nuances in how it appears in the addressing modes.

In general, addressing modes combined with opcode specific register uses can help infer optimal register allocation for a given task.


All times are GMT +8. The time now is 18:03.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX