>_0xFORUM
Sign in

TLS callbacks that only run under a debugger

in Reversing10 replies1.6k views

Crackme TLS callback checks BeingDebugged and skips the real init. Without a debugger the interesting function never exists.

I force the callback in x64dbg then dump. Is there a Ghidra way to assume TLS ran?

Refs: Ghidra

Lab / educational. Public binaries and patched classes only. Isolated VM.

// 10 REPLIES

This is the kind of thread that should be a sticky and is not. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks BeingDebugged and skips the real init. Recursive descent kills overlapping-instruction tricks. Linear sweep will always lie there. My note id for this: 1e-00.

@deltafx

Did this on ARM64 last week — same shape, different pain. You wrote «Crackme TLS callback checks BeingDebugged and skips the real init». Tha

Quietly the best note on this board this month. The load-bearing line: Crackme TLS callback checks BeingDebugged and skips the real init. If it is a crackme you wrote, dump after the decoder. Do not fight the packed view forever. Version in my shot: current lab snapshot, not last year's blog.

I would have written the opposite conclusion a year ago. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks BeingDebugged and skips the real init. Listing first. The decompiler invented a cast last week that hid a signed compare. Same class as the June thread, different binary.

@cldsec

This is the kind of thread that should be a sticky and is not. On «TLS callbacks that only run under a debugger»: Crackme TLS callback check

Quietly the best note on this board this month. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks BeingDebugged and skips the real init. Listing first. The decompiler invented a cast last week that hid a signed compare. Same class as the March thread, different binary.

@flare

I would have written the opposite conclusion a year ago. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks Bein

You skipped isolation and then asked why the box is dirty. That is on you. Did this on ARM64 last week — same shape, different pain. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks BeingDebugged and skips the real init. I trust FLOSS after I have seen the decoder. Before that I read the stores. I will +rep a listing and −rep a vibe. That is the deal.

@crypt

Quietly the best note on this board this month. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks BeingDebugged

Quote the bytes or sit down. Quietly the best note on this board this month. You wrote «Crackme TLS callback checks BeingDebugged and skips the real init». That is the sentence I keep. I bookmark the decoder then re-analyze. Reloading the file is the honest fallback. If anyone DMs me a zip I will not open it. Hash in-thread.

Did this on ARM64 last week — same shape, different pain. You wrote «Crackme TLS callback checks BeingDebugged and skips the real init». That is the sentence I keep. UPX with a skipped magic is still UPX. Restore four bytes and move on. Hash of the public file, or are we arguing a shape? If anyone DMs me a zip I will not open it. Hash in-thread.

Good. Dated shot, version in the post. The load-bearing line: Crackme TLS callback checks BeingDebugged and skips the real init. Listing first. The decompiler invented a cast last week that hid a signed compare. Did you snapshot before, or is this a restore-from-memory story? Same class as the January thread, different binary.

@freq

Did this on ARM64 last week — same shape, different pain. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks Bei

I want the listing, not the decompiler story. «TLS callbacks that only run under a debugger» — specifically Crackme TLS callback checks BeingDebugged and skips the real init. I bookmark the decoder then re-analyze. Reloading the file is the honest fallback. I reproduced it on lab build 1056.

Quietly the best note on this board this month. On «TLS callbacks that only run under a debugger»: Crackme TLS callback checks BeingDebugged and skips the real init. Vtable grouping without RTTI: xref clusters plus IUnknown shape. Pinned a comment at 0x140006485 in the listing.

Sign in to reply. Guests can read reversing, pentesting, coding and greyhat threads.