if you want something fun to happen, run `c++filt _ZN8iloveyouIS_S_S_S_S_EIS0_S0_S0_S0_S0_EIS1_S1_S1_S1_S1_EIS2_S2_S2_S2_S2_EIS3_S3_S3_S3_S3_EIS4_S4_S4_S4_S4_EIS5_S5_S5_S5_S5_EIS6_S6_S6_S6_S6_EIS7_S7_S7_S7_S7_EIS8_S8_S8_S8_S8_EIS9_S9_S9_S9_S9_EE`
-
Show this thread
-
in case you're wondering, that's a DoS against demanglers, a symbol that expands to a signature that's at least 4GB long
9 replies 28 retweets 133 likesShow this thread -
I put `void [see above]() {}` in a file, compiled it, opened the object with Binary Ninja and it allocated so much the entire system instantly ground to a halt, nice people with IDA: does this also work against IDA, I wonder?
3 replies 6 retweets 60 likesShow this thread -
Replying to @whitequark
Doesn't seem to do anything to IDA 6.95 (don't have 7.x on this machine). It just doesn't demangle it. No evidence of slowdown or anything interesting. Maybe their demangler is more restrictive though?
1 reply 0 retweets 3 likes -
Replying to @marcan42 @whitequark
Honestly I wouldn't be surprised if it just doesn't support some feature you're using. Do you have a non-DoS minimal example using the same features/constructs?
2 replies 0 retweets 3 likes -
-
Replying to @whitequark
Both work, DoS one doesn't.pic.twitter.com/lQcjskUUfd
2 replies 1 retweet 4 likes -
Replying to @marcan42
what about _ZN3fooIS_EIS0_EE ? if that one works they have a measure against this DoS vector :D
1 reply 0 retweets 4 likes
Yup, looks like they've got this one covered. .text:0000000000000015 ; foo<foo><foo<foo>> .text:0000000000000015 public _ZN3fooIS_EIS0_EE .text:0000000000000015 _ZN3fooIS_EIS0_EE proc near
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.