aboutsummaryrefslogtreecommitdiffstats
path: root/fw/libnames.json
diff options
context:
space:
mode:
authoruser <user@clank>2026-09-29 14:09:05 +0200
committeruser <user@clank>2026-09-29 14:09:05 +0200
commit19a523d9a07e3966815b5b0f13dbd88d9499b319 (patch)
tree1223f0efb0cea73af151894724cbb0e20f2b8a01 /fw/libnames.json
parentASD 0x301 is correctly bounded: OPM lead deflates to reachability-without-impact (diff)
downloadamd-psp-re-19a523d9a07e3966815b5b0f13dbd88d9499b319.tar.gz
amd-psp-re-19a523d9a07e3966815b5b0f13dbd88d9499b319.tar.xz
amd-psp-re-19a523d9a07e3966815b5b0f13dbd88d9499b319.zip
fw: propagate shared-runtime names by content hash; coverage 38% -> 61%
These TAs share one PSP TEE runtime, so the same helper appears byte-identical in several of them. fw/ta_libmatch.py dumps IDA's function list per TA, hashes each function's bytes, and clusters across TAs: 628 functions, 457 distinct bodies, 55 clusters shared by two or more TAs covering 225 instances. Naming a cluster once and propagating by exact content match is much better leverage than renaming anonymous functions individually. The clustering reproduces known answers before being trusted for unknown ones: the 148-byte cluster shared by eight TAs is exactly the entry trampoline already named from the header parse, and the 2- and 4-byte clusters are the return stubs already named as the close-session and destroy entry points. Naming discipline kept deliberately tight. Only six clusters got semantic names, the ones whose disassembly proves them: a word-block zero fill present in ten TAs, a bytewise zero fill with alignment fixup in six, the two return stubs, the trampoline and a tail-jump thunk. The other 49 are tagged lib_<hash>_<size>, which records that they are shared runtime rather than TA-specific logic without inventing semantics; several look like a stream or vtable family but probably is not a name. Coverage rises from 38 to 61 percent. The remainder is TA-specific internal logic and is stated as unnamed.
Diffstat (limited to 'fw/libnames.json')
-rw-r--r--fw/libnames.json57
1 files changed, 57 insertions, 0 deletions
diff --git a/fw/libnames.json b/fw/libnames.json
new file mode 100644
index 0000000..a05c92a
--- /dev/null
+++ b/fw/libnames.json
@@ -0,0 +1,57 @@
+{
+ "a80dedbaf7c5a73d59c71b771e348e7607e5b7fca998cf9dcf153421a2eaceb9": "lib_zero_fill_words",
+ "3853955a021a13b485fc22bd1b84670e2ff95ae8ad9d74a2d4e2212c0666c93d": "lib_3853955a_44",
+ "836f1b0217fe4f25f7dc98c92a839d561b2dcb7c4143e9c0c2498ff3e89f85bb": "lib_836f1b02_34",
+ "5f016438f075aa23d3fc07316a4ac552503bbe2e267a4b8090b4189679c8dcaa": "lib_5f016438_18",
+ "3cf46bff2aaba4c22833b6d11fe9eaf3b965faef9bee986b5292fdd487ed6634": "lib_3cf46bff_18",
+ "7fca7c43246efe935ead5531c52a8056a741129ba843acfcd4ba13a4b5234053": "lib_7fca7c43_82",
+ "e4cd8bbc1b336ff3be36594417bf80952a402341a139c50c2ba8c576d2cf7b2d": "lib_e4cd8bbc_96",
+ "3f07c814dbdcfd26473df43452c69e4b770f0437de75db36cc37796498b9714e": "lib_3f07c814_10",
+ "e53fbaaa91c8c1d619fdf964aa5688811d4bc836d42d8276c82ef40863b0c0a7": "lib_e53fbaaa_32",
+ "672a63239992c561e7ed97727a7876ac47e2654d081efb9640920a6a8346c54c": "lib_672a6323_10",
+ "852e460a54cc23652953d8c2bdbb7715df1868b604fce3e7c9f9ee34d83e133b": "lib_852e460a_16",
+ "6e8fb1dbdb600e22db6a6efa7e8a56e056e7cb496378f416743769c6553d5585": "lib_6e8fb1db_182",
+ "2cd8784313a50c2dce77f010467e226badfea198fab9f3a41e83dfe939da47ad": "lib_2cd87843_108",
+ "e6824d52a285d8817fd261bb9470689c0540196624006bc3f55f6abc796c6a49": "lib_e6824d52_24",
+ "1bc4925367c80cc9fb19db3b575332e1bb924329a6086f7ea07aa48eb1395880": "lib_1bc49253_28",
+ "d83c24bf66dd5e4434ec78f8dfa2d7e87be894ffaf0bc141a979667e7a16a135": "lib_d83c24bf_152",
+ "366a1cebd6f1e481f5d77fc1def8b3d27f74055d3f55cc0ab56e23e3f979657b": "lib_366a1ceb_178",
+ "71f661028497c818aac050aa228c6f9e92d753b82d91e2604d145a70676a6f89": "lib_71f66102_20",
+ "78974a434f73381d42d804dc7940c79b3e532fc9e63729c25d45c618fe008a74": "lib_78974a43_20",
+ "a7faaa9b2050fdc0d9c2c07b5dc391f58f364719feccf801a0ca39b1fc4561a4": "lib_a7faaa9b_72",
+ "d3aec19497c02c5348f9ed7837bcb3510145360bf499ab56669408d524bb4de1": "lib_d3aec194_44",
+ "a1b8c8fb1fa17c505ccb575ed48c48f6a5fee25b20690c27bab8a0199ad7ac8e": "lib_a1b8c8fb_10",
+ "06936d0536d64e86c623270163a043c1b484bbc978af8fbf56cd1650cbfb6587": "lib_06936d05_4",
+ "8680f995484160494ff3f5e6c7dade75cd60ae86bea8c00e6c43087a6512a9f9": "lib_8680f995_112",
+ "33b2ae336f550de0e98744de11fac68f962e98270357b7a28fd39fe8ed96d79a": "lib_33b2ae33_16",
+ "b56825b48befbc0678f72d65a630d44b1904bdffc30b5d91f4e5f9a946d7a406": "lib_b56825b4_392",
+ "d732abeab845b0dd330615e1c6446eb3f6981c68939c5963986de14c2b1efa9c": "lib_d732abea_240",
+ "a446f54e238f46687268376de04d14937c87d3579954501b6b7ff33ba1622415": "lib_a446f54e_228",
+ "5487ced78e12d5ea5e74f1ed8ea15f8b58d852826ff021f65bcc554732ae9d4b": "lib_5487ced7_696",
+ "5da1e11f1ffd7a8dfbae9ddc692f2b2e69e690e48cb717c586d5aba85cc046ad": "lib_5da1e11f_220",
+ "eeee582adad29334197751dd2e40716dcb1bd6123e51ba09bb73141af049e083": "lib_eeee582a_42",
+ "e2ae1a4834fe4226ac9274680874c07ef1d952f8a9f0a3194f50d72756ae361a": "lib_e2ae1a48_42",
+ "db876c77ddb08681827d9fb19b88c23c6e83822e527bba0ffa9566f6e9bb2c1b": "lib_db876c77_580",
+ "b1cf532a2394e21e461bf5a531c14053a2bcbc447d21c4c65c627b4141957d54": "lib_entry_trampoline",
+ "bcf5b30812f72c63f3030a9564c2494ef6edb064f8d4b98e417d0315b9d40d1c": "lib_bcf5b308_48",
+ "cede31a886c13f00e258cab9ff4597ba5470a85061ef3e7bccb8b794b52ec07b": "lib_cede31a8_14",
+ "db5482d69d3ec7167e44b5529a0a40a9b33faf71981df144454e7da44e9360cc": "lib_db5482d6_100",
+ "259290c6ec628f49b5e96ab96c2ec07a4c2750f2bb9b9d6cac47330c190c8118": "lib_zero_fill_bytes",
+ "c7dfbb7d02759eacb64dbc916c1bb6f21eabaff1c1032ea5c9176abf7fd28df8": "lib_stub_ret",
+ "a7ddd513d149ea16fdd4db3f82267f83087aeaddd06b5dde5468adb704205fc4": "lib_stub_ret0",
+ "c17598fe035d4eb5d3859fe76bf089167e46b90feae1d9a70f7a63beb51950ef": "lib_c17598fe_22",
+ "137f0289d27a3528ff0747aad2f203f9a86a6c3b44e09721af69eaecb8bc78db": "lib_137f0289_22",
+ "16aa06d99f67d8e2cc926761044d58623efed78d6b0071e5160dbac418c9b41a": "lib_thunk_tailjump",
+ "f6e388c198c32f5a61201235d46f83804b35fb3f7cad11bce078305927d9277f": "lib_f6e388c1_24",
+ "918f1510322ca3035a785bb82e2bc2f5f324db4ad87964c4c580f247342b859e": "lib_918f1510_28",
+ "18cd5c37e872782b79ab2ec6ebe65b0070d83a62cbe40b2c903ae623b91379a7": "lib_18cd5c37_72",
+ "897f4febf19622474628e3d699f62c5cb98ba9be5a9d2d0487fa03a0032604e4": "lib_897f4feb_48",
+ "c457fbe280a04e9e9173d8f2b84cd0a9d5f5cfe84ed23f877cf8ba09b9201789": "lib_c457fbe2_30",
+ "426f2ac9878ad9878d7557107d400053ec2ece9c18572dbbcbd4c9acce5d4a67": "lib_426f2ac9_52",
+ "52b900d8b8c078c6622ad2fdc3aa6595c57c44fee736e2e7adb86f24bbe15d69": "lib_52b900d8_88",
+ "922cdbd26d4069e61b85a813edd59c340858568e9b8038a2dbc887a95dcff440": "lib_922cdbd2_64",
+ "a9e20b9388460c396c5673395c7ae54f0e2273d279cdfd389db2c9ad7160a4ba": "lib_a9e20b93_28",
+ "fe551e1ceecc34d3088beac4c2a78b80264d1bc452873393a7c5dd94ca345117": "lib_fe551e1c_30",
+ "78b55a6d5b794f6e3717051bf9be810ba755b330765feafdb3a8169316dc8891": "lib_78b55a6d_30",
+ "10a06412980e790b4d775670c93cf9f0c78b59714ed51ba59e3d98f0a1d8aa2a": "lib_10a06412_30"
+} \ No newline at end of file