because this is legit and those are false positives, i've seen the source code myself AND i've seen it done in AutoIt, i know cuz i'm using it for AutoIt for a bot i've already made right now :-P . . .Quote:
this a trojan or what?avg free says so(avg gives a lot of false positives i know)but why hasswnt anyone said anything or cllosed the thread.if you actualy did get asm to work in vb6 id love to see the source
vb6 usually doesn't play around w/ asm either... maybe that brought up the false positive? :-PQuote:
vb6 usaualy dossent dive false pos.maby its the packer giving it?
"Trojan horse BackDoor.Hupigon5.FVI";"Infected"
btw-nothin aginst IAmHawtness i just find it suspious
Every single example I've seen with code injection, be it C#, Visual Basic, C++, etc., have all done it in a similar way. I don't see what's so bad about releasing the memory after it's been executed. It's not needed anymore anyways? :sQuote:
Btw, that clsASM class is extremely unsafe.
RThwnd = CreateRemoteThread(h, ByVal 0&, 0, ByVal tmp_Addr, ByVal 0&, ByVal 0&, ByVal 0&)
VirtualFreeEx h, tmp_Addr, UBound(AsmCode) + 1, MEM_RELEASE
You are executing the code and then right away trying to free it.
I am not arguing that. I am saying, you are trying to free it while it is executing...Quote:
Every single example I've seen with code injection, be it C#, Visual Basic, C++, etc., have all done it in a similar way. I don't see what's so bad about releasing the memory after it's been executed. It's not needed anymore anyways? :s
Okay, I can see that you're right now. It returns error 87.Quote:
I am not arguing that. I am saying, you are trying to free it while it is executing...
Google WaitForSingleObject.
Not sure exactly what happens but I am guessing it doesn't free the memory because it is in use. Try calling GetLastError and see what it gives.
VirtualFreeEx h, tmp_Addr, UBound(AsmCode) + 1, MEM_DECOMMIT VirtualFreeEx h, tmp_Addr, UBound(AsmCode) + 1, MEM_RELEASE
[Only registered and activated users can see links. Click Here To Register...]Quote:
Okay, I can see that you're right now. It returns error 87.
However, if I use this:
Instead of MEM_RELEASE only, it doesn't return any error at all.Code:VirtualFreeEx h, tmp_Addr, UBound(AsmCode) + 1, MEM_DECOMMIT VirtualFreeEx h, tmp_Addr, UBound(AsmCode) + 1, MEM_RELEASE
Okay, weird 'cause it works just fine.Quote:
[Only registered and activated users can see links. Click Here To Register...]
Says to not use them together.
Either way, not returning an error doesn't mean it is safe...
Do Ret = WaitForSingleObject(RThwnd, 100) DoEvents Loop Until Ret <> WAIT_TIMEOUT VirtualFreeEx h, ByVal tmp_Addr, 0, ByVal MEM_RELEASE
I wouldn't use WAIT_TIMEOUT, i would use WAIT_OBJECT_0, bcuz timeout is just ur 100 ms (even though i would dout it would take longer than 100ms to execute the code).Quote:
Okay, weird 'cause it works just fine.
This works, too, though:
So since the msdn says not to use MEM_DECOMMIT and MEM_RELEASE together, I guess I should stick to the above code.Code:Do Ret = WaitForSingleObject(RThwnd, 100) DoEvents Loop Until Ret <> WAIT_TIMEOUT VirtualFreeEx h, ByVal tmp_Addr, 0, ByVal MEM_RELEASE