[{"data":1,"prerenderedAt":329},["ShallowReactive",2],{"project-41377960":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":38,"post_text":40,"what":41,"said":85,"maker_in_thread":159,"shape":165,"grid":170,"attempts":293,"same_week":294,"maker_shows":32,"maker_hidden":321,"reader_version":322,"card":323},"41377960","IPA","A GUI for exploring inner details of PDFs","title","Show HN: IPA, a GUI for exploring inner details of PDFs","https:\u002F\u002Fgithub.com\u002Fseekbytes\u002FIPA","github.com","nicolodev",1724840572,2024,270,50,259,3515,8,"legend","dev_tools","pdf inspection tool","desktop_app",[24,25,26,27],"pdf inspector","pdf internals","pdf raw objects","pdf debugging","debated",0.067,{"positive":31,"neutral":32,"mixed":33,"critical":31},2,1,0,5,{"execution":36,"privacy":37},{"positive":33,"critical":31},{"positive":33,"critical":33},[34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,33,33,33,33,33,33,33,32,32,33,33,33,33,39,33,33,33,33,33,33,33],3,null,{"problem":42,"audience":49,"pricing":40,"motivation":53,"time_to_build":40,"stack":63,"openness":84,"stage":84,"team_size":84},{"value":43,"source":44,"evidence":45},"Hard to see the internal structure and raw objects of a PDF file","maker",[46],{"id":47,"by":11,"text":48},"41379307","Thanks for the list, the idea behind my tool was to try to code something that might fit an analyst that would take a fast look at the PDF. I'm also trying to figure out some…",{"value":50,"source":44,"evidence":51},"analysts who take a quick look at PDF files",[52],{"id":47,"by":11,"text":48},{"value":54,"source":44,"evidence":55},"Make a PDF structure analysis tool with a GUI, without CLI flags, and add heuristics to highlight peculiar content",[56,57,60],{"id":47,"by":11,"text":48},{"id":58,"by":11,"text":59},"41383476","> mutool clean -d in.pdf out. pdf My tool can do exactly the same (viewing internal structure, exporting objects, and see the uncompressed raw content for stream) with a…",{"id":61,"by":11,"text":62},"41384211","yeah I agree, and while everyone is suggesting tools which are really good but I designed mine to get rid of the flags and CLI interface. Good for tech people that keeps…",[64,70,74,78],{"value":65,"source":44,"evidence":66},"Rust",[67],{"id":68,"by":11,"text":69},"41379191","I'd suggest you to code something along popular libraries for PDF manipulation. I've used pdf-rs for the tool.",{"value":71,"source":44,"evidence":72},"egui",[73],{"id":58,"by":11,"text":59},{"value":75,"source":44,"evidence":76},"pdf-rs",[77],{"id":68,"by":11,"text":69},{"value":79,"source":44,"evidence":80},"WebAssembly",[81],{"id":82,"by":11,"text":83},"41379655","Nice! My tool should be runnable in the browser thanks to wasm compatibility with Rust + egui :) Btw I've just tried it, and it's a little bit buggy in Safari with a 504kb PDF…","unknown",{"praise":86,"objections":99,"requests":119,"questions":124,"alternatives":132},[87],{"value":88,"source":89,"evidence":90},"Useful alternative to existing PDF inspection tools","commenter",[91,95],{"id":92,"by":93,"text":94},"41379101","svat","This is cool! Here are some other similar(?) tools, for seeing the inner contents of a PDF file (the raw objects etc), but I haven't compared them to this tool here: -…",{"id":96,"by":97,"text":98},"41379159","nbenitezl","For exploring the inners of a PDF you also have RUPS[1] which is open source and easily installed in Linux through flathub[2]. [1] https:\u002F\u002Fitextpdf.com\u002Fproducts\u002Frups [2]…",[100,111],{"value":101,"source":89,"evidence":102},"Crashes when opening PDFs",[103,107],{"id":104,"by":105,"text":106},"41380317","jerknextdoor","I was curious to try this out as it might actually solve a minor problem of mine right now, but it crashed as soon as I tried to open a PDF. Installed from git using cargo 1.80.1…",{"id":108,"by":109,"text":110},"41385380","mdaniel","heh, parsing PDF files from the wild is practically a community driven fuzzer",{"value":112,"source":89,"evidence":113},"Existing tools like mutool and RUPS already cover this",[114,118],{"id":115,"by":116,"text":117},"41383338","aidos","Mutool is the one I suggest to people. The easiest way to understand a PDF is to decompress it and then just read the contents. ``` mutool clean -d in.pdf out.pdf ``` At that…",{"id":96,"by":97,"text":98},[120],{"value":121,"source":89,"evidence":122},"Support for exporting raw streams and saving objects",[123],{"id":82,"by":11,"text":83},[125],{"value":126,"source":89,"evidence":127},"Is it safe to open potentially malicious PDFs with it?",[128],{"id":129,"by":130,"text":131},"41387283","eviks","Since this mentions malware, is this tool safe to use to open it? Or do you still need to use other protection methods?",[133,137,141,145,152],{"value":134,"source":89,"evidence":135},"RUPS (iText)",[136],{"id":96,"by":97,"text":98},{"value":138,"source":89,"evidence":139},"mutool",[140],{"id":115,"by":116,"text":117},{"value":142,"source":89,"evidence":143},"PDFSyntax",[144],{"id":92,"by":93,"text":94},{"value":146,"source":89,"evidence":147},"ReportMill PDF viewer",[148],{"id":149,"by":150,"text":151},"41379623","jeffreportmill1","Great work! I'm sorry to be another jerk posting a link to something similar, but here is my solution, running in the browser (just drag and drop your PDF in):…",{"value":153,"source":89,"evidence":154},"PDFedit",[155],{"id":156,"by":157,"text":158},"41379284","mananaysiempre","The venerable PDFedit[1] more or less forces you to confront the internal structure of the PDF file as well. [1] http:\u002F\u002Fpdfedit.cz\u002Fen\u002Findex.html",{"comments":160,"answered":31,"key":161},9,[162,163,164],{"id":47,"text":48},{"id":58,"text":59},{"id":61,"text":62},{"commenters":166,"max_depth":167,"maker_replies":160,"first_comment_mins":168,"lifespan_hours":169},30,6,168,325,[171,173,175,177,180,183,186,187,189,192,193,194,197,200,203,204,205,207,210,213,216,219,221,226,228,231,234,235,237,239,242,245,247,250,253,254,257,260,263,266,269,271,275,278,281,283,285,287,289,291],[92,33,34,172,93,33],"project\u002Fpositive\u002Fnone",[156,33,33,174,157,33],"other\u002Fneutral\u002Fnone",[47,33,33,176,11,32],"project\u002Fneutral\u002Fidea",[178,33,33,174,179,33],"41381703","whizzter",[181,33,33,174,182,33],"41381923","desgeeko",[184,33,33,174,185,33],"41506671","mistrial9",[115,33,33,174,116,33],[58,33,33,188,11,32],"project\u002Fpositive\u002Fdesign",[190,33,33,174,191,33],"41384024","richardw",[61,33,33,188,11,32],[96,32,33,174,97,33],[195,32,33,196,11,32],"41379175","commenter\u002Fneutral\u002Fnone",[198,32,33,174,199,33],"41390295","whizzx",[201,32,33,174,202,33],"41386759","lolinder",[149,31,33,174,150,33],[82,31,33,174,11,32],[206,31,33,174,150,33],"41386761",[208,39,33,174,209,33],"41382336","giancarlostoro",[211,39,33,212,11,32],"41382367","project\u002Fneutral\u002Fdesign",[214,39,33,215,109,33],"41385404","other\u002Fneutral\u002Fdesign",[217,39,33,174,218,33],"41385975","sexy_seedbox",[220,39,33,174,109,33],"41386420",[222,223,34,224,225,33],"41379413",4,"maker\u002Fpositive\u002Fnone","AdmVonSchneider",[227,223,33,196,11,32],"41379486",[229,34,33,174,230,33],"41387483","aquafox",[232,167,33,174,233,33],"41379130","AlanYx",[68,167,33,196,11,32],[236,167,33,174,157,33],"41379330",[238,167,33,174,182,33],"41382171",[240,167,33,174,241,33],"41385301","verdverm",[243,167,33,174,244,33],"41385935","analog31",[246,167,33,174,241,33],"41386684",[104,248,32,249,105,33],7,"project\u002Fcritical\u002Fexecution",[251,248,33,252,11,32],"41380355","project\u002Fneutral\u002Fexecution",[108,248,32,249,109,33],[255,18,33,174,256,33],"41380971","ZoomZoomZoom",[258,18,33,174,259,33],"41381251","dr_kiszonka",[261,18,33,174,262,33],"41381371","darknavi",[264,18,33,174,265,33],"41382656","darby_nine",[267,18,33,174,268,33],"41389842","mkl",[129,160,39,270,130,33],"project\u002Fneutral\u002Fprivacy",[272,273,33,174,274,33],"41379647",10,"geekodour",[276,273,33,174,277,33],"41381488","criddell",[279,273,33,174,280,33],"41384841","remram",[282,273,33,174,241,33],"41385309",[284,273,33,174,280,33],"41385554",[286,273,33,174,274,33],"41386139",[288,273,33,174,274,33],"41386158",[290,273,33,174,280,33],"41386764",[292,273,33,174,274,33],"41386124",[],[295,300,304,308,313,317],{"id":296,"name":297,"points":298,"category":299},"41322281","InstantDB",1145,"data",{"id":301,"name":302,"points":303,"category":20},"41384144","Skip",322,{"id":305,"name":306,"points":307,"category":20},"41318133","ghidra-delinker-extension",304,{"id":309,"name":310,"points":311,"category":312},"41358490","Remove-bg",286,"ai",{"id":314,"name":315,"points":316,"category":299},"41339308","ChartDB",227,{"id":318,"name":319,"points":320,"category":20},"41317988","Isaiah",196,false,"v2",{"id":324,"name":5,"line":6,"ai":321,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":325,"top":18,"kw":326,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":327,"url":9,"mix":328,"praise":88,"objection":101,"sub":21},41377960,0.07,[24,25,26,27],"5000000000000000005000000011000030000000",[31,32,33,31],1793991098889]