1NAME=CC-* 2FILE=bins/mach0/FileDP 3CMDS=<<EOF 4C*~? 5CC~? 6CC-* 7CC~? 8C*~? 9EOF 10EXPECT=<<EOF 1139 1213 130 1426 15EOF 16RUN 17 18NAME=CCf-* 19FILE=bins/mach0/FileDP 20CMDS=<<EOF 21af 22CCf-*~? 23CC hello 24CC world @ $$+32 25CCf~? 26CCf-* 27CCf~? 28EOF 29EXPECT=<<EOF 300 312 320 33EOF 34RUN 35 36NAME=Cs 37FILE=malloc://1024 38CMDS=<<EOF 39w hello world 40Cs @ $$ 41C*~[1] 42EOF 43EXPECT=<<EOF 4412 45EOF 46RUN 47 48NAME=Cs 5 49FILE=malloc://1024 50CMDS=<<EOF 51w hello world 52Cs 5 53C*~[1] 54EOF 55EXPECT=<<EOF 565 57EOF 58RUN 59 60NAME=Cz 61FILE=malloc://1024 62CMDS=<<EOF 63w hello world 64Cz 65C*~[1] 66EOF 67EXPECT=<<EOF 6812 69EOF 70RUN 71 72NAME=Cd : data 73FILE=malloc://1024 74CMDS=<<EOF 75e asm.arch=x86 76e asm.bits=32 77w 909090 78Cd 3 79pd 2 80EOF 81EXPECT=<<EOF 82 0x00000000 hex size=3 delta=0 830x00000000 3930 39 909 84 85 0x00000003 3039 xor byte [ecx], bh 86EOF 87RUN 88 89NAME=Cd : data + align 90FILE=malloc://1024 91BROKEN=1 92CMDS=<<EOF 93e asm.arch=x86 94e asm.bits=32 95w 909090 96Cd 3 97s 1 98pd 2 99EOF 100EXPECT=<<EOF 101 0x00000001 hex length=3 delta=1 1020x00000001 30 39 09 103 104 0x00000003 3039 xor byte [ecx], bh 105EOF 106RUN 107 108NAME=Cs : convert to string 109FILE=malloc://1024 110CMDS=<<EOF 111w hello 112Cs 6 113pd 1 114EOF 115EXPECT=<<EOF 116 0x00000000 .string "hello" ; len=6 117EOF 118RUN 119 120NAME=Cs : concatenated strings bug 121FILE=malloc://1024 122CMDS=<<EOF 123w hello\x00world 124Cs 6 125Cs 6@6 126pd 2 127EOF 128EXPECT=<<EOF 129 0x00000000 .string "hello" ; len=6 130 0x00000006 .string "world" ; len=6 131EOF 132RUN 133 134NAME=Cs : concatenated strings bug 135FILE=malloc://1024 136CMDS=<<EOF 137w hello\x00world 138Cs 6 139Cs 6@6 140pd 2 141EOF 142EXPECT=<<EOF 143 0x00000000 .string "hello" ; len=6 144 0x00000006 .string "world" ; len=6 145EOF 146RUN 147 148NAME=Cs : string count bug 149FILE=malloc://128 150CMDS=<<EOF 151w hello 152Cs 6 153C*~? 154EOF 155EXPECT=<<EOF 1561 157EOF 158RUN 159 160NAME=Ch : hide bytes in pd 161FILE=malloc://128 162CMDS=<<EOF 163e asm.arch=x86 164e asm.bits=64 165e scr.color=false 166wx 554889e54883c768 167Ch 2 168pd 2 169Ch- 170EOF 171EXPECT=<<EOF 172 0x00000000 (2 bytes hidden) 173 0x00000002 89e5 mov ebp, esp 174EOF 175RUN 176 177NAME=Ch : add/del hide bytes 178FILE=malloc://1024 179CMDS=<<EOF 180e scr.color=false 181wx 554889e54883c768 182Ch 2@0x100 183C*~? 184Ch-@0x100 185C*~? 186EOF 187EXPECT=<<EOF 1881 1890 190EOF 191RUN 192 193NAME=Cf should be silent 194FILE=- 195CMDS=Cf 32 2xx 196EXPECT=<<EOF 197EOF 198RUN 199 200NAME=format memory metadata 201FILE=- 202CMDS=<<EOF 203wx 41424344 204Cf 4 x 205pd 1 206EOF 207EXPECT=<<EOF 208 0x00000000 pf x # size=4 2090x00000000 = 0x44434241 210EOF 211RUN 212 213NAME=arm1.bin dword pointers with Cd 214FILE=bins/elf/arm1.bin 215CMDS=<<EOF 216s 0xdb98 217Cd 4[3] 218pd 3 219EOF 220EXPECT=<<EOF 221 0x0000db98 .dword 0x00085038 ; obj.main_arena 222 0x0000db9c .dword 0x000844ac ; obj.check_action 223 0x0000dba0 .dword 0x000663c4 ; str.free__:_invalid_pointer 224EOF 225RUN 226 227NAME=arm1.bin dword pointers with Cd and ahi 1 228FILE=bins/elf/arm1.bin 229CMDS=<<EOF 230s 0xdb98 231Cd 4[3] 232ahi 1 233pd 3 234EOF 235EXPECT=<<EOF 236 0x0000db98 .int32 00111000010100000000100000000000b ; obj.main_arena 237 0x0000db9c .dword 0x000844ac ; obj.check_action 238 0x0000dba0 .dword 0x000663c4 ; str.free__:_invalid_pointer 239EOF 240RUN 241 242NAME=arm1.bin dword pointers with Cd and ahi 8 243FILE=bins/elf/arm1.bin 244CMDS=<<EOF 245s 0xdb98 246Cd 4[3] 247ahi 8 248pd 3 249EOF 250EXPECT=<<EOF 251 0x0000db98 .int32 2050070o ; obj.main_arena 252 0x0000db9c .dword 0x000844ac ; obj.check_action 253 0x0000dba0 .dword 0x000663c4 ; str.free__:_invalid_pointer 254EOF 255RUN 256 257NAME=arm1.bin dword pointers with Cd and ahi 10 258FILE=bins/elf/arm1.bin 259CMDS=<<EOF 260s 0xdb98 261Cd 4[3] 262ahi 10 263pd 3 264EOF 265EXPECT=<<EOF 266 0x0000db98 .int32 544824 ; obj.main_arena 267 0x0000db9c .dword 0x000844ac ; obj.check_action 268 0x0000dba0 .dword 0x000663c4 ; str.free__:_invalid_pointer 269EOF 270RUN 271 272NAME=arm1.bin dword pointers with Cd and ahi 16 273FILE=bins/elf/arm1.bin 274CMDS=<<EOF 275s 0xdb98 276Cd 4[3] 277ahi 16 278pd 3 279EOF 280EXPECT=<<EOF 281 0x0000db98 .dword 0x00085038 ; obj.main_arena 282 0x0000db9c .dword 0x000844ac ; obj.check_action 283 0x0000dba0 .dword 0x000663c4 ; str.free__:_invalid_pointer 284EOF 285RUN 286 287NAME=Ch and CCu on instr with potential LEA cmt 288FILE=bins/pe/ConsoleApplication1.exe 289CMDS=<<EOF 290Ch 6 @ 0x004010fa 291CCu get error @ 0x004010fa 292pd 1 @ 0x004010fa 293EOF 294EXPECT=<<EOF 295 0x004010fa (6 bytes hidden) ; get error 296EOF 297RUN 298 299NAME=C[Chsdmf][*j] without arguments 300FILE=malloc://1024 301CMDS=<<EOF 302k anal/meta/range.0x5=0x5120 303w hello world 304Cs @ $$ 305s 0x100 306e asm.arch=x86 307e asm.bits=32 308w 909090 309Cd 3 310s 0x200 311wx 554889e54883c768 312Ch 2 313s 0x300 314wx 41424344 315Cf 4 x 316s 0x0 317CCu Hello! 318s 0x380 319wx cafebabe00000032 320Cm 8 wwww 321Cs 322?e ---- 323Cd 324?e ---- 325Ch 326?e ---- 327Cf 328?e ---- 329CC 330?e ---- 331Cm 332?e ---- 333C 334?e ---- 335Cs* 336?e ---- 337Cd* 338?e ---- 339Ch* 340?e ---- 341Cf* 342?e ---- 343CC* 344?e ---- 345Cm* 346?e ---- 347C* 348?e ---- 349Csj 350?e ---- 351Cdj 352?e ---- 353Chj 354?e ---- 355Cfj 356?e ---- 357CCj 358?e ---- 359Cmj 360?e ---- 361Cj 362EOF 363EXPECT=<<EOF 3640x00000000 ascii[12] "hello world" 365---- 3660x00000100 data Cd 3 367---- 3680x00000200 hidden Ch 2 369---- 3700x00000300 format 4 x 371---- 3720x00000000 CCu "Hello!" 373---- 3740x00000380 magic 8 wwww 375---- 3760x00000000 ascii[12] "hello world" 3770x00000000 CCu "Hello!" 3780x00000100 data Cd 3 3790x00000200 hidden Ch 2 3800x00000300 format 4 x 3810x00000380 magic 8 wwww 382---- 383Cs 12 @ 0x00000000 # hello world 384---- 385Cd 3 @ 0x00000100 386---- 387Ch 2 @ 0x00000200 388---- 389Cf 4 x @ 0x00000300 390---- 391CCu base64:SGVsbG8h @ 0x00000000 392---- 393Cm 8 wwww @ 0x00000380 394---- 395Cs 12 @ 0x00000000 # hello world 396CCu base64:SGVsbG8h @ 0x00000000 397Cd 3 @ 0x00000100 398Ch 2 @ 0x00000200 399Cf 4 x @ 0x00000300 400Cm 8 wwww @ 0x00000380 401---- 402[{"offset":0,"type":"Cs","name":"aGVsbG8gd29ybGQ=","enc":"latin1","ascii":true}] 403---- 404[{"offset":256,"type":"Cd","name":"","size":3}] 405---- 406[{"offset":512,"type":"Ch","name":""}] 407---- 408[{"offset":768,"type":"Cf","name":"x"}] 409---- 410[{"offset":0,"type":"CCu","name":"Hello!"}] 411---- 412[{"offset":896,"type":"Cm","name":"wwww"}] 413---- 414[{"offset":0,"type":"Cs","name":"aGVsbG8gd29ybGQ=","enc":"latin1","ascii":true},{"offset":0,"type":"CCu","name":"Hello!"},{"offset":256,"type":"Cd","name":"","size":3},{"offset":512,"type":"Ch","name":""},{"offset":768,"type":"Cf","name":"x"},{"offset":896,"type":"Cm","name":"wwww"}] 415EOF 416RUN 417 418NAME=Cs ascii/latin1 419FILE=bins/pe/testapp-msvc64.exe 420CMDS=<<EOF 421Csa @ 0x1400160a0 422Cs~gate 423Cs~ANSI 424EOF 425EXPECT=<<EOF 4260x1400160a0 latin1[18] "latin1 gate: \xce\xbb\xab\xce" 4270x1400160b8 ascii[50] " -- in ConEmu, run `chcp 28591` to see the gate." 4280x140016000 ascii[19] "\tANSI\\esc: \e[33m\r\n" 429EOF 430RUN 431 432NAME=Csj ascii/latin1 433FILE=bins/pe/testapp-msvc64.exe 434ARGS=-z 435CMDS=<<EOF 436Csa @ 0x1400160a0 437Csg @ 0x1400160b8 438Csj 439EOF 440EXPECT=<<EOF 441[{"offset":5368799392,"type":"Cs","name":"bGF0aW4xIGdhdGU6IM67q84=","enc":"latin1","ascii":false},{"offset":5368799416,"type":"Cs","name":"ICAtLSBpbiBDb25FbXUsIHJ1biBgY2hjcCAyODU5MWAgdG8gc2VlIHRoZSBnYXRlLg==","enc":"latin1","ascii":true}] 442EOF 443RUN 444 445NAME=Csg, Csa, Cs. and Cs.. 446FILE=bins/pe/testapp-msvc64.exe 447CMDS=<<EOF 448e str.escbslash=true 449s 0x140016018 450Csa 451Cs*~`s:` 452Cs. 453Cs.. 454pd 1 455Csg 456Cs*~`s:` 457Cs. 458Cs.. 459pd 1 460Csa 4 461Cs.. 462Cs.. @ 0x14001601c # should print nothing 463Csg 4 464Cs.. 465Cs.. @ 0x14001601c # should print nothing 466EOF 467EXPECT=<<EOF 468Csa 2 @ 0x140016018 # \t 469"\t" 470ascii[2] "\t" 471 ;-- str._twideesc:_e_0m: 472 0x140016018 .string "\t" ; len=2 473Cs 19 @ 0x140016018 # \twide\\esc: \x1b[0m\xa1\r\n 474"\twide\\esc: \x1b[0m\xa1\r\n" 475latin1[19] "\twide\\esc: \x1b[0m\xa1\r\n" 476 ;-- str._twideesc:_e_0m: 477 0x140016018 .string "\twide\\esc: \x1b[0m\xa1\r\n" ; len=19 478ascii[4] "\t" 479ascii[4] "\twid" 480EOF 481RUN 482 483NAME=Csg, Csa and Csj 484FILE=bins/pe/testapp-msvc64.exe 485ARGS=-e bin.str.purge=all,!0x140016018 486CMDS=<<EOF 487s 0x140016018 488Csj 489Csa 490Csj 491Csg 492Csj 493EOF 494EXPECT=<<EOF 495[{"offset":5368799256,"type":"Cs","name":"XHR3aWRlXFxlc2M6IFxlWzBt","enc":"iz","ascii":true}] 496[{"offset":5368799256,"type":"Cs","name":"CQ==","enc":"latin1","ascii":true}] 497[{"offset":5368799256,"type":"Cs","name":"CXdpZGVcZXNjOiAbWzBtoQ0K","enc":"latin1","ascii":false}] 498EOF 499RUN 500 501NAME=Cs8 502FILE=bins/elf/strenc 503CMDS=<<EOF 504e str.escbslash=true 505s 0x004021ff 506Cs*~`s:` 507Cs. 508Cs.. 509pd 1 510Cs8 511Cs*~`s:` 512Cs. 513Cs.. 514pd 1 515EOF 516EXPECT=<<EOF 517Cs 61 @ 0x004021ff # utf8> \\u00a2\\u20ac\\U00010348 in yellow:\e[33m \xc2\xa2\xe2\x82\xac\xf0\x90\x8d\x88 \e[0m\n 518"utf8> \\u00a2\\u20ac\\U00010348 in yellow:\e[33m \xc2\xa2\xe2\x82\xac\xf0\x90\x8d\x88 \e[0m\n" 519latin1[61] "utf8> \\u00a2\\u20ac\\U00010348 in yellow:\e[33m \xc2\xa2\xe2\x82\xac\xf0\x90\x8d\x88 \e[0m\n" 520 ;-- str.utf8__u00a2u20acU00010348_in_yellow:e_33m__e_0m_n: 521 0x004021ff .string "utf8> \\u00a2\\u20ac\\U00010348 in yellow:\e[33m \xc2\xa2\xe2\x82\xac\xf0\x90\x8d\x88 \e[0m\n" ; len=61 522Cs8 61 @ 0x004021ff # utf8> \\u00a2\\u20ac\\U00010348 in yellow:\x1b[33m \u00a2\u20ac\U00010348 \x1b[0m\n 523"utf8> \\u00a2\\u20ac\\U00010348 in yellow:\x1b[33m \u00a2\u20ac\U00010348 \x1b[0m\n" 524utf8[61] "utf8> \\u00a2\\u20ac\\U00010348 in yellow:\x1b[33m \u00a2\u20ac\U00010348 \x1b[0m\n" 525 ;-- str.utf8__u00a2u20acU00010348_in_yellow:e_33m__e_0m_n: 526 0x004021ff .string "utf8> \\u00a2\\u20ac\\U00010348 in yellow:\x1b[33m \u00a2\u20ac\U00010348 \x1b[0m\n" ; len=61 527EOF 528RUN 529 530NAME=Cs8 and Csj 531FILE=bins/elf/strenc 532ARGS=-e bin.str.purge=all,!0x004021ff 533CMDS=<<EOF 534s 0x004021ff 535Csj 536Cs8 537Csj 538EOF 539EXPECT=<<EOF 540[{"offset":4203007,"type":"Cs","name":"dXRmOD4gXFx1MDBhMlxcdTIwYWNcXFUwMDAxMDM0OCBpbiB5ZWxsb3c6XGVbMzNtIMKi4oKs8JCNiCBcZVswbVxu","enc":"iz","ascii":false}] 541[{"offset":4203007,"type":"Cs","name":"dXRmOD4gXHUwMGEyXHUyMGFjXFUwMDAxMDM0OCBpbiB5ZWxsb3c6G1szM20gwqLigqzwkI2IIBtbMG0K","enc":"utf8","ascii":false}] 542EOF 543RUN 544 545NAME=str.escbslash and Cs 546FILE=bins/pe/testapp-msvc64.exe 547CMDS=<<EOF 548s 0x140016000 549Csa 550e str.escbslash=true 551Cs. 552Cs.. 553pd 1 554e str.escbslash=false 555Cs. 556Cs.. 557pd 1 558EOF 559EXPECT=<<EOF 560"\tANSI\\esc: \x1b[33m\r\n" 561ascii[19] "\tANSI\\esc: \x1b[33m\r\n" 562 ;-- str._tANSIesc:_e_33m_r_n: 563 ;-- section..data: 564 0x140016000 .string "\tANSI\\esc: \x1b[33m\r\n" ; len=19 ; [02] -rw- section size 8192 named .data 565"\tANSI\esc: \x1b[33m\r\n" 566ascii[19] "\tANSI\esc: \x1b[33m\r\n" 567 ;-- str._tANSIesc:_e_33m_r_n: 568 ;-- section..data: 569 0x140016000 .string "\tANSI\esc: \x1b[33m\r\n" ; len=19 ; [02] -rw- section size 8192 named .data 570EOF 571RUN 572 573NAME=Cd- <size> <repeat> 574FILE=- 575CMDS=<<EOF 576s 0x100 577Cd 4 5 578Cd 579?e ---- 580Cd- 4 3 581Cd 582?e ---- 583s 0x10c 584Cd- 0 2 585Cd 586EOF 587EXPECT=<<EOF 5880x00000100 data Cd 4 5890x00000104 data Cd 4 5900x00000108 data Cd 4 5910x0000010c data Cd 4 5920x00000110 data Cd 4 593---- 5940x0000010c data Cd 4 5950x00000110 data Cd 4 596---- 5970x0000010c data Cd 4 5980x00000110 data Cd 4 599EOF 600RUN 601 602NAME=delete specific type of metadata from addr 603FILE=- 604CMDS=<<EOF 605s 0x100 606w abcd 607Csa 4 608Cf 8 xx 609C 610?e ---- 611Cs- 612C 613?e ---- 614Cf- 615C 616EOF 617EXPECT=<<EOF 6180x00000100 ascii[4] "abcd" 6190x00000100 format 8 xx 620---- 6210x00000100 format 8 xx 622---- 623EOF 624RUN 625 626NAME=C- 627FILE=- 628CMDS=<<EOF 629s 0x100 630w abcd 631Csa 4 632Cf 8 xx 633CCu a string 634C 635?e ---- 636C- 637C 638EOF 639EXPECT=<<EOF 6400x00000100 ascii[4] "abcd" 6410x00000100 format 8 xx 6420x00000100 CCu "a string" 643---- 644EOF 645RUN 646 647NAME=Cd- and C- in issue #8648 648FILE=- 649CMDS=<<EOF 650s 0x100 651Cd 4 1 652C*~Cd 653?e --1-- 654Cd- 4 1 655C*~Cd 656?e --2-- 657Cd 4 1 658Cd- 659C*~Cd 660?e --3-- 661Cd 4 1 662C- 663C*~Cd 664?e --4-- 665Cd 4 1 666C- 4 667C*~Cd 668EOF 669EXPECT=<<EOF 670Cd 4 @ 0x00000100 671--1-- 672--2-- 673--3-- 674--4-- 675EOF 676RUN 677 678NAME=Cd. (#10856) 679FILE=- 680CMDS=<<EOF 681s 0x50 682Cd 4 2 683Cd. 684s 0x100 685Cd. @ 0x50 686EOF 687EXPECT=<<EOF 6884 6894 690EOF 691RUN 692 693NAME=C. 694FILE=bins/elf/arm1.bin 695CMDS=<<EOF 696s 0x0007a23c 697C. 698s 0x00083fc4 699C. 700EOF 701EXPECT=<<EOF 7020x0007a23c ascii[13] "match_symbol" 7030x00083fc4 data Cd 4 7040x00083fc4 CCu "[14] -rw- section size 4 named .init_array" 705EOF 706RUN 707