XorRanger Posted November 19, 2014 Posted November 19, 2014 Hello, i need help in porting this code from asm to delphi ( i have tried inlining it but it does not produce the right result) @Test_00452510: movsx eax,byte ptr [esi+$050e858] // =======> $050e858 is pointing to an address in memory lea edx,[eax+esi+1] imul edx,ebx add ecx,edx mov eax,$07ccbfadf imul ecx sub edx,ecx sar edx,9 mov eax,edx shr eax,$01f add eax,edx imul eax,eax,$03e7 inc esi add ecx,eax cmp esi,edi jl @Test_00452510the above code was ripped with code ripper plugin in olly.
kao Posted November 19, 2014 Posted November 19, 2014 (edited) Inline asm will work fine - after you fix some of your bugs. 1) initial EBX value is unknown; 2) initial ECX value is unknown; 3) initial ESI and EDI values are unknown; 4) and don't forget to save/restore all important registers. I prefer to wrap inline asm in pushad/popad, just to be sure. 5) result of your ripped ASM code is in ECX, Delphi by default will ignore that. Make sure you store it in some variable. EDIT: added #5. Edited November 19, 2014 by kao 2
XorRanger Posted November 19, 2014 Author Posted November 19, 2014 thanks Kao for your suggestions but I have spent the better part of today trying to fix the bug ridden asm code but no success that is why I decided to port it in Delphi. well I will keep on trying and keep you updated on my progress. thanks once again.
kao Posted November 19, 2014 Posted November 19, 2014 To port that code to Delphi, you still need to answer my first 3 points about initial register values. If you'd give me few test inputs and expected results, I could try to make the appropriate Delphi code. 1
XorRanger Posted November 20, 2014 Author Posted November 20, 2014 After some good night rest and a Cup of Coffee this morning, I have finally ported the code to work properly (still used inline asm).the problem was the variable i set the result from the asm code was not set to zero on initialization so that caused it to have junk values in memory.Thanks Kao for your help and suggestions, i really appreciate it.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now