RELEASE Noexs Remote Debugger

Discussion in 'Switch - Emulation, Homebrew & Software Projects' started by matt123337, Jul 26, 2018.

  1. Wolf85

    Wolf85 Member

    Newcomer
    1
    Feb 29, 2016
    United States
    i keep getting this error on first search
    Code:
    me.mdbell.noexs.core.ConnectionException: Unable to fully read data. Expected 2 bytes, but we only read:0
        at me.mdbell.noexs.core.IConnection.readShort(IConnection.java:66)
        at me.mdbell.noexs.core.IConnection.readUShort(IConnection.java:59)
        at me.mdbell.noexs.core.IConnection.readInt(IConnection.java:55)
        at me.mdbell.noexs.core.IConnection.readResult(IConnection.java:39)
        at me.mdbell.noexs.core.Debugger.readmem(Debugger.java:267)
        at me.mdbell.noexs.ui.services.MemorySearchService$SearchTask.createDump(MemorySearchService.java:373)
        at me.mdbell.noexs.ui.services.MemorySearchService$SearchTask.fullSearch(MemorySearchService.java:244)
        at me.mdbell.noexs.ui.services.MemorySearchService$SearchTask.call(MemorySearchService.java:189)
        at me.mdbell.noexs.ui.services.MemorySearchService$SearchTask.call(MemorySearchService.java:172)
        at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at javafx.graphics/javafx.concurrent.Service.lambda$executeTask$6(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/javafx.concurrent.Service.lambda$executeTask$7(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
    
    any ideas?
     
  2. Wolf85

    Wolf85 Member

    Newcomer
    1
    Feb 29, 2016
    United States
    Solved? forgot to add the debug mode line.
     
  3. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    New to Noexs. For some reason it wont connect. I dont get the option of choosing noexs and cfw in the other firmware boot option. Tried to follow what was on page 9 but still am a bit confused.
    Edit
    Redid the hekate.ini file and double checked to make sure that java 10 was installed. Port 7331 is open. The kip file is on the root of my sd card. When I load cfw what should I load? By that i mean just your basic cfw or is there a special cfw i need to run?
    Edit 2.
    Got it to run and connect. Should be fun.
     
    Last edited by wiitendo84, Jul 10, 2019
  4. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    Alright so right now I'm having a problem connecting. It's saying that tcpgecko is already attached. I don't have it attached to any other games.
     
  5. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    What does the thread option do on the tab with pointers?
     
  6. DrummerIX

    DrummerIX Member

    Newcomer
    1
    Sep 15, 2016
    United States
    It took me some time to get this working for me on my Switch with an emu partition and firmware 8.1.0 on it. I'm using the latest version of Hekate (5.0 I think) and latest version of Atmosphere (0.9.2).

    I had to add the Noexs option in my hekate.ipl as follows:

    {--------Noexs----------}
    [Noexs]
    fss0=atmosphere/fusee-secondary.bin
    kip1=modules/noexs/noexs.kip1
    kip1patch=nosigchk
    atmosphere=1
    debugmode=1
    fullsvcperm=1

    This seemed to do the trick for me if I hold down L while starting the game. I put noexs.kip1 in the modules/noexs folder on my sd card. Anyway, I hope this helps some people get it working.
     
  7. KuranKu

    KuranKu I am KranK

    Member
    6
    Jan 13, 2019
    Israel
    Israel
    Last edited by KuranKu, Jul 14, 2019
    Vidness, Stoned and hippy dave like this.
  8. Jonhy

    Jonhy GBAtemp Regular

    Member
    4
    May 22, 2016
    United States
    Wish I knew about this earlier. Thanks.

    Edit: Is there anyway to turn it off for when I don't need it, to save on memory?
     
    Last edited by Jonhy, Jul 14, 2019
  9. KuranKu

    KuranKu I am KranK

    Member
    6
    Jan 13, 2019
    Israel
    Israel
    Kosmos toolbox lets you toogle sysmodules on the go

    Check the config file to see how they read by kosmos toolbox sdmc:/switch/kosmostoolbox/config.json

    Add your module and start kosmos toolbox and go to background services and toogle it on/off

    ^^
     
    Last edited by KuranKu, Jul 14, 2019
    Jonhy likes this.
  10. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    Make sure i got this correct. To find a pointer i have to do these steps.
    First find the address of the value youre searching for. Like health
    Then when you find it, go to tools and right click on main memory and select memory start.
    Right click on it again and select pointer statt.
    Go to end of main memory and select memory end.
    Go to pointer search and select the last memory dump you made.
    Put in the address you found and max offset as well.
    Click search and it shoule bring up the pointers it finds.

    My problem is unless i go to a very high offset, all of my pointers to this address are negative. None are positive. Any suggestions as to what to do?
     
  11. Deathwing Zero

    Deathwing Zero GBAtemp Regular

    Member
    3
    May 22, 2010
    Canada
    Can-uh-duh
    It's not positive and negative. It's plus and minus. Addition and Subtraction. Also no, that's not how you find pointers.

    Tools tab: Right click main and click Pointer Search (Main)
    Next right click first CODE_MUTABLE region and click Pointer Search (Filter Min & Min)
    Find your address then paste that into the address tab in Pointer Search
    Click browse and select your _FIRST_ search dump.

    By first search dump that means the very first search you did while looking for the address. This is because this will contain the relevant sections of memory to find the pointer. The further down the list you go the less chance you have of finding the correct pointer because it will cut those areas out. Also, for step 2 it says "Pointer Search (Filter Min & Min)" but it really means "Pointer Search (Filter Min & Max)" it will automatically fill in the start and end addresses of the CODE_MUTABLE block of memory in the pointer search. All of this needs to be done in the same launch of the game. If you do it at different times, say you find the address, close the game and have dinner, then launch the game and continue, the addresses will change and you will need to start over.
     
    wiitendo84 likes this.
  12. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    I appreciate the info on this. I was going by on page 9 because that's the only info I could find out about using the pointer search. Alright I'll give it a try out and see if it works. Thanks again.

    EDIT:
    Can a pointer be like this and work? [main+15d3ed0] - 169794
    I thought both would have to be plus. But most of the pointers I am finding are either main - etc - etc
     
    Last edited by wiitendo84, Jul 15, 2019
  13. abadidea

    abadidea Advanced Member

    Newcomer
    3
    Jul 18, 2018
    Canada
    Usually you’ll want a positive pointer, but if you’re getting the same negative pointer on multiple reboots.. opening and closing the app a few times..

    Then most likely you should be good.
     
    wiitendo84 likes this.
  14. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    Thats the problem. Im getting an insane amount of pointers like this main -value -value. Ive found a couple of main + value -value. Could it be that i may have to up the value of the offset to find it? Its just i dont remeber it being this hard on the wii u but we also had that pointer program that we could use. So frustrating lol
     
  15. Deathwing Zero

    Deathwing Zero GBAtemp Regular

    Member
    3
    May 22, 2010
    Canada
    Can-uh-duh
    As far as I'm aware [main-offset] -offset is not impossible, but rare. Look at this image here. Main is highlighted, the first CODE_MUTABLE block (from main, I neglected to say that earlier, sorry) is 2 lines down at address 4891F2B000. In this game (Pokemon Let's Go Eevee) there are several CODE_MUTABLE regions in a row. So you would right click on the first one and click Pointer Search Min. Then right click on the last one (just before sdk) and click Pointer Search Max.

    Without seeing the memory table for the game you're working on I can't say one way or another whether [main-offset] is correct or not. It's not something I've personally seen but I've only worked on 2 games. To verify it you could parse the pointer and see if it's correct. If it's correct it'll point you to the address of your pointer, whose value should be the address of the value you're looking to modify. To parse it, it's at the bottom of the first tab (see the image I posted above).

    Or you could use a calculator. But you would still need Noexes connected to give you the address. Calculate like so:
    [main+c75680] + 14
    Main = 2B02204000

    2B02204000 + C75680 = 2B02E79680

    Add 2B02E79680 to watchlist on Noexes

    Value of 2B02E79680 = 0000003437E8A550

    3437E8A550 + 14 = 3437E8A564

    3437E8A564 is the address with the value you're looking for. You can add that to the watchlist, or use the memory viewer to peek and check if it's correct. You can poke from memory viewer too but it's easier to just use the watchlist. As far as I remember the watchlist can parse pointers in the address section, so you could just paste [main+c75680] + 14 and it would parse it correctly. I haven't used it for a while since it broke on 6.2, so I don't remember fully, sorry.

    EDIT:
    As for the question you had earlier, yes, [main+offset] -offset will work fine. I converted an SX OS cheat (before Atmosphere's dmnt:cht came out) to Noexes and the result was [main+16174f8] -61acc0, which was correct. If you get a pointer that's layers deep, it could easily be [[[[main+offset]-offset]+offset]-offset] -offset for example.
     
    Last edited by Deathwing Zero, Jul 16, 2019
  16. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    I'm working on resident Evil HD. I've been talking with Retroboy about it as well but he's using sx os while I'm using noexs. Both of us agree that the health for both Jill and Chris should be on one address. Every release of it that has cheats has it as one address. I know the health values for both of them, Chris always starts with 1400 while Jill always starts with 960. I've been able to find the address but of course with how the switch loads the memory, they aren't static. I've noticed that also in this game that whenever I go to view the memory regions on different loads, heap is sometimes before main while sometimes main is before heap. So i figured there has to be a pointer due to that. Health value always changes addresses. Now if I'm hooked up to it and switch characters, the health address is the same for both. So if I find the address with chris and decide to redo it and look at Jill. The address works for her as well.

    Edit:
    Doing what you said using this specific pointer. [main-179c57fc48] + 13ecc Now my address for health is at 441785A25C

    I took my Main address 5BB3E04000, subtract 179c57fc48. Got 44178843b8. Put that into my watch list and got the following 0000004417846390.
    Added the 13ecc to that and got my address for the health value at 441785a25c.

    That should be my pointer correct?
     
    Last edited by wiitendo84, Jul 16, 2019
  17. Deathwing Zero

    Deathwing Zero GBAtemp Regular

    Member
    3
    May 22, 2010
    Canada
    Can-uh-duh
    Heap being before main and after main sometimes happens. That's just ASLR at work. That's why you get pointers that are relative to a point, so they will always be in that location, whether main is first or last. For example on PC a pointer would be game.exe+offset +/-offset. Anyway, if that address is the one you found health on, then you should be correct in that being the health pointer. Then you just have to test it. Close the game completely, restart it. Reconnect Noexes and slap that pointer into the parse and see if you find health. If you do, your pointer works. I usually do 1 further step and restart the switch after and test it again, but this has proven unnecessary. I'm paranoid though so I do it anyway.

    EDIT:
    So long as it lands on the correct address, it'll always work, even if you update your firmware version. The only time it will change is if the game receives an update. That's why SX OS and dmnt:cht use build ids.
     
    Last edited by Deathwing Zero, Jul 16, 2019
  18. wiitendo84

    wiitendo84 GBAtemp Regular

    Member
    4
    Jan 3, 2014
    United States
    New Albany, Indiana
    Yeah its weird that while it points to the address it doesnt work when i put it in as a code. So its not the right one. Going to try it again but im getting a ton of pointers lol. Trying all is probably going to give me a head ache.

    Edit.
    My switch is down right now. But i remembered back in the day when i was doing army men sarges war, that there was a problem with finding the health code for it. Man i dont even think that i can find the info that i did for it. And that site is most definitely no more either. A wealth of knowledge gone...
     
    Last edited by wiitendo84, Jul 17, 2019
  19. masagrator

    masagrator File digger

    Member
    9
    Oct 14, 2018
    Poland
    I'm trying to get this to work by usb.
    sysmodule nsp, 7.0.1, hekate 5.0.1, atmosphere 0.9.2
    Code:
    [Noexs]
    fss0=atmosphere/fusee-secondary.bin
    kip1patch=nosigchk
    atmosphere=1
    debugmode=1
    fullsvcperm=1
    And still Unable to connect.
     
  20. hippy dave

    hippy dave BBMB

    Member
    15
    Apr 30, 2012
    United Kingdom
    USB isn't implemented on the Switch side yet, have to go wifi.
     
Loading...