Skip to content

Instantly share code, notes, and snippets.

View crazymanarmy's full-sized avatar

crazyman crazymanarmy

View GitHub Profile
crazymanarmy / DiceCTF2023_disc-rev_dis.txt
Last active February 8, 2023 12:52
DiceCTF2023 Reverse disc-rev
f0 push "gimme something:"
f1 cout << "gimme something:"
f2 cin >> flag
f94 mem[2] = ST; {}
push new dict
f63 mem[0] = ST1; 0
push 0
f41 mem[1] = ST; {secr3t_c0d3:1337,flag:"s0_m4ny_opc0d3s_s0_l1ttle_t1m3...30dbb1e2f2216a364acfnopy",magic:{.:319496,0:2184867,1:21925933,2:422628,3:14733726,4:555,6:4695,_:320588772,a:4798,b:3775,c:1163,d:1349,e:2565,f:4295,l:2044,m:433,n:660,o:964,p:1066,s:11733,t:226772,y:764}}
push mem[2]; {secr3t_c0d3:1337,flag:"s0_m4ny_opc0d3s_s0_l1ttle_t1m3...30dbb1e2f2216a364acfnopy",magic:{.:319496,0:2184867,1:21925933,2:422628,3:14733726,4:555,6:4695,_:320588772,a:4798,b:3775,c:1163,d:1349,e:2565,f:4295,l:2044,m:433,n:660,o:964,p:1066,s:11733,t:226772,y:764}}
f77 push 0

Encrypting Strings at Compile Time

Thank you to SpecterOps for supporting this research and to Duane and Matt for proofreading and editing! Crossposted on the SpecterOps Blog.

TLDR: You may use this header file for reliable compile time string encryption without needing any additional dependencies.

Programmers of DRM software, security products, or other sensitive code bases are commonly required to minimize the amount of human readable strings in binary output files. The goal of the minimization is to hinder others from reverse engineering their proprietary technology.

Common approaches that are taken to meet this requirement often add an additional maintenance burden to the developer and are prone to error. These approaches will be presented along with t