Gecko dotNET release thread (version 0.65 now!)

Started by Link, January 03, 2010, 01:33:37 PM

Previous topic - Next topic

Link

Quote from: Dude on March 30, 2010, 09:19:44 AM
Wow, did you make a comment about building the code wizard before?  Cause I've been thinking on how something like that could be done just a day or two ago along with adding in a pointer search lol if you made a mention of it before then that would explain why I was thinking it XD

It almost feels like this app is gonna be capable of hacking the game FOR YOU.  Turn it on, connect and say GO! XP

Shame that there isn't a pointer search though.  I have to use WiiRD and it only works if it's connected to the gecko.

Loving the updates though, dcx2.  Downloaded the release to try out the code wizard.

If it makes you happy.. I for myself, am currently brain-storming a concept for a seperate pointer search module.. however, as so many people seemed to complain about pointer search being not in it, I am trying to develop it as a module application.. meaning: yes it would work well as its own user control in Gecko dotNET however, it would also happily run independently. Most importantly it will be able to handle memory dumps which contain BOTH MEM1 AND MEM2 at the same time so pointers from MEM1 to MEM2 will be handled!

Panda On Smack

#121
huzzah!

What happened to the convert decimal to hex option on the lower value info input box?

dcx2

That dec -> hex button wasn't for the lower value info box, it was actually for the Different By searches.  It became obsolete once I put the Input Convert context menu everywhere.

If you ever want to convert anything between hex and dec or float, right-click the text box you want to change.  Almost all boxes that might take a value have the Input Convert context menu on them.  Poke values, Breakpoint condition values, etc.

wiiztec

Do you just right click the text boxes or do you have to highlight the text first like WiiRd?
If there's any code at all that you want to be button activated, or even able to toggle on & off, and I have the game, just PM me and I'll make it happen

dcx2

You don't need to highlight anything.  And if you did, you could always ask me to fix that.  ;D

Not all of the text boxes have the input converter on them.  Specifically, text boxes that take addresses, because we never, ever work with decimal addresses.

Panda On Smack


giantpune

wow.  this thing is coming along nicely.  i just updated from the first or second version that link put out and im impressed. i have a couple questions...

1) is there any way to have the disassembler run in "live" mode or "sync with the game"  mode?  the only way i see to adjust the position is to type in a memory address and jump there.  It would be nice to just press a button and go to the address that the game is at (if that is even possible).

2)  what needs to be done t run this in linux?  i remember link saying something along the lines of commenting out the icons for the FST stuff and installing a FTDi package.  Also, I saw that the disassembler compiles ok for linux.  I already have MonoDevelop, and I can apt-get a FTDi package like there's no tomorrow.  Unfortunately, my c# leaves something to be desired, so im just stabbing in the dark as far as commenting the right parts of the fst tab.

dcx2

Quote from: giantpune on April 01, 2010, 07:12:27 AM
1) is there any way to have the disassembler run in "live" mode or "sync with the game"  mode?  the only way i see to adjust the position is to type in a memory address and jump there.  It would be nice to just press a button and go to the address that the game is at (if that is even possible).

When a Breakpoint is hit, or Step is pressed, the Disassembler should automatically jump to the current instruction.  Without setting a breakpoint, there's no way to know what the current instruction is.  Now, if you go roaming around the disassembly after hitting a breakpoint, I can see how you would lose your place, and Step would bring you back (which is what I usually do), but if you didn't want to step over the instruction...

There's a lot of space on the breakpoint tab, so I'll consider throwing a "jump to current" in there for ya. ^_^

Quote2)  what needs to be done t run this in linux?  i remember link saying something along the lines of commenting out the icons for the FST stuff and installing a FTDi package.  Also, I saw that the disassembler compiles ok for linux.  I already have MonoDevelop, and I can apt-get a FTDi package like there's no tomorrow.  Unfortunately, my c# leaves something to be desired, so im just stabbing in the dark as far as commenting the right parts of the fst tab.

Hawkeye commented about the mono version the other day.  I have Ubuntu (9.10..?  or 9.04) on one of my PCs, so I'll see what I can do.  I'll also try to modify the FST stuff so that it checks for a mono preprocessor directive.

I'm not sure the repositories have the appropriately updated version of libFTDI...when I first started hacks, I tried to get the linux version of WiiRD before I realized it was console only.  While trying to get that WiiRD to run, I'm pretty sure I discovered the repositories have an old libFTDI.

I will try to use this weekend to figure out how to get the mono build to run.  ^_^

giantpune

is this the correct place for bug reports?
ive found a unhandled exception...
1) start a game with geckoOS and start messing with geckoDotNET
2) have the "disassembler" tab showing and exit the game
3) click the screenshot tab
4) get a popup that the connection with USB gecko is lost
5) leave that popup on the screen and start geckoOS and then start the game again
6) select "ok" to let geckoDotNET reconnect to the USB Gecko
7) get this exception...
[spoiler]
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: InvalidArgument=Value of '0' is not valid for 'SelectedIndex'.
Parameter name: SelectedIndex
   at System.Windows.Forms.ListBox.set_SelectedIndex(Int32 value)
   at GeckoApp.Disassembly.DissToBox(UInt32 address)
   at GeckoApp.MainForm.DisPage_Enter(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnEnter(EventArgs e)
   at System.Windows.Forms.TabPage.OnEnter(EventArgs e)
   at System.Windows.Forms.ContainerControl.UpdateFocusedControl()


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
Gecko dNet
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/Administrator/Desktop/vmware_wiishit/geckoDotNET/Gecko%20dNet.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
[/spoiler]
8 ) selecting to continue at the exception lets the screenshot tab open up
9) click the disassembler tab
10) another similar exception
11) clicking to continue through the second exception lets everything run as it normally does

dcx2

I like you already.  The instructions you provide for reproducing the unhandled exception are exquisite.  You'd make a good QA tester...is that your day job?   ;)

FYI, bugs/requests go here.  http://wiird.l0nk.org/forum/index.php/topic,4954.75.html#new

I'll look into this.  Thanks for the Exception message, too...that stack trace makes my life 100x easier.

giantpune

#130
ok,  well i have everything here needed to compile and test that booger whenever you get a mono version.  I've got monodevelop set up in OSx 10.6.3 and ubuntu 9.10.  And I've compiled the vdappc external disassembler for both OSes as well.  I really don't care if it works in OSx but I guess I can still test it.  So we are ready and waiting on you, sirs :) .

dcx2

Changes since 0.52; see this post and the three after it http://wiird.l0nk.org/forum/index.php/topic,4886.msg45389.html#msg45389

Search tab:

-View Mode: hex, dec, or Single (aka float).
-Difference column
-Resizable search result columns
-Added Single search result compares in addition to 32/16/8
-Delete multiple non-continuous search results
-Copy search results to clipboard
-Numeric up-down to make it easier to change the current search page
-Removed unused dec to hex button.  All value-type text boxes have a much more powerful right-click context menu.
-Finally fixed the search-pause-resume bug?
-Right click selects a search result


Memory Viewer tab:

-When right-click -> set breakpoint, it now detects what byte is under the mouse cursor


Breakpoint tab:

-Step Out; repeatedly calls Step Over until it hits a blr.  Can be canceled.
-Show Mem button; If the current instruction is a Load or Store, click this button to open Memory Viewer at the address that would be Loaded or Stored.
-Conditional branch detection.  If the current instruction is a conditional branch, the Show Mem button's text will change to Not Taken or Taken.
-Conditional branch toggling.  Click the Taken or Not Taken button to toggle the Condition Register so that the branch switches to Not Taken or Taken.  Be careful because toggling could freeze the game if the code doesn't have the right data loaded
-Fixed exact breakpoint bug


GCT code tab:

-right click context menus that create new codes will prompt for user names
-Game is paused while applying codes.  This stops some games from freezing if you repeatedly apply C2 codes.


General:

-Added version digit support to title bar; if the game version is not 1, it should say so
-To make it easier to modify existing codes, there is a new code wizard.  This is feature is alpha but designed in hopes of making it easier to .  Right-click on a search result or memory viewer cell and select code wizard.  It will populate the wizard with a temporary copy of all your codes and the address and value you selected, and ask for things like ba/po, 32/16/8 bit, etc.  It can do RAM writes, fills, end-ifs, and masks.  It checks alignment and handles changing the ba/po for all of MEM1 and MEM2 with a terminator.  The magic happens when you press Add Code.  To make the magic permanent, click either of the red buttons.  They are red to stress the alpha nature of this feature...it shouldn't hurt you but I would probably back up my codes before pressing the red buttons.  The black buttons are always safe and never do anything to the codes

dcx2

I'm trying to get Gecko.NET to build in MonoDevelop.  I commented out the lines in FST that called IconReader.  In USBGecko.cs, I switched the preprocessor directive to build the Mono build.  I got libftdi from the repository and copied libftdi.so to the local directory.  Unfortunately, the repository contains 0.16-2, but the latest sources are 0.17-1.  I'm not sure if the repository's version is too old...

However, when I go to run, it tries to connect but then it gets upset when it tries to marshal the byte[] readBuffer that's inside the ftdi_context struct.  I guess the MonoDevelop I installed doesn't support debugging, because it won't hit the breakpoints I set.  I tried changing the byte[] to an IntPtr and it gets a little farther, but still dies.

Dude

Quote from: Link on March 31, 2010, 08:24:53 AM
Quote from: Dude on March 30, 2010, 09:19:44 AM
Wow, did you make a comment about building the code wizard before?  Cause I've been thinking on how something like that could be done just a day or two ago along with adding in a pointer search lol if you made a mention of it before then that would explain why I was thinking it XD

It almost feels like this app is gonna be capable of hacking the game FOR YOU.  Turn it on, connect and say GO! XP

Shame that there isn't a pointer search though.  I have to use WiiRD and it only works if it's connected to the gecko.

Loving the updates though, dcx2.  Downloaded the release to try out the code wizard.

If it makes you happy.. I for myself, am currently brain-storming a concept for a seperate pointer search module.. however, as so many people seemed to complain about pointer search being not in it, I am trying to develop it as a module application.. meaning: yes it would work well as its own user control in Gecko dotNET however, it would also happily run independently. Most importantly it will be able to handle memory dumps which contain BOTH MEM1 AND MEM2 at the same time so pointers from MEM1 to MEM2 will be handled!

I would love to have a pointer search module that could run independently.  That would save having to have Gecko.net or WiiRD connected and running in order to utilise it :D
Thank you for considering this, Link :)

REDSOXROX

The new Gecko dotNET has been awesome so far, great work!
However, today I came upon a bug, it seems.
It started when I tried to use this code:
infinite cycling stamina [wiiztec]
20DEEFEC 00000003
04DEEFC0 7F800000
E0000000 80008000

In Wii Sports Resort USA.
First time, tried applying at the menu, game froze, but code worked when applied in the actual cycling game; I assumed it was poor testing. So, I've been spending the last 6 hours or so trying to make it not freeze at the menu, getting extremely confused when nothing worked that looked to be very obviously correct. Even the original code itself looks to be just right, other than the unneeded last line.
Finally I decided it could be a bug in GDotN, and started the original WiiRD, and the original code (and the other 3 versions I came up with) work, without freezing. Now I'm extremely confused- this seems to have been a problem in the code handling, which Gecko OS does- not GDN. Is it a problem with if CTs? But I also made an ASM version without If's, and it works fine, but freezes whenever I try to load the menu when applied through GDN.
Did I miss a file or something? Could someone else test that code in dotNET? I'm very confused here :P
Red Sox vs. Yankees 4/4/2k10 Season Opener
Red Sox: 9 Yankees: 7 Final!